Scrapy框架的应用———爬取Boss招聘网站关于爬虫工程师的名称和薪资

本文介绍了一种使用Scrapy框架抓取Boss直聘网站Python爬虫岗位信息的方法。通过定义Spider类,设置起始URL,解析网页获取职位名称和薪资,并通过管道将数据写入本地文件。同时,实现了自动翻页功能,可以连续抓取多页数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目主代码

 1 import scrapy
 2 from boss.items import BossItem
 3 
 4 class BossproSpider(scrapy.Spider):
 5     name = 'bossPro'
 6     # allowed_domains = ['www.baidu.com']
 7     url = 'https://www.zhipin.com/c101010100/?query=python%E7%88%AC%E8%99%AB&page='
 8     start_urls = ['https://www.zhipin.com/c101010100/?query=python%E7%88%AC%E8%99%AB&page=1']
 9     pageNum=1
10 
11     def parse(self, response):
12         li_list=response.xpath('//div[@class="job-list"]/ul/li')
13         for li in  li_list:
14             job_name=li.xpath('./div/div[1]/h3/a/div[1]/text()').extract_first()
15             salary=li.xpath('./div/div[1]/h3/a/span/text()').extract_first()
16             item=BossItem()
17             item['job_name']=job_name
18             item['salary']=salary
19 
20             yield  item
21 
22         #通过循环的形式请求其他页码数据
23         if self.pageNum <=3:
24             self.pageNum+=1#因为第一页的数据已经请求,所有从第二页请求
25 
26             # 参数2:回调函数,作用就是对请求到的页面数据进行解析操作
27             new_url=self.url+str(self.pageNum)
28 
29             # yield的使用场景:1.向管道提交item  2.手动请求发送
30             yield scrapy.Request(url=new_url,callback=self.parse)
bossPro

items代码:

1 import scrapy
2 
3 
4 class BossItem(scrapy.Item):
5     # define the fields for your item here like:
6     # name = scrapy.Field()
7     job_name=scrapy.Field()
8     salary=scrapy.Field()
items

pipelines代码:

 1 class BossPipeline(object):
 2 
 3     fp=None
 4     def open_spider(self,spider):
 5         self.fp=open('./job.txt','w',encoding='utf-8')
 6     def process_item(self, item, spider):
 7         self.fp.write(item['job_name']+":"+item['salary']+'\n')
 8         return item
 9     def close_spider(self,spider):
10         self.fp.close()
管道代码

setting配置代码

1 USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36'
2 
3 
4 ROBOTSTXT_OBEY = False
5 
6 
7 ITEM_PIPELINES = {
8    'boss.pipelines.BossPipeline': 300,
9 }
setting

 

转载于:https://www.cnblogs.com/duanhaoxin/p/10115113.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值