python爬虫(二十二)scrapy案例--爬取腾讯招聘数据

scrapy爬取腾讯招聘数据

需求分析

爬取腾讯招聘–社会招聘–技术类的工作岗位,实现翻页的爬取

页面分析

复制任意职位名称,点右键,查看网页源代码,在里面并未找到相关内容,说明页面不是静态加载出来的,是动态加载出来的。点击Network —> XHR,刷新页面,在左侧name下出现4个文件,依次点击查找数据接口,在Query开头的文件中Preview中可以看到需要的职位名称,因此这个文件下Headers里的url就是我们需要爬取的url。
在这里插入图片描述
在这里插入图片描述
当我们点击页面尾部下一页的时候,在name下面出另加载出来一个Query开头的文件,依次点开几页,我们可以从url中找到规律。
https://careers.tencent.com/tencentcareer/api/post/Query?timestamp=1632126706522&countryId=&cityId=&bgIds=&productId=&categoryId=&parentCategoryId=40001&attrId=&keyword=&pageIndex=1&pageSize=10&language=zh-cn&area=cn 第一页
https://careers.tencent.com/tencentcareer/api/post/Query?timestamp=1632127143042&countryId=&cityId=&bgIds=&productId=&categoryId=40001001,40001002,40001003,40001004,40001005,40001006&parentCategoryId=&attrId=&keyword=&pageIndex=2&pageSize=10&language=zh-cn&area=cn 第二页
https://careers.tencent.com/tencentcareer/api/post/Query?timestamp=1632127244688&countryId=&cityId=&bgIds=&productId=&categoryId=40001001,40001002,40001003,40001004,40001005,40001006&parentCategoryId=&attrId=&keyword=&pageIndex=3&pageSize=10&language=zh-cn&area=cn 第三页

timestamp是时间戳,是访问页面的时间
按照第三页的url,把pageIndex改为1,同样能访问到第一页,说明 做翻页处理时候pageIndex=n,代表的是第n页。
复制任一页的网页打开后
在这里插入图片描述
我们可以发现要爬取的数据是以字典的形式存放在网页代码中,访问的url就是要爬取的url。

代码实现

实现对职位、地区、工作职责、详情页url的爬取

创建scrapy文件,这里是在cmd下创建的,我的爬虫文件在D盘,也可以在pycharm中的Terminal中直接创建。
在这里插入图片描述

start.py
from scrapy import cmdline

# cmdline.execute(['scrapy', 'crawl', 'TXhr'])  # 方法一
cmdline.execute('scrapy crawl TXhr'.split(" "))  # 方法二
items.py
import scrapy
class TencentItem(scrapy.Item):
    # define the fields for your item here like:
    # name = scrapy.Field()
    RecruitPostName = scrapy.Field()
    LocationName = scrapy.Field()
    Responsibility = scrapy.Field()
    PostURL = scrapy.Field()
LOG_LEVEL = 'WARNING'
BOT_NAME = 'tencent'

SPIDER_MODULES = ['tencent.spiders']
NEWSPIDER_MODULE = 'tencent.spiders'

ROBOTSTXT_OBEY = False

DEFAULT_REQUEST_HEADERS = {
   
  'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
  'Accept-Language': 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值