为什么我在这个beautifulsoup网络抓取程序中收到“ AttributeError:”,该如何解决?

时间:2019-11-19 20:45:10

标签: python beautifulsoup python-requests

我正在研究一个可以降低价格的程序。它曾经在某一时刻工作,但今天随机停止。我检查了网址和ID,以确保没有任何更改。我的程序怎么了?我的目标是从亚马逊页面上获取一件商品的价格并打印出来。

import requests
from bs4 import BeautifulSoup

url = 'https://www.amazon.com/Simple-Solution-Enzymatic-Pro-Bacteria-Cleaning/dp/B0002I9OA2/ref=sxin_3_osp54-e3cdf75e_cov?ascsubtag=e3cdf75e-7df2-4a39-8c03-29ea3c01f579&creativeASIN=B0002I9OA2&cv_ct_id=amzn1.osp.e3cdf75e-7df2-4a39-8c03-29ea3c01f579&cv_ct_pg=search&cv_ct_wn=osp-search&keywords=dog+urine&linkCode=oas&pd_rd_i=B0002I9OA2&pd_rd_r=16714614-0531-4896-adbb-9a6a0a255667&pd_rd_w=Z7DSH&pd_rd_wg=n1nMs&pf_rd_p=53eff971-6e12-4016-9864-b6dfd929b2b3&pf_rd_r=SMFAZPA12ZRYCG72PCFA&qid=1573597499&tag=42987st350sr-20'

headers = {"User Agent":"#enter your user agent"}

page = requests.get(url, headers=headers)

soup = BeautifulSoup(page.content, 'html.parser')

price = soup.find(id="priceblock_ourprice").get_text()

# obj= soup.find(id="titleSection").get_text()
print(price)

这是我在运行时遇到的错误:

price = soup.find(id="priceblock_ourprice").get_text()

AttributeError:“ NoneType”对象没有属性“ get_text”

1 个答案:

答案 0 :(得分:2)

运行时:

price = soup.find(id="priceblock_ourprice").get_text()

您得到:

Traceback (most recent call last):
  File "demo.py", line 12, in <module>
    price = soup.find(id="priceblock_ourprice").get_text()
AttributeError: 'NoneType' object has no attribute 'get_text'

因为找不到ID为“ priceblock_ourprice”的元素

如果您使用调试器并检查 page 响应,则会得到一个没有此ID的HTML页面。