首页 > 解决方案 > “'连接中止。',RemoteDisconnected”或没有使用 urllib3 和 Django 获取任何信息

问题描述

我正在使用 BeautifulSoup 和 Django 开发一个网络抓取应用程序,我遇到了一些“连接问题”(我认为)。

该应用程序必须检查是否有任何网站满足所有 SEO 要求,为此,我必须提出不同的“请求”......首先获取“汤”,然后检查 robots.txt 和 sitemap.xml ,例如,存在...所以我猜有些网站因此而阻止了我的应用程序,并且我不断收到“'Connection aborted.',RemoteDisconnected”错误,或者在其他情况下,我没有收到错误,但是“汤”是空的......有没有办法解决这个问题?我试过了,time.sleep()但似乎没有用......

这是我的代码的一部分:

 http = PoolManager()
 r = http.request('GET', "https://" + url, headers={'User-Agent': "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36", 'Accept-Encoding': 'br'})
    
 soup = BeautifulSoup(r.data, 'lxml')

我在哪里检查机器人和站点地图是否存在:

robots_url = url + "/robots.txt"
robot = requests.get(robots_url, headers)

if robot.ok:
    robot = True
else:
    robot = False

sleep(5)

sitemap_url = url + '/sitemap.xml'
sitemap = requests.get(sitemap_url, headers=headers)
if sitemap.ok:
    sitemap = True
else:
    sitemap = False

在大多数网站中,代码工作正常,但我认为有些页面具有更高的安全级别,会以该错误结束连接:

During handling of the above exception (('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))), another exception occurred:

/app/.heroku/python/lib/python3.9/site-packages/django/core/handlers/exception.py,第 47 行,在内部

非常感谢您的时间和建议。

标签: pythondjangopython-requestsscreen-scrapingurllib3

解决方案


推荐阅读