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网站相关推荐

  1. Python Scrapy爬虫框架爬取51job职位信息并保存至数据库

    Python Scrapy爬虫框架爬取51job职位信息并保存至数据库 -------------------------------- 版权声明:本文为CSDN博主「杠精运动员」的原创文章,遵循CC ...

  2. 爬虫基础练习: 基于 java + Jsoup + xpath 爬取51job网站

    最基本的网页爬虫练习 爬取51jb网站,并将数据写入Excel中 需要导入jsoup包和POI相关包 JSoup简介 jsoup是一款Java的HTML解析器,主要用来对HTML解析, 可通过DOM, ...

  3. Python爬虫,爬取51job上有关大数据的招聘信息

    Python爬虫,爬取51job上有关大数据的招聘信息 爬虫初学者,练手实战 最近在上数据收集课,分享一些代码. 分析所要爬取的网址 https://search.51job.com/list/000 ...

  4. scrapy模拟浏览器爬取51job(动态渲染页面爬取)

    scrapy模拟浏览器爬取51job 51job链接 网络爬虫时,网页不止有静态页面还有动态页面,动态页面主要由JavaScript动态渲染,网络爬虫经常遇见爬取JavaScript动态渲染的页面. ...

  5. python爬取多页数据_python爬虫实现爬取同一个网站的多页数据代码实例

    本篇文章小编给大家分享一下python爬虫实现爬取同一个网站的多页数据代码实例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 一.爬虫的目的 从网上获 ...

  6. Python爬虫实战爬取租房网站2w+数据-链家上海区域信息(超详细)

    Python爬虫实战爬取租房网站-链家上海区域信息(过程超详细) 内容可能有点啰嗦 大佬们请见谅 后面会贴代码 带火们有需求的话就用吧 正好这几天做的实验报告就直接拿过来了,我想后面应该会有人用的到吧 ...

  7. python爬虫实战-爬取视频网站下载视频至本地(selenium)

    #python爬虫实战-爬取视频网站下载视频至本地(selenium) import requests from lxml import etree import json from selenium ...

  8. Scrapy 爬虫实战-爬取字幕库

    Scrapy 爬虫实战-爬取字幕库 1.首先,创建Scrapy框架 创建工程 scrapy startproject zimuku创建爬虫程序 cd zimuku scrapy genspider z ...

  9. 爬虫入门--爬取就业网站上的岗位信息构造数据集

    爬虫入门--爬取就业网站上的岗位信息.解析爬取的数据构造数据集 爬虫入门实践 爬虫的基本概念 爬虫的技术实现 爬虫入门实践 大家好!随着大数据分析逐渐火热的今天,爬虫技能也成了数据分析师一项不可或缺的 ...

  10. 用Scrapy爬虫框架爬取食品论坛数据并存入数据库

    这篇文章主要给大家介绍了食品网站的数据采集和存储过程,详解了如何分析网页结构.爬虫策略.网站类型.层级关系.爬虫方法和数据存储过程,最终实现将帖子的每条评论爬取到数据库中,并且做到可以更新数据,防止重 ...

最新文章

  1. C# WebProxy POST 或者 GET
  2. 不懂这25个名词,好意思说你懂大数据?
  3. unsafehelper java_Java 9中将移除 Sun.misc.Unsafe
  4. 一、织物组织相关基本概念
  5. nginx配置详解(转)
  6. mysql获取上周时间戳_php、mysql查询当天,查询本周,查询本月的数据实例(字段是时间戳)...
  7. 云课堂智慧职教答案python_云课堂智慧职教答案python
  8. 极化码:信道极化原理(一)——两信道极化定理
  9. tplink查看上网记录_Tplink路由器PPPOE拨号不能上网日志查看原因
  10. 解密Zynga:专注 流水线 数据控
  11. Flask源码阅读(六)——Flash消息
  12. svg格式的图片怎么放到word中?
  13. android手机没电怎么恢复电量,Android手机电池电量剩下通知
  14. ttttttttttt
  15. SQL SERVER 20005 分布式事务配置
  16. RabbitMQ(四):mandatory、immediate、备份交换器
  17. 华章1-2月份新书简介(2017年)
  18. VB 6.0 如何在64位操作系统下运行!
  19. 计算机网络与多媒体试卷,《计算机网络与多媒体技术》试卷
  20. ”linux学习之路” (感觉写的很好,更像是网络编程学习路线图)

热门文章

  1. 公司企业邮箱开通使用,收不到邮件怎么办?
  2. [Codeforces Round #428 DIV2E (CF839E)] Mother of Dragons
  3. Python处理二进制流(一)
  4. Retina显示屏-揭秘移动端的视觉稿通常会设计为传统PC的2倍
  5. c语言中char是什么,c语言中char什么意思-与非网
  6. 荣耀平板5710升级鸿蒙系统,荣耀平板也要升级至鸿蒙系统了 今年Q4开始
  7. 【句库】英语论文写作之好词好句积累
  8. 计算机网络共享打不开,电脑系统网络和共享中心打不开怎么办
  9. Vue关键词搜索高亮
  10. semi-frequent