用 scrapy 抓取两个月后得到 403
Getting 403 after two months scraping with scrapy
我正在抓取技术组件的网页并获取结果以供稍后比较。对于这个任务,我正在使用 Scrapy 和 Python。抓取网页两个月后,我收到 403 状态错误。我尝试改变:
- 机器人名称
- 具有一些不同代理的用户代理
- 从我朋友的电脑启动抓取工具
- 我试过在不同的 IP 下启动爬虫
- 3 和 4 在一起
这五个步骤让我觉得他们有关于我的爬虫的信息,而不是关于我的电脑的信息,他们已经阻止了我的机器人。
这不是第一次发生。他们一个月前屏蔽了我的机器人,一周后又解除了对同一个机器人的屏蔽。
我正在寻找新的想法,因为论坛和抓取网站上的每个人都建议更改用户代理。
我尝试使用以下代码提出一个简单的请求:
import request
url = 'https://www.webwithcloudflareprotection.com/'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:89.0) Gecko/20100101 Firefox/89.0'
}
r = requests.get(url, headers=headers)
print(r.status_code)
此代码在我尝试启动它的每个 IP 中总是得到 403。这很奇怪。有人告诉我有关 Cloudfare 的信息,但我不知道如何检查该软件是否支持这一切。
尝试转到浏览器并发出您的机器人所做的请求。如果请求未被拒绝,请进入开发者工具并从您的浏览器复制 User-Agent
header。
此外,这里有一些与您的问题类似的问题:
HTTP error 403 in Python 3 Web Scraping
我解决了这个整合Selenium和Scrapy的问题。
问题出在 cloudflare 保护中,因此 VPN、代理或用户代理无法解决任何问题。
解决方案是使用 Selenium 模仿浏览器并获取 HTML 来提取信息。
最后,问题出在我的机器和他们自己的IP之间的第三方软件。我找到了避免将 scrappy 与 Selenium 和 chrome 驱动程序集成的方法。
这可能不是最好的解决方案,但它确实有效。性能较慢但结果相同!
我正在抓取技术组件的网页并获取结果以供稍后比较。对于这个任务,我正在使用 Scrapy 和 Python。抓取网页两个月后,我收到 403 状态错误。我尝试改变:
- 机器人名称
- 具有一些不同代理的用户代理
- 从我朋友的电脑启动抓取工具
- 我试过在不同的 IP 下启动爬虫
- 3 和 4 在一起
这五个步骤让我觉得他们有关于我的爬虫的信息,而不是关于我的电脑的信息,他们已经阻止了我的机器人。 这不是第一次发生。他们一个月前屏蔽了我的机器人,一周后又解除了对同一个机器人的屏蔽。
我正在寻找新的想法,因为论坛和抓取网站上的每个人都建议更改用户代理。
我尝试使用以下代码提出一个简单的请求:
import request
url = 'https://www.webwithcloudflareprotection.com/'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:89.0) Gecko/20100101 Firefox/89.0'
}
r = requests.get(url, headers=headers)
print(r.status_code)
此代码在我尝试启动它的每个 IP 中总是得到 403。这很奇怪。有人告诉我有关 Cloudfare 的信息,但我不知道如何检查该软件是否支持这一切。
尝试转到浏览器并发出您的机器人所做的请求。如果请求未被拒绝,请进入开发者工具并从您的浏览器复制 User-Agent
header。
此外,这里有一些与您的问题类似的问题: HTTP error 403 in Python 3 Web Scraping
我解决了这个整合Selenium和Scrapy的问题。 问题出在 cloudflare 保护中,因此 VPN、代理或用户代理无法解决任何问题。
解决方案是使用 Selenium 模仿浏览器并获取 HTML 来提取信息。
最后,问题出在我的机器和他们自己的IP之间的第三方软件。我找到了避免将 scrappy 与 Selenium 和 chrome 驱动程序集成的方法。
这可能不是最好的解决方案,但它确实有效。性能较慢但结果相同!