利用Scrapy框架爬取前途无忧招聘信息

关于安装和命令使用可参考:https://docs.scrapy.org/en/1.7/intro/install.html

先创建项目和爬虫文件

分析网站

发现输入搜索内容跟url链接保持一致,且更换页数后的数字也跟url链接有关系(看url链接红线标识)

这样我们就可以通过修改url来选择性爬取所有页面的招聘信息

继续分析

这里直接显示了所有职位的数量,我们可以这个数字来确定要爬取的页数(一页有50个职位)。

总结思路:我们先通过输入的形式修改url来确定我们要搜索的职位,然后先爬取该搜索内容网站的职位数量,根据职位数量确定页数,再爬取所有页数的职位详情信息。代码如下

# -*- coding: utf-8 -*-
import scrapy
from urllib import parse
import urllib
import refrist = input("请输入职位")
frist = urllib.parse.quote(frist)class JobsSpider(scrapy.Spider):name = 'jobs'allowed_domains = ['51job.com']start_urls = ['https://search.51job.com/list/030200%252C040000,000000,0000,00,9,99,'+str(frist)+',2,1.html?']def parse(self, response):#抓取职位数量SL = response.xpath('//*[@id="resultList"]/div[2]/div[4]/text()').get(default='')SL = re.findall('共(.*?)条职位',SL)[0]#根据数量确定页数if int(SL) % 50 != 0:page = int(SL) // 50 + 1print(page)else:page = int(SL) // 50print(page)#通过修改url来爬取所有页面for i in range(1,page+1):url = 'https://search.51job.com/list/030200%252C040000,000000,0000,00,9,99,'+str(frist)+',2,{}.html?'.format(i)#print(url)yield scrapy.Request(url,callback=self.parseDetail)def parseDetail(self,response):#爬取职位详情页面的urlURL_list = response.xpath('//*[@id="resultList"]/div/p/span/a/@href').extract()for URL in URL_list:yield scrapy.Request(URL,callback=self.parseXX)def parseXX(self,response):#爬取详情信息ZW = response.xpath('/html/body/div[3]/div[2]/div[2]/div/div[1]/h1/text()').get(default='')GZ = response.xpath('/html/body/div[3]/div[2]/div[2]/div/div[1]/strong/text()').get(default='')GS = response.xpath('/html/body/div[3]/div[2]/div[2]/div/div[1]/p[1]/a[1]/text()').get(default='')YQ1 = response.xpath('/html/body/div[3]/div[2]/div[3]/div[1]/div//p/text()').extract()YQ2 = response.xpath('/html/body/div[3]/div[2]/div[3]/div[1]/div//span/text()').extract()YQ3 = response.xpath('/html/body/div[3]/div[2]/div[3]/div[1]/div/text()').extract()if len(YQ1) > 1:YQ = YQ1elif len(YQ2) > 1:YQ = YQ2elif len(YQ3) > 1:YQ = YQ3items = {"职位:":ZW,"工资:": GZ,"公司:":GS,"要求:":YQ}yield items

运行结果

这里保存为csv文件输出。


如果打开是乱码的话,用文本编辑器转换一下编码保存再打开就可以了



总共48个职位爬了47个,少了一个。我去看了一下运行记录有一个404的请求信息


复制链接在网页搜一下

利用Scrapy框架爬取前途无忧招聘信息相关推荐

  1. python爬虫利用Scrapy框架爬取汽车之家奔驰图片--实战

    先看一下利用scrapy框架爬取汽车之家奔驰A级的效果图 1)进入cmd命令模式下,进入想要存取爬虫代码的文件,我这里是进入e盘下的python_spider文件夹内 C:\Users\15538&g ...

  2. 利用Scrapy框架爬取LOL皮肤站高清壁纸

    利用Scrapy框架爬取LOL皮肤站高清壁纸  Lan   2020-03-06 21:22   81 人阅读  0 条评论 成品打包:点击进入 代码: 爬虫文件 # -*- coding: utf- ...

  3. python scrapy框架爬取知乎提问信息

    前文介绍了python的scrapy爬虫框架和登录知乎的方法. 这里介绍如何爬取知乎的问题信息,并保存到mysql数据库中. 首先,看一下我要爬取哪些内容: 如下图所示,我要爬取一个问题的6个信息: ...

  4. python笔记之利用scrapy框架爬取糗事百科首页段子

    环境准备: scrapy框架(可以安装anaconda一个python的发行版本,有很多库) cmd命令窗口 教程: 创建爬虫项目 scrapy startproject qq #创建了一个爬虫项目q ...

  5. 利用Scrapy框架爬取汽车之家图片(详细)

    爬取结果 爬取步骤 创建爬虫文件 进入cmd命令模式下,进入想要存取爬虫代码的文件,我这里是进入e盘下的E:\pystudy\scraping文件夹内 C:\Users\wei>E:E:\> ...

  6. 利用scrapy框架爬取动态加载的数据

    在爬取有些网站的是后,数据不一定全部是可视化界面的,当我们拖动滚动条时才会加载其他的数据,如果我们也想爬取这部分数据,就需要使用selenium模块,在scrapy里可以结合该模块修改返回对象 一.编 ...

  7. 利用Scrapy框架爬取落网上的音乐文件

    今天爬取的是本人特别喜欢的一个音乐网站,www.luoo.net, 首先是设置item中需要保存的字段. items.py 字段名称包括期刊号,期刊名,期刊创建时间,单期期刊下的音乐名,作者名,音乐文 ...

  8. 利用scrapy框架爬取网易新闻排行榜

    wyxw.py中代码 # -*- coding: utf-8 -*- import scrapy from ..items import WyxwItemclass WyxwSpider(scrapy ...

  9. Python爬虫实战+Scrapy框架 爬取当当网图书信息

    1.环境准备 1.在python虚拟环境终端使用 pip install scrapy下载scrapy依赖库 2.使用scrapy startproject book创建scrapy心目工程 3.使用 ...

最新文章

  1. [书籍分享]0-003.你的灯亮着吗:发现问题的真正所在
  2. [PAT乙级]1029 旧键盘
  3. java aio socket_[Java]socket Aio demo
  4. 小程序解码时 php 7.0以上 mcrypt拓展无法使用 旧版本的解密解决方案 新版本在另外一篇文章
  5. 你是否还在写try-catch-finally?来使用try-with-resources优雅地关闭流吧
  6. Python爬虫书籍推荐
  7. 短视频平台、工具,新手在家用手机全程复制粘贴,一天收益247
  8. 大屏布局css,前端大屏项目的屏幕适配方案
  9. 数据库mysql+401.1_MySQL 数据库
  10. 根据股票涨跌用KMeans进行分类
  11. css实现多行文本时显示省略号
  12. 小学六年级人教版计算机书,小学数学六年级人教版
  13. 地理生物结业考_不到30天,初二学年地理、生物结业考试开考,老师们说……...
  14. 二级渠道分销系统开发适合什么样的产品?
  15. 第一节:linux 开发AI算法以及libtorch部署算法详细教程-环境搭建
  16. Planet比Google earth更好用的地图下载神器Basemaps Viewer不用写代码全球高清影像框选下载tif格式
  17. RESTful API 简介(学习笔记)
  18. 谷歌变坏了?Chrome 已成众矢之的
  19. appt命令检测Apk信息的方法
  20. Java拼图小游戏------《Java程序设计》课程设计

热门文章

  1. 从“颠覆医疗”到“拥抱医疗”,智慧医疗大数据到底应该怎么做
  2. 基于JAVA电子产品专卖电商系统计算机毕业设计源码+系统+lw文档+部署
  3. 香港理工大学计算机硕士2021,2021年香港理工大学知识及科技管理研究生录取案例一览-录取条件...
  4. 分布式架构 服务容器化Docker
  5. fft频谱 matlab,matlab流水线ADC仿真FFT频谱测试【求高手搭救】
  6. [转]语音辨识的常见问题集
  7. Windows10下python3和python2同时安装(二)python2.exe、python3.exe和pip2、pip3设置
  8. oracle中rowid列,Oracle中的rowid
  9. curl post参数问题
  10. python实现情感分析流程图_用python实现文本情感分析