Python 抓取碎片时获取服务不可用错误

Python 抓取碎片时获取服务不可用错误,python,scrapy,Python,Scrapy,我正在尝试用scrapy爬行一个论坛网站。 如果我有,爬虫可以正常工作 并发请求=1 但是如果我增加这个数字,我就会得到这个错误 2012-12-21 05:04:36+0800[工作]调试:重试http://www.example.com/profile.php?id=1580>(失败1次):503 服务不可用 我想知道论坛是否阻止了请求,或者存在一些设置问题。HTTP状态代码503,“服务不可用”,表示(出于某种原因)服务器无法处理您的请求。这通常是一个暂时的错误。我想知道您是否被阻止,请稍

我正在尝试用scrapy爬行一个论坛网站。 如果我有,爬虫可以正常工作

并发请求=1

但是如果我增加这个数字,我就会得到这个错误

2012-12-21 05:04:36+0800[工作]调试:重试http://www.example.com/profile.php?id=1580>(失败1次):503 服务不可用

我想知道论坛是否阻止了请求,或者存在一些设置问题。

HTTP状态代码503,“服务不可用”,表示(出于某种原因)服务器无法处理您的请求。这通常是一个暂时的错误。我想知道您是否被阻止,请稍后再试,看看会发生什么

这也可能意味着您获取页面的速度太快。解决方案是将并发请求保持为1(并可能增加延迟),而不是这样做。要有礼貌


如果你刮够了,你会遇到各种各样的错误。请确保你的爬虫程序能够处理它们。

这个答案可能有点晚了,但对我有效的是这个。我在指定Mozilla/5.0用户代理的位置添加了一个标题。然后,我停止获取“HTTP状态代码503”错误

代码如下,只是在Amazon上运行,没有问题。这段代码基本上收集了亚马逊主页上的所有链接。代码是一种Python编程语言代码

    import urllib2
    from bs4 import BeautifulSoup, SoupStrainer

    url = "http://www.amazon.com"
    opener = urllib2.build_opener()
    opener.addheaders = [('User-Agent', 'Mozilla/5.0')]
    website = opener.open(url)

    html = website.read()
    soup = BeautifulSoup(html, "html.parser")

    for element in soup.find_all(['a','link']):
        link = element.get('href')
        print link

多少延迟应该是正常的,多少并发请求是正常的。我不知道;我知道的不多;我会将并发请求设置为1,并在两个请求之间添加1-5秒的延迟。1个请求看起来非常少,而且会花费太多时间。谷歌和所有其他搜索引擎都遵循这个准则吗?没有通用的规则。这在很大程度上取决于你正在抓取的站点,但是快速抓取可能会导致你被阻止。。。