Requests.content与Chrome检查元素

时间:2016-04-26 03:14:49

标签: python html beautifulsoup python-requests

我正在使用BeautifulSoup和Requests来抓取所有用户数据。

检查HTML代码时,我发现我想要的数据包含在

<article class="profile-review-card">

但是当我使用以下代码时

URL = 'http://allrecipes.com/cook/2010/reviews/'
response = requests.get(URL ).content
soup = BeautifulSoup(response, 'html.parser')
X = soup.find_all('article', class_ = "profile-review-card"  )

虽然汤和响应充满了html,但X是空的。我仔细研究了一下,我在inspect元素和requests.get(URL).content看到的内容之间存在一些不一致的地方,是怎么回事?

What Chrome inspect shows me

2 个答案:

答案 0 :(得分:3)

那是因为它是使用Ajax / javascript加载的。请求库没有处理它,您需要使用可以执行这些脚本并获取dom的东西。有各种各样的选择,我会列出一对来帮助你入门。

答案 1 :(得分:-1)

您应该尝试添加用户代理标头

URL = 'http://allrecipes.com/cook/2010/reviews/'
headers = {'user-agent', 'Mozilla/5.0'}
response = requests.get(URL,headers=headers).content