分析

使用CrawlSpider结合LinkExtractor和Rule爬取网页信息

LinkExtractor用于定义链接提取规则,一般使用allow参数即可

LinkExtractor(allow=(), # 使用正则定义提取规则deny=(), # 排除规则allow_domains=(), # 限定域名范围deny_domains=(), # 排除域名范围restrict_xpaths=(), # 使用xpath定义提取队则tags=('a', 'area'), attrs=('href',), canonicalize=False,unique=True, process_value=None,deny_extensions=None, restrict_css=(), # 使用css选择器定义提取规则strip=True):

Rule用于定义CrawlSpider的爬取规则,由Spider内部自动识别,提交请求、获取响应,交给callback指定的回调方法处理response

如果指定了callback,参数follow默认为False;如果callback为None,follow默认为True

Rule(link_extractor, # LinkExtractor对象,必选参数callback=None, # 回调方法,可选cb_kwargs=None, follow=None, # 是否进行深度爬取,True、Falseprocess_links=None, # 用于处理链接(有些反爬策略是返回假的url)process_request=identity)

源码

items.py

'''
想要学习Python?Python学习交流群:973783996满足你的需求,资料都已经上传群文件,可以自行下载!
'''
class BosszhipinItem(scrapy.Item):"""Boss直聘Pytho职位爬虫Item"""# 职位名称position=scrapy.Field()# 公司名称company=scrapy.Field()# 薪资salary=scrapy.Field()# 工作地点location=scrapy.Field()# 学历要求education=scrapy.Field()# 工作时间year=scrapy.Field()

spiders/bosszhipin_spider.py

# !/usr/bin/env python
# -*- coding:utf-8 -*-import scrapy
from scrapy.spider import CrawlSpider,Rule
from scrapy.linkextractors import LinkExtractor
from myscrapy.items import BosszhipinItem
class BosszhipinSpider(CrawlSpider):"""Boss直聘Python职位爬虫Spider使用CrawlSpider基类实现想要学习Python?Python学习交流群:973783996满足你的需求,资料都已经上传群文件,可以自行下载!"""name = 'bosszhipin'allowed_domains=['zhipin.com',]start_urls=['http://www.zhipin.com/c100010000/h_100010000/?query=Python&page=1',]# 链接提取器对象(规定链接提取规则)link_extractor=LinkExtractor(allow=(r'page=\d+'))# 链接提取规则对象列表# 自动调用callback指定的方法,去取爬取由link_extractor指定的链接提取规则匹配到的url# 原理:link_extractor.extract_links(response)返回匹配到的链接rules = [Rule(link_extractor=link_extractor,callback='parse_page',follow=True),]def parse_page(self,response):"""定义回调方法,用于解析每个response对象"""job_list=response.xpath('//div[@class="job-list"]//li')for job in job_list:position = job.xpath('.//div[@class="info-primary"]//h3[@class="name"]/a/text()')[0].extract()salary =job.xpath('.//div[@class="info-primary"]//h3[@class="name"]//span/text()')[0].extract()company =job.xpath('.//div[@class="company-text"]//a/text()')[0].extract()location =job.xpath('.//div[@class="info-primary"]/p/text()[1]')[0].extract()year =job.xpath('.//div[@class="info-primary"]/p/text()[2]')[0].extract()education =job.xpath('.//div[@class="info-primary"]/p/text()[3]')[0].extract()item=BosszhipinItem()item['position']=positionitem['salary']=salaryitem['company']=companyitem['location']=locationitem['year']=yearitem['education']=educationyield item

pipelines.py

class BosszhipinPipeline(object):"""Boss直聘Python职位爬虫Item Pipeline"""def __init__(self):self.f=open('data/bosszhipin.json',mode='wb')self.f.write(b'[')def process_item(self,item,spider):data=json.dumps(dict(item),ensure_ascii=False,indent=4)self.f.write(data.encode('utf-8'))self.f.write(b',')return itemdef close_spider(self,spider):self.f.write(b']')self.f.close()

settings.py

ITEM_PIPELINES = {'myscrapy.pipelines.BosszhipinPipeline': 1,
}

运行结果

Scrapy框架爬取Boss直聘网Python职位信息的源码相关推荐

  1. python爬虫教程:Scrapy框架爬取Boss直聘网Python职位信息的源码

    今天小编就为大家分享一篇关于Scrapy框架爬取Boss直聘网Python职位信息的源码,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧 分析 使用Crawl ...

  2. Scrapy框架学习 - 爬取Boss直聘网Python职位信息

    分析 使用CrawlSpider结合LinkExtractor和Rule爬取网页信息 LinkExtractor用于定义链接提取规则,一般使用allow参数即可 LinkExtractor(allow ...

  3. scrapy框架爬取Boss直聘,数据存入mysql

    自从上次用了scrapy爬取豆瓣电影后,发现scrapy除了入门相对request较难外,各方面都挺好的,速度很快,还有各个功能模块,以及django类似的各种中间件组成一个完善的系统框架,需要一点一 ...

  4. Python爬虫实战之二 - 基于Scrapy框架抓取Boss直聘的招聘信息

    Python爬虫实战之三 - 基于Scrapy框架抓取Boss直聘的招聘信息 ---------------readme--------------- 简介:本人产品汪一枚,Python自学数月,对于 ...

  5. 用BeautifulSoup简单爬取BOSS直聘网岗位

    用BeautifulSoup简单爬取BOSS直聘网岗位 爬取python招聘 import requests from bs4 import BeautifulSoupdef fun(path):r1 ...

  6. 【python爬虫】在scrapy中利用代理IP(爬取BOSS直聘网)

    同学们好,我又滚回来更新了,这一次我们要爬取的目标是BOSS直聘,BOSS直聘可以说是反爬虫一个很好的例子了,主要在于如果你访问他的次数过多,他就会出现验证码,要求你通过验证才能继续看,这样还算可以, ...

  7. Scrapy 简易爬取Boss直聘 可设定city job 爬取工作到excel或mysql中

    2018-5-17 一. 本篇讲述了如何编写利用Scrapy爬虫,把数据放入到MYSQL数据库中和写入到excel中,由于笔者之前爬取过拉勾网,但个人倾向与Boss直聘,所以再次爬取Boss直聘来作为 ...

  8. Python3 爬取Boss直聘网 工作基本信息(数据清洗)

    今天我们来搞一下Boss直聘网,试着拿一下工作相关的信息,有助于ITer们在找工作的时候,做决策分析. 说一下思路,跟之前做的小练习,动态爬取中国图书网相比,Boss直聘的网站是采取REST风格的GE ...

  9. python爬虫爬取Boss直聘网招聘信息

    学校给我们大三同学找了一个培训组织,做了10天的实训,我学习的是python,最后是以一个爬虫程序为结业作业,就着这个实训,顺便发一个博客记录一下.考虑到我们即将就业,所以准备爬一个招聘网站,最终决定 ...

最新文章

  1. 人工肌肉重大突破登上 Science!多国科学家联合实现全新驱动机
  2. JavaScript-原生Array对象方法详解(一)
  3. Linux 查看进程在哪个CPU上运行
  4. NPOI 菜鸟实践行之根据指定的模板生成Excel 2003格式的文件 (一)
  5. 开发一个简单的WebPart
  6. 读书笔记_中国期货市场量化交易(李尉)05
  7. linux ftp 实例
  8. linux man命令汉化 操作
  9. 关于我在安装2.6.9版本bochs虚拟机时遇到的问题以及解决过程
  10. python3.7安装pyltp出错_python安装pyltp包
  11. 使用搜狗接口爬取微信公众号
  12. 飞地阿拉斯加的传奇故事
  13. 2020汽车驾驶员(初级)证考试及汽车驾驶员(初级)在线考试
  14. 游戏策划笔记:交互分析
  15. 生成影片的预览图像另Mencoder和ffmpeg使用实例小全
  16. 微服务下权限校验方案
  17. C语言中的四舍六入五成双 和 四舍五入
  18. D-HARRY2020春夏新品
  19. RabbitMQ搭建
  20. S32K144 CANbootloaer实现

热门文章

  1. 电路设计100个小技巧
  2. 批量修改指定字符文件名 bat脚本
  3. 外贸网站做好了怎么推广?外贸网站如何做推广?
  4. 网易面试——人工智能工程师
  5. 店盈通:拼多多自然搜索关键词排名原理解析
  6. 站长将网站登录分类目录对SEO外链优化的作用
  7. 华为鸿蒙音质,华为Sound X音质属于什么水平?
  8. echarts饼图百分比的直接展示
  9. 将html中的style内联样式转换为行内样式
  10. IBM Webshere MQ 队列配置