小编典典

httplib.BadStatusLine:”

scrapy

我的问题是以下。我创建了一个spider,想抓取不同的网址。当我独立抓取每个网址时,一切正常。但是,当我尝试同时爬网时,出现以下错误: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()

阅读 1053

收藏
2020-04-09

共1个答案

小编典典

基于Python Doc,httplib.BadStatusLine如果服务器响应我们无法理解的HTTP状态代码则引发。你可以尝试传递此异常。如果要调用多个URL,则不应关闭驱动程序。

尝试这个:

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
2020-04-09