Python通过“requests”获取HTML内容返回部分响应

2024-09-30 22:12:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在阅读一个使用以下3行代码的网站内容。我使用了一个销售的示例域,它没有很多内容。在

url = "http://localbusiness.com/"
response = requests.get(url)
html = response.text

当您检查视图源代码时,它返回以下html内容,其中网站包含更多html。我是不是做错了什么

Python 2.7版

^{pr2}$

Tags: 代码textcom视图httpurl示例内容
2条回答

尝试设置User-Agent

import requests

url = "http://localbusiness.com/"

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',
    'Content-Type': 'text/html',
}

response = requests.get(url, headers=headers)
html = response.text

请求设置的默认User-Agent'User-Agent': 'python-requests/2.8.1'。尝试模拟请求来自浏览器而不是脚本。在

@jason答对了,所以我扩展了他的答案

发生的原因

  1. 一些DOM元素代码通过Ajax调用和JavaScript代码更改,因此在调用的响应中看不到这些代码(尽管这里不是这样,因为您已经在使用视图源代码(ctrl+u)来比较而不是视图元素)
  2. 一些站点使用用户代理来了解用户的性质(如桌面用户或移动用户),并相应地提供响应(这里可能是这种情况)

其他选择

  1. 您可以使用python的mechanize模块来模拟浏览器来愚弄 一个网站(当网站使用一些 身份验证cookies)A small tutorial

  2. 使用selenium实现浏览器

相关问题 更多 >