Request.get超时

时间:2020-03-05 13:53:10

标签: python html web-scraping error-handling python-requests

我想借助Requests函数获取网站的HTML。

我的代码:

import Requests
res = Requests.get('https://store.hp.com/us/en/pdp/hp-laserjet-pro-m404n?jumpid=ma_weekly-deals_product-tile_printers_3_w1a52a_hp-laserjet-pro-m404')

print(res.text)

该准则被限制在res上。如果您将http替换为: 'http://www.newegg.com/Product/ProductList.aspx?Submit=ENE&N=-1&IsNodeId=1&Description=GTX&bop=And&Page=1&PageSize=36&order=BESTMATCH'-一切正常。

我如何将任何给定页面的html保存到变量中?

2 个答案:

答案 0 :(得分:2)

好吧,您正在与肯定使用现代网络技术的HP网站打交道。

这里的问题是,您制作的request没有有效的User-Agent,这将导致firewall的{​​{1}}阻止website并列出作为request

这就是为什么您遇到错误#bot Details

您可以在此处创建有效的10060并将request的源存储为HTML

variable

答案 1 :(得分:0)

该站点看起来实现了一些基本的防刮方法。如果请求在浏览器中有效,但在您的代码中无效,那么您只需调整请求,标头,Cookie等,直到与浏览器功能更匹配为止。值得庆幸的是,这是一个易于使用的工具。确保您提供了用户代理:)

res = requests.get('https://store.hp.com/us/en/pdp/hp-laserjet-pro-m404n?jumpid=ma_weekly-deals_product-tile_printers_3_w1a52a_hp-laserjet-pro-m404',
               headers={'user-agent':'my app'})