scrapy由浅入深(二) 爬取51job职位薪资信息

本文介绍了使用Scrapy爬取51job网站的职位信息,包括职位名称、薪资和职位要求。文章详细阐述了项目创建、items和pipelines配置、settings设置以及spider文件的编写。在爬虫逻辑中,首先获取种子页面的职位URL,然后解析每个职位详情,将数据保存至数据库。针对数据丢失问题,提出了在数据库记录达到一定数量时才请求下一页的优化策略,以减少数据丢失风险。
摘要由CSDN通过智能技术生成

        上次的爬虫只是爬取了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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值