---恢复内容开始---

今天我们来爬取一下智联招聘上金融行业薪酬在50-100万的职位。

第一步:解析解析网页

当我们依次点击下边的索引页面是,发现url的规律如下:

第1页:http://www.highpin.cn/zhiwei/ci_180000_180100_as_50_100.html

第2页:http://www.highpin.cn/zhiwei/ci_180000_180100_as_50_100_p_2.html

第3页:http://www.highpin.cn/zhiwei/ci_180000_180100_as_50_100_p_3.html

看到第三页时,用我小学学的数据知识,我便已经找到了规律,哈哈,相信大家也是!

接下来说说我要爬取的目标吧:

如下图:我想要得到的是:职位名称、薪资范围、工作地点、发布时间

借助谷歌的xpath我就着手解析和提取这些数据了,这里不做分析,在代码中体现

第二步:项目实现 通过 scrapy startproject zhilian创建项目,结构如下:

   

1. items.py

# -*- coding: utf-8 -*-
# Define here the models for your scraped items
#
# See documentation in:
# http://doc.scrapy.org/en/latest/topics/items.htmlimport scrapy
class ZhilianItem(scrapy.Item):# define the fields for your item here like:# name = scrapy.Field()# 职位position = scrapy.Field()# 公司名称company = scrapy.Field()# 薪资salary = scrapy.Field()# 工作地点place = scrapy.Field()# 发布时间time = scrapy.Field()

2.爬虫文件:highpin.py 通过命令scrapy genspider highpin 'highpin.cn'创建

# -*- coding: utf-8 -*-
import scrapy
from zhilian.items import ZhilianItem
class HighpinSpider(scrapy.Spider):# 爬虫名,创建文件时给定name = "highpin"allowed_domains = ["highpin.cn"]url = 'http://www.highpin.cn/zhiwei/ci_180000_180100_as_50_100'# 用于构造url的参数offset = 1start_urls = [url + '.html']def parse(self, response):# 用xpath对网页内容进行解析,返回的是一个选择器列表position_list = response.xpath('//div[@class="c-list-box"]/div/div[@class="clearfix"]')item = ZhilianItem()print '------------------------------'print len(position_list)print '-----------------------------------'for pos in position_list:# 这里的item对应于items.py文件中的字段item['position'] = pos.xpath('./div/p[@class="jobname clearfix"]/a/text()').extract()[0]item['company'] = pos.xpath('./div/p[@class="companyname"]/a/text()').extract()[0]item['salary'] = pos.xpath('./div/p[@class="s-salary"]/text()').extract()[0]item['place'] = pos.xpath('./div/p[@class="s-place"]/text()').extract()[0]item['time'] = pos.xpath('./div[@class="c-list-search c-wid122 line-h44"]/text()').extract()[0]     yield itemif self.offset < 150:self.offset += 1# 构建下一个要爬取的urlurl = self.url + '_p_' + str(self.offset) + '.html'print url# 发送请求,并调用parse进行数据的解析处理yield scrapy.Request(url,callback=self.parse)     

3.pipelines.py管道文件用于将数据存于本地

# -*- coding: utf-8 -*-
# Define your item pipelines here
#
# Don't forget to add your pipeline to the ITEM_PIPELINES setting
# See: http://doc.scrapy.org/en/latest/topics/item-pipeline.html
import json
class ZhilianPipeline(object):def __init__(self):# 初始化是创建本地文件self.filename = open('position.json','w')def process_item(self, item, spider):将python数据通过dumps转换成json数据text = json.dumps(dict(item),ensure_ascii=False) + '\n'# 将数据写入文件self.filename.write(text.encode('utf-8'))return itemdef close_spider(self,spider):# 关闭文件self.filename.close()

4.settings.py文件

  说明1:在settings.py中首先要配置管道文件,如下图:

  

  说明2:USER_AGENT,起初我在settings中所使用的user-agent为:Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Mobile Safari/537.36

  运行爬虫后,如下图:

  

  如上图所示,服务器对我要访问的url做了重定向,复制重定向后的url到浏览器如下图:

  

  显然,这个页面并没有我们想要的信息,这就是一种反扒策略

  为了解决这个问题,我就试着将USER_AGENT 更换为:Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.

   

  再次通过 scrapy crawl highpin启动爬虫,发现爬虫程序已可以正常爬取

5.启动爬虫 命令:scrapy crawl highpin

   

  数据文件内容

   

  

  

  

  

  

---恢复内容结束---

转载于:https://www.cnblogs.com/houzichiguodong/p/9117092.html

scrapy项目2:爬取智联招聘的金融类高端岗位(spider类)相关推荐

  1. 实战案例 | Scrapy 集成Selenium爬取智联招聘数据

    人生苦短,快学Python! 初学scrapy之后,发现就是效率对比于selenium和requests快了很多,那么问题来了,如果网站设置了反爬,比如User-Agent反爬,cookie反爬,IP ...

  2. scrapy使用之爬取智联招聘

    智联招聘是通过动态加载文件获取数据,所以一开始解析的url不是网页的地址,而是json 文件,寻找json文件的方法.通过查看各个工作具体的网址得知规律:https://job.zhaopin.com ...

  3. Scrapy学习——爬取智联招聘网站案例

    Scrapy学习--爬取智联招聘网站案例 安装scrapy 下载 安装 准备 分析 代码 结果 安装scrapy 如果直接使用pip安装会在安装Twisted报错,所以我们需要手动安装. 下载 安装s ...

  4. scrapy爬取智联招聘

    我想分析下互联网行业全国招聘实习生的情况,通过爬取智联招聘,得到15467条数据,并导入Mysql 在items.py里: import scrapy from scrapy.http import ...

  5. xpath爬取智联招聘--大数据开发职位并保存为csv

    先上项目效果图: 本次爬取的URL为智联招聘的网址:https://www.zhaopin.com/ 首先先登录上去,为了保持我们代码的时效性,让每个人都能直接运行代码出结果,我们要获取到我们登录上去 ...

  6. 克服反爬虫机制爬取智联招聘网站

    一.实验内容 1.爬取网站: 智联招聘网站(https://www.zhaopin.com/) 2.网站的反爬虫机制:     在我频繁爬取智联招聘网站之后,它会出现以下文字(尽管我已经控制了爬虫的爬 ...

  7. python爬虫多url_Python爬虫实战入门六:提高爬虫效率—并发爬取智联招聘

    之前文章中所介绍的爬虫都是对单个URL进行解析和爬取,url数量少不费时,但是如果我们需要爬取的网页url有成千上万或者更多,那怎么办? 使用for循环对所有的url进行遍历访问? 嗯,想法很好,但是 ...

  8. python爬取智联招聘网_python爬取智联招聘工作岗位信息

    1 # coding:utf-8 2 # auth:xiaomozi 3 #date:2018.4.19 4 #爬取智联招聘职位信息 5 6 7 import urllib 8 from lxml i ...

  9. Python爬虫爬取智联招聘职位信息

    目的:输入要爬取的职位名称,五个意向城市,爬取智联招聘上的该信息,并打印进表格中 #coding:utf-8 import urllib2 import re import xlwtclass ZLZ ...

最新文章

  1. 使用 GDB 调试多进程程序
  2. FastReport.net分组排序、打印顺序、分页、函数使用语法、数据块编辑
  3. Maven3.0.5代理nexus
  4. UI设计动效\动画素材模板|分层分步骤学习动效设计
  5. 正则表达式 贪婪与懒惰
  6. 区块链100讲:Vitalik Buterin-以太坊Casper惩罚条件的最小化
  7. 如果看了此文,你还不懂傅里叶变换,那就过来掐死我吧(完整版)
  8. HMM:隐马尔科夫模型 - 学习
  9. mysql数据库管理手册_CentOS MySQL 用户及数据库管理手册
  10. 连续整数--全国模拟(一)
  11. matlab语言与应用 10 数学问题的非传统解法
  12. 现代通信理论与新技术 - 填空自测
  13. mysql PT工具
  14. 麒麟案例 | 南浔电商领头羊+麒麟计划,碰撞出了企业下一个10年增长之路!
  15. 暮拾晨花,回望流年——我的2016
  16. 4K电视与4K显示器区别
  17. 【PySide6】三、设置系统托盘
  18. Inno Setup 打包脚本笔记
  19. matlab noise level,Matlab生成白噪声
  20. FineCMS 5 0 10漏洞集合

热门文章

  1. sdb连接三星手表调试(galaxy watch 3)
  2. Python快速入门——Day4
  3. drawio 画弯曲的线框 漫画风
  4. jQuery 遍历数据
  5. 通过点击量提升网站在百度搜索的排名
  6. 计算机网络协议——通信协议综述
  7. 企业实训Java课程第一天学习内容
  8. SQL多表查询基本语法与实例
  9. SpringBoot:微信授权扫一扫登陆整体流程超详细
  10. 【JVM】3. 运行时数据区及程序计数器