Scrapy爬虫实战(三)----------使用cookies爬取51job

来源:互联网 发布:淘宝卖家版下载 编辑:程序博客网 时间:2024/06/05 06:18

背景:

有一个HR帐号(涉及公司隐私,不公开),想登陆后用scrapy爬取简历信息。这样就必须要每个request请求都要带上登陆后返回的cookies。

试验了一下,搞定了,分享出来供大家参考。


首先,使用firefox的HttpFox插件查看登陆后的cookies.



然后在爬虫中使用cookies,并对跟进的每个链接继续传递cookies.直接上代码:


import scrapyfrom scrapy.spider import CrawlSpider, Rulefrom scrapy.http.request import Requestfrom scrapy.linkextractors import LinkExtractorcookies={'guid':'14692928107003450019',                               'slife':'lastvisit%3D020000',                               'EhireGuid':'6b45df4e10c84f83910d662532d4d3c6',                               'AccessKey':'b65f1133ba064dd',                               'LangType':'Lang=&Flag=1',                               '51job':'cenglish%3D0',                               'ASP.NET_SessionId':'iz4atwduigea5roxiraxud1v',                               'HRUSERINFO':'CtmID=257960&DBID=1&MType=06&HRUID=1429285&UserAUTHORITY=1000110010&IsCtmLevle=0&UserName=rdbjcomware&IsStandard=1&LoginTime=01%2f06%2f2017+22%3a36%3a52&ExpireTime=01%2f06%2f2017+22%3a46%3a52&CtmAuthen=0000011000000001000111010000000011100011&BIsAgreed=true&IsResetPwd=true&CtmLiscense=5&AccessKey=475e16bba5a8ea90'}def add_cookie(r):    print(r.url,r.cookies)    r.cookies = cookies    return rclass ExampleSpider(CrawlSpider):    name = "example"    rules = (        Rule(LinkExtractor(allow='ResumeViewFolder'),process_request=add_cookie,callback='parse_one_candidate',follow=True),        Rule(LinkExtractor(allow='ehire.51job.com',),process_request=add_cookie,follow=True)    )    def start_requests(self):        yield Request('http://ehire.51job.com/Navigate.aspx',                      cookies=cookies)    def parse_one_candidate(self, response):        print('find_one',response)        pass

有几个注意点:

  • url中包含RessumeViewFolder的即为应聘者信息,因此自定义'parse_one_candiate'函数来解析应聘者信息,这里解析代码没有列出,只是打印一下。
  • 2个Rule的先后顺序要注意,因为第一个Rule的url中也包含'ehire.51job.com',因此要放在前面,这样根据优先匹配原则,就会先匹配到第一个Rule并调用自定义函数解析了,否则匹配到第2个Rule就只是简单跟进链接了
  • 通过Rule的process_request方法,来为跟进的链接的Request设置cookies
  • 没有考虑自动登陆和cookies失效,后面再研究下再分享出来
2 0
原创粉丝点击