我正在尝试用scrapy抓取一个论坛网站。如果我有,爬虫工作正常
CONCURRENT_REQUESTS = 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”错误。
代码如下,刚刚通过亚马逊运行没有问题。这段代码基本上收集了亚马逊主页的所有链接。代码是一种 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