Как l oop через несколько страниц в нескольких URL Python - PullRequest
0 голосов
/ 13 января 2020

У меня есть список URL-адресов, и я хочу, чтобы мой код l oop просматривался на нескольких страницах этих нескольких URL-адресов

urls = ['https://www.f150forum.com/f118/2019-adding-adaptive-cruise-454662/','https://www.f150forum.com/f118/adaptive-cruise-control-sensor-blockage-446041/']

comments = []

for url in urls:
    with requests.Session() as req:
        for item in range(1):
            response = req.get(url+"index{item}/")
            soup = BeautifulSoup(response.content, "html.parser")
            for item in soup.findAll('div',attrs={"class":"ism-true"}):
                result = [item.get_text(strip=True, separator=" ")]
                comments.append(result)


Приведенный выше код содержит ошибку. Можете ли вы дать мне знать, как l oop через несколько страниц. Я получаю сообщение об ошибке: объект «NoneType» не имеет атрибута «findAll»

1 Ответ

0 голосов
/ 13 января 2020

soup может вернуть None. Продолжайте, только если суп имеет значение.

    soup = BeautifulSoup(response.content, "html.parser")
    if soup:  
        for item in soup.findAll('div',attrs={"class":"ism-true"}):
            result = [item.get_text(strip=True, separator=" ")]
            comments.append(result)

Обратите внимание, что response.content - это ответ в двоичном формате, response.text - в виде строки. Если сопоставление не удается все время, попробуйте строковую форму.

Выглядит так, как будто вы хотите f-строку для URL, если "item" - это число:

 for item in range(1):
        response = req.get(f"{url}index{item}/")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...