【发布时间】:2018-11-20 00:10:49
【问题描述】:
这是我的代码:
import requests as req
from bs4 import BeautifulSoup
headers = {'User-Agent': 'Kevin\'s_request'}
r = req.get('https://www.amazon.com/Python-Crash-Course-Hands-Project-Based/dp/1593276036/ref=sr_1_3?ie=UTF8&qid=1541450645&sr=8-3&keywords=python', headers=headers)
soup = BeautifulSoup(r.text, "html.parser")
soup.find(class_="a-expander-content a-expander-partial-collapse-content")
我只得到一个空列表。我在 Jupyter Notebooks 和 BS 4 中使用 Python 3.6.4
【问题讨论】:
-
在我端向 URL 发送请求时,我收到 503 HTTP 状态代码。检查您身边的状态码。如果使用
requests库,您可以执行r.status_code其中r是requests.get() -
我这样做了,但之前把那部分遗漏了。我编辑了我的问题以反映那部分。一切似乎工作正常,但 .find_all(...) 获取文本。它只返回一个空列表。当我在另一个网站上使用相同的代码时,它可以工作。
-
评论包含在另一个名为
a-section review的div中。见here。尝试len(soup.findAll(class_='a-section review'))时,结果为 8,即显示的评论数。 -
我明白你在说什么,但是当我这样做时
len(soup.findAll(class_='a-section review'))我得到的长度为 0 我一定是做错了什么。 -
我用
soup = BeautifulSoup(r.text, "html.parser")初始化它我应该删除"html.parser"吗?
标签: python web-scraping beautifulsoup findall