项目目标:用Scrapy爬取招聘网站的招聘信息
目标网站:职友集,url:https://www.jobui.com/rank/company/
先爬取企业排行榜四个榜单里的公司,再接着爬取这些公司的招聘信息,爬取公司名称、职位、工作地点和招聘要求。
一、创建项目
电脑终端跳转到你想要保存项目的目录下输入创建Scrapy项目的命令:
scrapy startproject jobui(jobui为项目名字可自取)start- [stɑːt]–开始 project-[ˈprɔdʒekt] —n,计划,设计,项目
创建好项目后,本地电脑的编译器打开这个Scrapy项目,会看到如下的结构:
二、定义item(要爬取的数据)
在items.py这个文件里定义,就是定义要爬取的公司名称、职位、工作地点和招聘要求,的数据.代码示例:
import scrapy
class JobuiItem(scrapy.Item):
#定义了一个继承自scrapy.Item的JobuiItem类
company = scrapy.Field()
#定义公司名称的数据属性
position = scrapy.Field()
#定义职位名称的数据属性
address = scrapy.Field()
#定义工作地点的数据属性
detail = scrapy.Field()
#定义招聘要求的数据属性
三、创建和编写爬虫文件
在spiders文件夹里创建爬虫文件,命名为jobui_ jobs
公司的网址规律是:
http://www.jobui.com+/company/+数字/+jobs/
比如,字节跳动公司的招聘信息网址就是:
https://www.jobui.com/company/10375749/jobs/
再把每家公司招聘信息的网址封装成requests对象,在Scrapy里,获取网页源代码会由引擎分配交给下载器去做,不需要我们自己处理(也就是不需要requests.get())。我们之所以要构造新的requests对象,是为了告诉引擎,我们新的请求需要传入什么参数,这样才能让引擎拿到的是正确requests对象,交给下载器处理。
代码示例:
#导入模块
import scrapy
import bs4
from ..items import JobuiItem
class JobuiSpider(scrapy.Spider):
#定义一个爬虫类JobuiSpider
name = 'jobui'
#定义爬虫的名字为jobui
allowed_domains = ['www.jobui.com']
#定义允许爬虫爬取网址的域名——职友集网站的域名
start_urls = ['https://www.jobui.com/rank/company/']
#定义起始网址—