我是一个全新的编码新手,已经完成了一个简单的程序,以网络刮一些特定数据的股票网站。简化后的代码如下所示:
headers = {'User-Agent': 'Personal_User_Agent'}
fv = f"https://finviz.com/quote.ashx?t=JAGX"
r_fv = requests.get(fv, headers=headers)
soup_fv = BeautifulSoup(r_fv.text, 'html.parser')
fv_ticker_title = soup_fv.find('title')
print(fv_ticker_title)在我创建一个用户代理之前,这个网站不会工作,但之后它工作得很好。然后我通过python的本地主机创建了一个网站,它也运行得很好,所以我想我已经准备好通过"python anywhere“公开这个网站了。
然而,当我创建公共网站时,每次我通过网络抓取(即使用user_agent)访问信息时,程序都会关闭。我不喜欢在公共领域使用我的用户代理的想法,但当公共领域需要用户代理时,我无法了解其他web用户是如何处理这个问题的。有什么建议吗!?
发布于 2021-01-19 00:11:21
我会添加一些随机的标题来轮换,而不是我自己的标题。像这样的东西应该是有效的:
import random
header_list = [
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1.1 Safari/605.1.15',
'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:77.0) Gecko/20100101 Firefox/77.0',
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_18_3) AppleWebKit/537.34 (KHTML, like Gecko) Chrome/82.0.412.92 Safari/539.36',
'Mozilla/5.0 (Macintosh; Intel Mac OS X 11.12; rv:87.0) Gecko/20170102 Firefox/78.0',
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.32 (KHTML, like Gecko) Chrome/82.0.12.17 Safari/535.42'
]
fv = f"https://finviz.com/quote.ashx?t=JAGX"
user_agent = random.choice(header_list)
headers = {'User-Agent': user_agent}
r_fv = requests.get(fv, headers=headers)
soup_fv = BeautifulSoup(r_fv.text, 'html.parser')
fv_ticker_title = soup_fv.find('title')
print(fv_ticker_title)或者选项2。
使用一个名为fake-headers的库即兴生成它们:
from fake_headers import Headers
fv = f"https://finviz.com/quote.ashx?t=JAGX"
headers = Headers(os="mac", headers=True).generate()
r_fv = requests.get(fv, headers=headers)
soup_fv = BeautifulSoup(r_fv.text, 'html.parser')
fv_ticker_title = soup_fv.find('title')
print(fv_ticker_title)这真的取决于你是否想使用库...
https://stackoverflow.com/questions/65777947
复制相似问题