Мой код Beautiful Soup возвращает TypeError: объект 'NoneType' не повторяется - PullRequest
0 голосов
/ 04 марта 2020

Я использую Beautiful Soup для просмотра веб-страниц и получения ошибки типа здесь.

Мой код выглядит следующим образом:

import requests
from bs4 import BeautifulSoup

r = requests.get("https://www.amazon.com/s?k=asus&rh=n%3A300189&nav_sdd=aps&pd_rd_r=58b28d7d-1955-433b-b33b-b1b5dcf1f522&pd_rd_w=MJzan&pd_rd_wg=QG3cj&pf_rd_p=6d81377b-6d6c-4363-ae02-8fa202ed7b50&pf_rd_r=X0BDDAPN7TTW0ZT1REX6&qid=1583290662&ref=sxwds-sbc_c2")
soup = BeautifulSoup(r.text, 'html.parser')
x = soup.find(Class='a-size-medium a-color-base a-text-normal')

for vari in x:
    print(vari.get_text())

Ошибка:

Traceback (most recent call last):
  File "c:/Users/intel/Desktop/Untitled-1.py", line 8, in <module>
    for vari in x:
TypeError: 'NoneType' object is not iterable

Я не думаю, мой идентификатор класса неправильный ...

1 Ответ

2 голосов
/ 04 марта 2020

Ваш код не работает, потому что Amazon блокирует ваш автоматический запрос.

import requests
from bs4 import BeautifulSoup

r = requests.get("https://www.amazon.com/s?k=asus&rh=n%3A300189&nav_sdd=aps&pd_rd_r=58b28d7d-1955-433b-b33b-b1b5dcf1f522&pd_rd_w=MJzan&pd_rd_wg=QG3cj&pf_rd_p=6d81377b-6d6c-4363-ae02-8fa202ed7b50&pf_rd_r=X0BDDAPN7TTW0ZT1REX6&qid=1583290662&ref=sxwds-sbc_c2")
soup = BeautifulSoup(r.text, 'html.parser')
with open("out.html", "w") as f:
   f.write(str(soup))

out.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...