上次的爬虫只是爬取了CSDN论坛的问题数据,相对来说比较简单,本篇文章来介绍一下爬取51job网站,获取它的职位,薪资,职位要求等信息。
代码思路:1.首先获取到种子网页的所有职位的url,以及下一页的url。2.通过抽取到的职位的url来依次请求相应职位的详细信息,包括薪资,职位要求等。3.定义解析数据的函数,通过xpath或者css选择器获取到职位薪资信息。4.请求第一步中获取到的下一页的网址,对下一页的网址进行分析,抽取出url,再依次分析。5.将数据保存到数据库。
1.创建项目
scrapy startproject wuyou
创建一个名称为wuyou的项目,爬取前程无忧网站的职位信息。
手动在spiders文件夹下创建一个job_spider.py文件,用来实现爬虫主要逻辑。
二.配置项目
(1)编写items文件
import scrapy
class WuyouItem(scrapy.Item):
# define the fields for your item here like:
# name = scrapy.Field()
title = scrapy.Field()
salary = scrapy.Field()
profile = scrapy.Field()
我在这里定义了三个字段,分别对应职位名称,薪资,职位要求。
(2)编写pipelines文件
import sqlite3
db = sqlite3.connect("./../jobs.db")
cursor = db.cursor()
class WuyouPipeline(object):
def process_item(self, item, spider):
cursor.execute("insert into job(title, salary, profile) values (?,?,?)",(item["title"],item["salary"],item["profile"]))
db.commit()
将数据保存在sqlite数据库中,也可以保存在MySQL数据库中,写法类似。
(3)配置settings文件
启用管道文件
ITEM_PIPELINES = {
'wuyou.pipelines.WuyouPipeline': 300,
}
启用下载延迟
DOWNLOAD_DELAY = 3
RANDOMIZE_DOW