像往常一样,我经常遇到一些问题,我已经彻底地寻找了一个对当前问题的答案,但却发现自己陷入了困境。以下是我搜索过的一些地方:
How to fix httplib.BadStatusLine exception?
Python httplib2 Handling Exceptions
python http status code
我的问题如下。我已经创建了一个蜘蛛,并希望对不同的URL进行爬行。当我独立地对每个URL进行爬行时,一切正常。但是,当我尝试同时对两者进行爬网时,会出现以下错误:httplib.BadStatusLine: ''
我遵循了一些我阅读过的建议(参见上面提到的链接),可以打印每个请求的response.status,但是response.url没有打印出来,并且会抛出错误。(我只打印这两个语句以尝试识别错误的来源)。
我希望这是清楚的。
我在用碎屑和硒
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,如果服务器用我们不理解的HTTP状态代码响应,则会引发httplib.BadStatusLine
。
您可以尝试传递此异常。如果要调用多个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
关于python - httplib.BadStatusLine:'',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27619258/