我的问题是以下。我创建了一个spider,想抓取不同的网址。当我独立抓取每个网址时,一切正常。但是,当我尝试同时爬网时,出现以下错误:httplib.BadStatusLine: ''
httplib.BadStatusLine: ''
我已经阅读了一些建议(请参阅上面提到的链接),并且可以打印每个请求的response.status,但是没有打印response.url并引发了错误。(我只打印两个语句以尝试确定错误的来源)。
我希望这很清楚。
我正在使用scrapy and selenium
class PeoplePage(Spider): name = "peopleProfile" allowed_domains = ["blah.com"] handle_httpstatus_list = [200, 404] start_urls = [ "url1", "url2" ] def __init__(self): self.driver = webdriver.Firefox() def parse(self, response): print response.status print '???????????????????????????????????' if response.status == 200: self.driver.implicitly_wait(5) self.driver.get(response.url) print response.url print '!!!!!!!!!!!!!!!!!!!!' # DO STUFF self.driver.close()
基于Python Doc,httplib.BadStatusLine如果服务器响应我们无法理解的HTTP状态代码则引发。你可以尝试传递此异常。如果要调用多个URL,则不应关闭驱动程序。
httplib.BadStatusLine
尝试这个:
def parse(self, response): try: print response.status print '???????????????????????????????????' if response.status == 200: self.driver.implicitly_wait(5) self.driver.get(response.url) print response.url print '!!!!!!!!!!!!!!!!!!!!' # DO STUFF except httplib.BadStatusLine: pass