Python通过'请求'获取HTML内容返回部分响应

时间:2015-11-17 11:31:25

标签: python python-requests

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

export JAVA_HOME

它返回以下html内容,当您通过查看源检查时网站包含更多html。我在这里做错了吗

Python 2.7版

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

2 个答案:

答案 0 :(得分: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'。尝试模拟请求来自浏览器而不是脚本。

答案 1 :(得分:1)

@jason正确回答,所以我正在扩展他的答案

为什么会发生

  1. 一些DOM元素代码通过Ajax调用和JavaScript代码进行了更改,因此在您的调用响应中不会显示(虽然在这里并非如此,因为您已经在使用视图源(ctrl + u) )比较而不是查看元素)
  2. 有些网站使用用户代理来了解用户的性质(如桌面用户或移动用户)并相应地提供响应(此处可能的情况)
  3. 其他替代方案

    1. 你可以使用python的mechanize模块模仿浏览器来愚弄 一个网站(当网站使用的时候会很方便 身份验证Cookie)A small tutorial

    2. 使用selenium实际实现浏览器