Не получили желаемого результата во время чистки веб-страниц Asahi Shimbun? - PullRequest
0 голосов
/ 19 апреля 2020

Я пытаюсь отсканировать веб-сайт «Асахи Симбун», чтобы собрать несколько статей. Но столкновение с некоторой проблемой, так как код не дает желаемых результатов. Ниже приведен код:

import time
import requests
from bs4 import BeautifulSoup
from bs4.element import Tag
url = 'http://www.asahi.com/ajw/search/results/?keywords=Middle%20East&p={}'
base = 'http://www.asahi.com/ajw/'
pages = 10

for page in range(1, pages+1):
    res = requests.get(url.format(page))
    soup = BeautifulSoup(res.text,"lxml")
    for item in soup.select("#SiteSearchResult li > a"):
        resp = requests.get(base + item.get("href"))
        sauce = BeautifulSoup(resp.text,"lxml")
        dateTag = sauce.find("p", {"class": "Title"})
        titleTag = sauce.find("h1", {"class": "Title"})
        content = [elem.text for elem in sauce.select(".ArticleText p")]

        date = None
        title = None

        if isinstance(dateTag,Tag):
            date = dateTag.get_text().strip()

        if isinstance(titleTag,Tag):
            title = titleTag.get_text().strip()

        print(f'{date}\n {title}\n {content}\n')
        time.sleep(3)

Как видно из кода, я пытаюсь получить дату, заголовок и содержание статей. Но когда я запускаю этот код, я получаю следующие результаты:

Нет Нет ['', 'Страница не найдена', '\ xa0 \ xa0 \ xa0Вернуться на верхнюю страницу']

Нет Нет ['', 'Страница не найдена', '\ xa0 \ xa0 \ xa0Вернуться к началу страницы']

Я понимаю, что проблема в следующих строках:

for item in soup.select("#SiteSearchResult li > a"):
            resp = requests.get(base + item.get("href"))

Но не знаю, как решить эту проблему.

Заранее спасибо!

...