gpt4 book ai didi

python - 使用 BeautifulSoup 使用 Python 进行 Web 抓取 429 错误

转载 作者:太空宇宙 更新时间:2023-11-04 08:32:34 24 4
gpt4 key购买 nike

首先我不得不说,我对使用 Python 进行 Web 抓取还很陌生。我正在尝试使用这些代码行来抓取数据

import requests
from bs4 import BeautifulSoup
baseurl ='https://name_of_the_website.com'
html_page = requests.get(baseurl).text
soup = BeautifulSoup(html_page, 'html.parser')
print(soup)

作为输出,我没有得到预期的 Html 页面,而是另一个 Html 页面,上面写着:Misbehaving Content Scraper请使用 robots.txt您的 IP 已被限速

检查我写的问题:

try:
page_response = requests.get(baseurl, timeout =5)
if page_response.status_code ==200:
html_page = requests.get(baseurl).text
soup = BeautifulSoup(html_page, 'html.parser')

else:
print(page_response.status_code)
except requests.Timeout as e:
print(str(e))

然后我得到 429(请求太多)。

我该怎么做才能解决这个问题?这是否意味着我无法打印页面的 Html,是否会阻止我抓取页面的任何内容?我应该轮换 IP 地址吗?

最佳答案

如果您只点击一次页面并获得 429,则可能不是您点击太多。您无法确定 429 错误是否准确,这只是他们的网络服务器返回的内容。我看到页面返回 404 响应代码,但页面没有问题,合法缺失页面上返回 200 响应代码,只是服务器配置错误。他们可能只是从任何机器人返回 429,尝试将您的 User-Agent 更改为 Firefox、Chrome 或“Robot Web Scraper 9000”,然后看看会得到什么。像这样:

requests.get(baseurl, headers = {'User-agent': 'Super Bot Power Level Over 9000'})

将自己声明为机器人或

requests.get(baseurl, headers = {'User-agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36'})

如果你想更模仿一个浏览器。请注意所有模仿浏览器的版本内容,在撰写本文时这些都是最新的。您可能需要更高版本号。只需找到您使用的浏览器的用户代理,此页面将告诉您那是什么:

https://www.whatismybrowser.com/detect/what-is-my-user-agent

如果您只是说自己是机器人,某些网站会返回更好的可搜索代码,而其他网站则相反。这基本上是狂野的西部,必须尝试不同的东西。

另一个专业提示,您可能必须编写代码才能拥有“cookie jar”或接受 cookie 的方法。通常这只是您请求中的额外一行,但我会把它留给另一个 stackoverflow 问题 :)

如果你确实经常打他们,你需要在通话之间 sleep 。这是完全由他们控制的服务器端响应。您还需要研究您的代码如何与 robots.txt 交互,该文件通常位于网络服务器的根目录中,其中包含它希望您的蜘蛛程序遵循的规则。

您可以在这里阅读:Parsing Robots.txt in python

网络爬虫既有趣又具有挑战性,请记住您随时可能因任何原因被任何网站阻止,您是他们的客人。所以好好走路:)

关于python - 使用 BeautifulSoup 使用 Python 进行 Web 抓取 429 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51638468/

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