我正在尝试使用scrapy抓取论坛网站。 如果我有
,爬虫工作正常CONCURRENT_REQUESTS = 1
但如果我增加这个数字,那我就会收到这个错误
2012-12-21 05:04:36 + 0800 [working] DEBUG:正在重试http://www.example.com/profile.php?id=1580> (失败1次):503 服务不可用
我想知道论坛是否阻止了请求,或者是否存在设置问题。
答案 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