Scrapy爬虫四步法:爬取51job网站
Scrapy爬虫四步法
一、创建项目
打开pycharm下面的Terminal窗口
scrapy startproject 项目名
如:scrapy startproject crawler51job
二、定义要爬取的数据
编写items文件(Item对象可以保存爬取到的数据,相当于存储爬取到的数据的容器。)
# -*- coding: utf-8 -*-# Define here the models for your scraped items
#
# See documentation in:
# https://docs.scrapy.org/en/latest/topics/items.htmlimport scrapyclass Crawler51JobItem(scrapy.Item):# define the fields for your item here like:# name = scrapy.Field()position = scrapy.Field() # 职位company = scrapy.Field() # 公司名place = scrapy.Field() # 工作地点salary = scrapy.Field() # 薪资
三、创建并编写爬虫文件
1-创建爬虫文件:
scrapy genspider -t basic 爬虫文件名 域名
2-编写爬虫文件
【注意】allowed_domains是指要爬取的网址的域名。start_urls是指爬取的起始网页
在parse函数中编写代码
要先导入items文件中的Crawler51JobItem
from crawler51job.items import Crawler51JobItem
# -*- coding: utf-8 -*-
import scrapy
from crawler51job.items import Crawler51JobItemclass Spider51jobSpider(scrapy.Spider):name = 'spider51job'allowed_domains = ['51job.com']start_urls = ['https://search.51job.com/list/010000,000000,0000,32,9,99,Java%25E5%25BC%2580%25E5%258F%2591,2,1.html']def parse(self, response):item = Crawler51JobItem()item['position'] = response.xpath('//div[@class="el"]/p[@class="t1 "]/span/a/@title').extract()item['company'] = response.xpath('//div[@class="el"]/span[@class="t2"]/a/@title').extract()item['place'] = response.xpath('//div[@class="el"]/span[@class="t3"]/text()').extract()item['salary'] = response.xpath('//div[@class="el"]/span[@class="t4"]/text()').extract()yield item
编写pipelines.py文件(主要用于对这些item进行处理)
# -*- coding: utf-8 -*-# Define your item pipelines here
#
# Don't forget to add your pipeline to the ITEM_PIPELINES setting
# See: https://docs.scrapy.org/en/latest/topics/item-pipeline.html
from pandas import DataFrameclass Crawler51JobPipeline(object):def process_item(self, item, spider):# 将取出的信息放到数据框jobInfo = DataFrame([item['position'], item['company'], item['place'], item['salary']]).T# 设置列名jobInfo.columns = ['职位名', '公司名', '工作地点', '薪资']# 将数据保存到本地jobInfo.to_csv('jobInfo.csv',encoding='gbk') # 设置编码格式,防止乱码return item
编写settings.py文件(settings文件为爬虫项目的设置文件,主要是爬虫项目的一些设置信息。)
例如,启用了pipelines,需要把settings中相关代码的注释取消
四、爬虫运行及调试
在Terminal
scrapy crawl 爬虫文件名
如:scrapy crawl spider51job
如果运行出错:ModuleNotFoundError: No module named 'win32api'
则需要安装pywin32,去官网下载合适的版本
https://sourceforge.net/projects/pywin32/files/pywin32/Build%20221/
Scrapy爬虫四步法:爬取51job网站相关推荐
- Python Scrapy爬虫框架爬取51job职位信息并保存至数据库
Python Scrapy爬虫框架爬取51job职位信息并保存至数据库 -------------------------------- 版权声明:本文为CSDN博主「杠精运动员」的原创文章,遵循CC ...
- 爬虫基础练习: 基于 java + Jsoup + xpath 爬取51job网站
最基本的网页爬虫练习 爬取51jb网站,并将数据写入Excel中 需要导入jsoup包和POI相关包 JSoup简介 jsoup是一款Java的HTML解析器,主要用来对HTML解析, 可通过DOM, ...
- Python爬虫,爬取51job上有关大数据的招聘信息
Python爬虫,爬取51job上有关大数据的招聘信息 爬虫初学者,练手实战 最近在上数据收集课,分享一些代码. 分析所要爬取的网址 https://search.51job.com/list/000 ...
- scrapy模拟浏览器爬取51job(动态渲染页面爬取)
scrapy模拟浏览器爬取51job 51job链接 网络爬虫时,网页不止有静态页面还有动态页面,动态页面主要由JavaScript动态渲染,网络爬虫经常遇见爬取JavaScript动态渲染的页面. ...
- python爬取多页数据_python爬虫实现爬取同一个网站的多页数据代码实例
本篇文章小编给大家分享一下python爬虫实现爬取同一个网站的多页数据代码实例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 一.爬虫的目的 从网上获 ...
- Python爬虫实战爬取租房网站2w+数据-链家上海区域信息(超详细)
Python爬虫实战爬取租房网站-链家上海区域信息(过程超详细) 内容可能有点啰嗦 大佬们请见谅 后面会贴代码 带火们有需求的话就用吧 正好这几天做的实验报告就直接拿过来了,我想后面应该会有人用的到吧 ...
- python爬虫实战-爬取视频网站下载视频至本地(selenium)
#python爬虫实战-爬取视频网站下载视频至本地(selenium) import requests from lxml import etree import json from selenium ...
- Scrapy 爬虫实战-爬取字幕库
Scrapy 爬虫实战-爬取字幕库 1.首先,创建Scrapy框架 创建工程 scrapy startproject zimuku创建爬虫程序 cd zimuku scrapy genspider z ...
- 爬虫入门--爬取就业网站上的岗位信息构造数据集
爬虫入门--爬取就业网站上的岗位信息.解析爬取的数据构造数据集 爬虫入门实践 爬虫的基本概念 爬虫的技术实现 爬虫入门实践 大家好!随着大数据分析逐渐火热的今天,爬虫技能也成了数据分析师一项不可或缺的 ...
- 用Scrapy爬虫框架爬取食品论坛数据并存入数据库
这篇文章主要给大家介绍了食品网站的数据采集和存储过程,详解了如何分析网页结构.爬虫策略.网站类型.层级关系.爬虫方法和数据存储过程,最终实现将帖子的每条评论爬取到数据库中,并且做到可以更新数据,防止重 ...
最新文章
- C# WebProxy POST 或者 GET
- 不懂这25个名词,好意思说你懂大数据?
- unsafehelper java_Java 9中将移除 Sun.misc.Unsafe
- 一、织物组织相关基本概念
- nginx配置详解(转)
- mysql获取上周时间戳_php、mysql查询当天,查询本周,查询本月的数据实例(字段是时间戳)...
- 云课堂智慧职教答案python_云课堂智慧职教答案python
- 极化码:信道极化原理(一)——两信道极化定理
- tplink查看上网记录_Tplink路由器PPPOE拨号不能上网日志查看原因
- 解密Zynga:专注 流水线 数据控
- Flask源码阅读(六)——Flash消息
- svg格式的图片怎么放到word中?
- android手机没电怎么恢复电量,Android手机电池电量剩下通知
- ttttttttttt
- SQL SERVER 20005 分布式事务配置
- RabbitMQ(四):mandatory、immediate、备份交换器
- 华章1-2月份新书简介(2017年)
- VB 6.0 如何在64位操作系统下运行!
- 计算机网络与多媒体试卷,《计算机网络与多媒体技术》试卷
- ”linux学习之路” (感觉写的很好,更像是网络编程学习路线图)
热门文章
- 公司企业邮箱开通使用,收不到邮件怎么办?
- [Codeforces Round #428 DIV2E (CF839E)] Mother of Dragons
- Python处理二进制流(一)
- Retina显示屏-揭秘移动端的视觉稿通常会设计为传统PC的2倍
- c语言中char是什么,c语言中char什么意思-与非网
- 荣耀平板5710升级鸿蒙系统,荣耀平板也要升级至鸿蒙系统了 今年Q4开始
- 【句库】英语论文写作之好词好句积累
- 计算机网络共享打不开,电脑系统网络和共享中心打不开怎么办
- Vue关键词搜索高亮
- semi-frequent