重新获得Scraped网站恢复Scrapy工作

时间:2012-05-09 04:02:48

标签: python scrapy

有没有办法让Scrapy蜘蛛登录网站恢复之前暂停的抓取工作?

编辑:为了澄清,我的问题实际上是关于Scrapy蜘蛛而不是一般的饼干。也许更好的问题是,在作业目录中冻结Scrapy蜘蛛后,是否有任何方法被调用。

1 个答案:

答案 0 :(得分:0)

是的,你可以。

您应该更清楚刮刀的确切工作流程。

无论如何,我认为你是第一次在刮痧时要登录,并且想要在你恢复刮擦时使用相同的cookie。

您可以使用httplib2库来执行此类操作。以下是来自examples page的代码示例,为了更加清晰,我添加了评论。

import urllib
import httplib2

http = httplib2.Http()

url = 'http://www.example.com/login'   
body = {'USERNAME': 'foo', 'PASSWORD': 'bar'}
headers = {'Content-type': 'application/x-www-form-urlencoded'}

//submitting form data for logging into the website
response, content = http.request(url, 'POST', headers=headers, body=urllib.urlencode(body))

//Now the 'response' object contains the cookie the website sends
//which can be used for visiting the website again

//setting the cookie for the new 'headers'
headers_2 = {'Cookie': response['set-cookie']}

url = 'http://www.example.com/home'   

// using the 'headers_2' object to visit the website,
response, content = http.request(url, 'GET', headers=headers_2)

如果您不清楚Cookie是如何工作的,请执行search。简而言之,'Cookies'是一种客户端技术,可以帮助服务器维护会话。