在scrapy爬行中获取服务不可用错误

时间:2012-12-20 05:09:29

标签: python scrapy

我正在尝试使用scrapy抓取论坛网站。 如果我有

,爬虫工作正常

CONCURRENT_REQUESTS = 1

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

  

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

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

2 个答案:

答案 0 :(得分:6)

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

这也可能意味着你过快地抓取页面。修复不是通过将并发请求保持为1(并可能添加延迟)来完成此操作。礼貌。

如果你正在抓足够的话,你遇到各种错误。只需确保您的抓取工具可以处理它们。

答案 1 :(得分:1)

这个答案可能有点晚了,但对我有用的是这个。我添加了一个标题,我指定了Mozilla / 5.0用户代理。然后我停止了#34; HTTP状态代码503"错误。

代码在下面,只是通过亚马逊没有问题。此代码基本上收集了来自亚马逊主页的所有链接。代码是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