Jon*_*ruk 16 python selenium scrapy
和往常一样,我经常遇到问题,而且我已经彻底搜索了当前问题的答案,但却发现自己处于亏损状态.以下是我搜索过的一些地方: - 如何修复httplib.BadStatusLine异常? - Python httplib2处理异常 - python http状态代码
我的问题如下.我创建了一个蜘蛛,并希望抓取不同的网址.当我独立抓取每个网址时,一切正常.但是,当我尝试爬行时,我收到以下错误:httplib.BadStatusLine: ''
我已经遵循了一些我读过的建议(参见上面提到的链接)并且可以为每个请求打印response.status,但是response.url不会打印并且会抛出错误.(我只打印两个语句以尝试识别错误的来源).
我希望这很清楚.
我正在使用scrapy和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()
Run Code Online (Sandbox Code Playgroud)
Nim*_*ush 20
基于Python Doc,httplib.BadStatusLine
如果服务器使用我们不理解的HTTP状态代码进行响应,则会引发此问题.您可以尝试传递此异常.如果您打算拨打多个网址,则不应关闭您的驱动程序.
试试这个:
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
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
35639 次 |
最近记录: |