2015-11-17 30 views
1

我正在使用以下3个内容阅读网站内容。我使用了一个没有太多内容的示例域名。通过“请求”获取HTML内容的Python返回部分响应

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

它返回以下html内容,其中当您检查视图源时,网站包含更多html。我在这里做得不对

Python版本2.7

<html><head></head><body><!-- vbe --></body></html> 

回答

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'。尝试模拟请求来自浏览器而不是脚本。

+0

这个伎俩。谢谢。 – rclakmal

0

@jason正确回答它,所以我延长他的答案的原因

为什么会发生

  1. 一些DOM元素代码通过Ajax的改变调用和JavaScript代码,这样不会看到您的呼叫的响应(尽管这不是这里的情况,你已经在使用查看源代码(按Ctrl + U)进行比较,而不是查看元素)
  2. 有些网站使用用户代理来了解用户的性质(从桌面或移动用户开始)并提供相应的响应(如这里可能的情况下)

其他替代

  1. 您可以使用Python的机械化模块模仿浏览器来糊弄 网站(来方便时网站使用的 验证Cookie一些短)A small tutorial

  2. 使用硒实际执行浏览器

相关问题