我使用一段时间从《华尔街日报》抓取财务数据的一些代码刚刚停止工作,现在运行时出现 401 错误。
我尝试过更改标题,但这不起作用。也许我现在需要登录?
import requests
url='https://www.wsj.com/market-data/quotes/bond/JP/TMBMKJP-01Y?mod=quote_search'
headers = {'User-Agent': 'Mozilla/5.0 (X11;Linux x86_64;rv:12.0) Gecko/20100101 Firefox/12.0'}
page=requests.get(url,headers=headers)
print('Page status code',page.status_code)
《华尔街日报》似乎设置了验证码,可能是作为一种反抓取措施。获取 API 凭证可能是解决这个问题的方法。至少值得研究一下。
看一下返回的内容:
import requests
url='https://www.wsj.com/market-data/quotes/bond/JP/TMBMKJP-01Y?mod=quote_search'
headers = {'User-Agent': 'Mozilla/5.0 (X11;Linux x86_64;rv:12.0) Gecko/20100101 Firefox/12.0'}
page=requests.get(url,headers=headers)
print('Page status code',page.content)
内容:
Page status code b'<html><head><title>wsj.com</title><style>#cmsg{animation: A 1.5s;}@keyframes A{0%{opacity:0;}99%{opacity:0;}100%{opacity:1;}}</style></head><body style="margin:0"><p id="cmsg">Please enable JS and disable any ad blocker</p><script data-cfasync="false">var dd={\'rt\':\'c\',\'cid\':\'AHrlqAAAAAMArpN2vLo4VCUAMhA_Hw==\',\'hsh\':\'D428D51E28968797BC27FB9153435D\',\'t\':\'fe\',\'s\':47129,\'e\':\'e92911034aa65357785f6313394521ae3cbda7ac3d302f1fdd231820f33c85a6\',\'host\':\'geo.captcha-delivery.com\'}</script><script data-cfasync="false" src="https://ct.captcha-delivery.com/c.js"></script></body></html>\n'
是的,我认为你应该尝试使用凭据,如果返回的状态代码是 403 这意味着你未经授权,祝你好运:)