我想借助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保存到变量中?
答案 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'})