Python 爬虫目录
        
        1、Python3 爬取前程无忧招聘网 lxml+xpath
        2、Python3 Mysql保存爬取的数据 正则
        3、Python3 用requests 库 和 bs4 库 最新爬豆瓣电影Top250
        4、Python Scrapy 爬取 前程无忧招聘网
        5、持续更新…

关于Scrapy 首先先要了解点基础

Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。
其最初是为了 网络抓取 所设计的, 也可以应用在获取API所返回的数据(例如 Amazon Associates Web Services ) 或者通用的网络爬虫。

Spider

Spider类定义了如何爬取某个(或某些)网站。包括了爬取的动作(例如:是否跟进链接)以及如何从网页的内容中提取结构化数据(爬取item)。 换句话说,Spider就是您定义爬取的动作及分析某个网页(或者是有些网页)的地方。

  1. 对spider来说,爬取的循环类似下文:
    以初始的URL初始化Request,并设置回调函数。
    当该request下载完毕并返回时,将生成response,并作为参数传给该回调函数。
    spider中初始的request是通过调用 start_requests() 来获取的。 start_requests() 读取
    start_urls 中的URL, 并以 parse 为回调函数生成 Request 。

  2. 在回调函数内分析返回的(网页)内容,返回 Item 对象、dict、Request 或者一个包括三者的可迭代容器。
    返回的Request对象之后会经过Scrapy处理,下载相应的内容,并调用设置的callback函数(函数可相同)。

  3. 在回调函数内,您可以使用 选择器(Selectors) (您也可以使用BeautifulSoup, lxml 或者您想用的任何解析器) 来分析网页内容,并根据分析的数据生成item。

  4. 最后,由spider返回的item将被存到数据库(由某些 Item Pipeline 处理)或使用 Feed exports
    存入到文件中。

虽然该循环对任何类型的spider都(多少)适用,但Scrapy仍然为了不同的需求提供了多种默认spider。 之后将讨论这些spider。

现在切入正题

首先先得安装scrapy,具体安装网上有教程
接着在终端创建项目(看清楚目录再输入命令)

scrapy startproject qcwy_job(qcwy_job是项目名称)

创建完项目后

  • spiders 存放爬虫的文件
  • items.py 定义数据类型
  • middleware.py 存放中间件
  • piplines.py 存放数据的有关操作
  • settings.py 配置文件
  • scrapy.cfg 总的控制文件

创建完项目后,应该会有几个提示 ,你可以cd 到spiders文件下
创建爬虫文件 qcwy_spider 以及域名为search.51job.com。

 scrapy genspider   qcwy_spider   "search.51job.com"

在总的控制文件scrapy.cfg 同级目录创建start.py文件

在配置文件settings.py 修改一些属性

把机器人协议改成False
DOWNLOAD_DELAY = 3 取消注释
随后在请求头中加入伪装头

最后把 ITEM_PIPELINES 取消注释 后续会用到

代码展示

qcwy_spider.py 代码展示

import scrapy
from qcwy_job.items import QcwyJobItemclass QcwySpiderSpider(scrapy.Spider):name = 'qcwy_spider'allowed_domains = ['search.51job.com']     #域名start_urls = []# 生成大量urlfor i in range(1, 3):url_pre = 'https://search.51job.com/list/000000,000000,0000,00,9,99,' \'%25E6%2595%25B0%25E6%258D%25AE%25E5%2588%2586%25E6%259E%2590,2,'url_end = '.html?'url = url_pre + str(i) + url_end   # URL拼接start_urls.append(url)  # 将url添加至start_urlsdef parse(self, response):dom_list = response.xpath('//div[@class="dw_table"]/div[@class="el"]')for t in dom_list:item = QcwyJobItem()# 1、岗位名称item['job_name'] = t.xpath('.//p/span/a[@target="_blank"]/@title').get()# 2、公司名称item['company_name'] = t.xpath('.//span[@class="t2"]//@title').get()# 3、工作地点item['address'] = t.xpath('.//span[@class="t3"]/text()').get()# 4、薪资item['salary'] = t.xpath('.//span[@class="t4"]/text()').get()yield item

items.py 代码展示

import scrapyclass QcwyJobItem(scrapy.Item):job_name = scrapy.Field()company_name = scrapy.Field()address = scrapy.Field()salary = scrapy.Field()

pipelines.py 代码展示

from itemadapter import ItemAdapter
import pymysql
from twisted.enterprise import adbapi
import copyclass QcwyJobPipeline:def __init__(self):dbparams = {'host': 'localhost',  # mysql服务器地址'port': 3306,  # mysql服务器端口号'user': 'root',  # 用户名'passwd': '123123',  # 密码'db': 'save_data',  # 数据库名'charset': 'utf8'  # 连接编码}self.post = adbapi.ConnectionPool('pymysql', **dbparams)def process_item(self, item, spider):# 深拷贝cityItem = copy.deepcopy(item)# 保存数据query = self.post.runInteraction(self._conditional_insert, cityItem)return itemdef _conditional_insert(self, tb, item):# 数据持久化sql = "INSERT INTO scrapy_job_info(job_name,company_name,address,salary)values(%s,%s,%s,%s)"params = (item['job_name'], item['company_name'], item['address'], item['salary'])tb.execute(sql, params)

然后在start.py 右键运行即可
调式代码可以去了解下scrapy shell + 网址 (其他参数)
终端也可以运行代码

有什么问题,欢迎提问

Python Scrapy 爬取 前程无忧招聘网相关推荐

  1. Python+scrapy爬取36氪网

    Python+Scrapy爬取36氪网新闻 一.准备工作: ​ ①安装python3 ​ ②安装scrapy ​ ③安装docker,用来运行splash,splash是用来提供js渲染服务(pyth ...

  2. 用python爬取前程无忧招聘网

    直接上代码了,相比前篇文章智联招聘网的数据,前程无忧网的数据可以爬取很多. 网址:https://search.51job.com/list/040000,000000,0000,00,9,99,%2 ...

  3. 网络爬虫之scrapy爬取某招聘网手机APP发布信息

    1 引言 过段时间要开始找新工作了,爬取一些岗位信息来分析一下吧.目前主流的招聘网站包括前程无忧.智联.BOSS直聘.拉勾等等.有段时间时间没爬取手机APP了,这次写一个爬虫爬取前程无忧手机APP岗位 ...

  4. scrapy爬取某招聘网手机APP发布信息

    1 引言 ​ 过段时间要开始找新工作了,爬取一些岗位信息来分析一下吧.目前主流的招聘网站包括前程无忧.智联.BOSS直聘.拉勾等等.有段时间时间没爬取手机APP了,这次写一个爬虫爬取前程无忧手机APP ...

  5. Python Scrapy 爬取煎蛋网妹子图实例(一)

    前面介绍了爬虫框架的一个实例,那个比较简单,这里在介绍一个实例 爬取 煎蛋网 妹子图,遗憾的是 上周煎蛋网还有妹子图了,但是这周妹子图变成了 随手拍, 不过没关系,我们爬图的目的是为了加强实战应用,管 ...

  6. 大数据项目开发hadoop集群搭建 python爬取前程无忧招聘网信息以及进行数据分析和数据可视化

    大数据项目开发实训报告 一.Hadoop环境搭建 1: jdk的安装 1):在linux系统下的opt目录下创建software 和 module 两个目录 2):利用filezilla工具将 jdk ...

  7. Python爬虫 scrapy框架爬取某招聘网存入mongodb解析

    这篇文章主要介绍了Python爬虫 scrapy框架爬取某招聘网存入mongodb解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 创建项目 sc ...

  8. 基于python多线程和Scrapy爬取链家网房价成交信息

    文章目录 知识背景 Scrapy- spider 爬虫框架 SQLite数据库 python多线程 爬取流程详解 爬取房价信息 封装数据库类,方便多线程操作 数据库插入操作 构建爬虫爬取数据 基于百度 ...

  9. Python利用Scrapy爬取前程无忧

    ** Python利用Scrapy爬取前程无忧 ** 一.爬虫准备 Python:3.x Scrapy PyCharm 二.爬取目标 爬取前程无忧的职位信息,此案例以Python为关键词爬取相应的职位 ...

  10. 使用Python爬取51job招聘网的数据

    使用Python爬取51job招聘网的数据 进行网站分析 获取职位信息 存储信息 最终代码 进行网站分析 进入https://www.51job.com/这个网站 我在这就以python为例搜索职位跳 ...

最新文章

  1. iOS 即时聊天键盘处理
  2. 一般向量空间的基变换_从希尔伯特空间的角度看线性变换的一般思想和问题
  3. 机器学习之神经网络模型-下(Neural Networks: Representation)
  4. CTF中PHP相关题目考点总结(二)
  5. xgboost与coo_matrix
  6. 淘宝+天猫+闲鱼卖的翻新货店家汇总(持续更新)
  7. 清理jdk注册表_JDK 9早期版本安装后的Windows注册表清理
  8. layui列表筛选列_Shopify搜索产品并筛选产品列表功能介绍
  9. 数据库建表需要外键约束?
  10. RabbitMq学习笔记006---修改RabbitMq端口号和心跳时间
  11. floodfill算法 java_OpenCV 3 floodFill(漫水填充)、图片的放大缩小 pyrUp、pyrDown、Resize JAVA OpenCV专题学习10...
  12. Git学习(一)本地操作
  13. 在iMac上如何轻松去掉程序坞中最近打开过的应用--小技巧
  14. Mac下生成多个SSH KEY并管理
  15. 华为海思智能手机处理器及其参数对比
  16. 称呼大全,亲戚称呼,祖宗十八代的称呼!
  17. 日常工作记录---在虚拟机中进行slam建图
  18. 计算机第四轮学科评估排名,最权威中国高校学科排名,全国第四轮学科评估结果出炉!...
  19. cad安装计算机丢失无法启动不了,Win10无法打开CAD2006提示“计算机中丢失ac1st16.dll”怎么办...
  20. python+FTP 批量上传文件

热门文章

  1. 百度地图显示多个标注点
  2. 不知道RabbitMQ中Exchange类型Internal是什么意思?这边来~
  3. Ubuntu 18.04配置ORB-SLAM2+ROS实时运行ORB-SLAM2+SLAM相关库的安装 相关问题汇总(USB_CAM , ROS 编译问题)
  4. 3分钟为你的应用添加声波通讯功能
  5. storm风暴英雄 tempo_【风暴英雄】锐派专区 - fb.replays.net | 风暴英雄官网合作中文站...
  6. EPON+EOC 大批量设备网管解决方案
  7. mysql 创建表指定时区,[MySQL] 设置时区
  8. Tomcat服务器 和 HTTP协议
  9. javaScript深度克隆
  10. php报错_STORAGE_WRITE_ERROR_:./Application/Runtime/Cache/Admin/df12aa1edf6tt330187a6514aae4fda4.php