gpt4 book ai didi

Python - urllib3 在爬行网站时收到 403 'Forbidden'

转载 作者:太空宇宙 更新时间:2023-11-03 16:16:37 26 4
gpt4 key购买 nike

我使用Python3urllib3来抓取和下载网站。我抓取了 4000 个不同域的列表,在其中大约 5 个域中我得到了 HttpErrorCode - 403 - 'Forbidden'

在我的浏览器上,该网站确实存在并且响应正确。可能这些网站怀疑我是爬虫并禁止我获取数据。

这是我的代码:

from urllib3 import PoolManager, util, Retry
import certifi as certifi
from urllib3.exceptions import MaxRetryError

manager = PoolManager(cert_reqs='CERT_REQUIRED',
ca_certs=certifi.where(),
num_pools=15,
maxsize=6,
timeout=40.0,
retries=Retry(connect=2, read=2, redirect=10))
url_to_download = "https://www.uvision.co.il/"
headers = util.make_headers(accept_encoding='gzip, deflate',
keep_alive=True,
user_agent="Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:47.0) Gecko/20100101 Firefox/47.0")
headers['Accept-Language'] = "en-US,en;q=0.5"
headers['Connection'] = 'keep-alive'
headers['Accept'] = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
try:
response = manager.request('GET',
url_to_download,
preload_content=False,
headers=headers)
except MaxRetryError as ex:
raise FailedToDownload()

拒绝我的网站示例: https://www.uvision.co.il/http://www.medyummesut.net/ .

另一个无法运行并抛出 MaxRetryError 的网站是:

http://www.nytimes.com/2015/10/28/world/asia/south-china-sea-uss-lassen-spratly-islands.html?hp&action=click&pgtype=Homepage&module=first-column-region&region=top-news&WT.nav=top-news&_r=1

我也尝试过使用与 Firefox 使用的完全相同的 header ,但也不起作用。我在这里做错了什么吗?

最佳答案

您指定keep_alive=True,这会添加 header connection: keep-alive

然后您还添加一个 header Connection: keep-alive(请注意大小写的细微差别)。这似乎是造成问题的原因。要修复它,只需删除多余的行

headers['Connection'] = 'keep-alive' 

关于Python - urllib3 在爬行网站时收到 403 'Forbidden',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38901929/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com