python - 使用 python 通过我的个人服务器调用网络抓取时出错

标签 python html web-scraping error-handling user-agent

我是编码新手,并且已经完成了一个简单的程序来网络抓取一些股票网站以获取特定数据。简化的代码如下所示:

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 任何地方”公开该网站。
但是,当我去创建公共(public)网站时,每次我通过网络抓取(即使用 user_agent)访问信息时,程序都会关闭。我不喜欢将我的用户代理用于公共(public)领域的想法,但是当公共(public)领域需要用户代理时,我不知道其他网络抓取的人如何解决这个问题。有什么建议!?

最佳答案

我会添加一些随机标题来旋转,而不是我自己的标题。像这样的东西应该工作:

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)
真的取决于你是否想使用图书馆......

关于python - 使用 python 通过我的个人服务器调用网络抓取时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65777947/

相关文章:

python - 如果数据框的至少 20% 的条目采用特定值,如何使用 pandas/numpy 删除数据框的特征/列?

html - 具有不透明度的元素在 Firefox 中落后于 iframe

html/css 表格在 IE 中被破坏

python-2.7 - 检索同一域中网页的所有 URL,但不检索媒体或 anchor

python - 我如何抓取该网站以便按列表对候选人进行分类?

python - 如何在 Jupyter Notebook 中运行 shell 脚本?

python - IPC QLocalSocket -> C,为什么我的连接失败?连接失败: [2] (no such file?!)

python - 网址错误 : <urlopen error [Errno 11001] getaddrinfo failed>

javascript - Chartjs,使用 For-Loop 进行分散

python - 无法从网页的某些脚本标记中获取电子邮件链接