Scrapy爬取腾讯招聘网信息
需求:爬取多页职位详情内容,实现翻页请求
scrapy.Request知识点
1、创建一个scrapy项目
scrapy startproject tencent
2、生成一个爬虫文件
scrapy genspider tc tencent.com
3、设置settings,添加log日志等级
4、分析页面url
5、开始编写代码
def parse(self, response):
for page in range(1,6):
# 拼接起始页url
url1=self.start_url.format(page)
# scrapy内部请求框架
yield scrapy.Request(
url=url1,
# callback 指定传入的url交给一个解析函数去处理
callback=self.parse1
)
# 起始页
def parse1(self,response):
js=json.loads(response.text)
for job in js['Data']['Posts']:
item = {}
item['Location'] = job['LocationName']
item['Name'] = job['RecruitPostName']
post_id=job['PostId']
# 拼接详情页url
url2=self.detail_url.format(post_id)
yield scrapy.Request(
url=url2,
callback=self.parse2,
# meta 将数据传给下一个函数
meta={'item':item}
)
# 详情页
def parse2(self,response):
# 接收上面传的dict数据
item=response.meta.get('item')
js=json.loads(response.text)
# 爬取岗位职责
item['duty']=js['Data']['Responsibility']
# 爬取岗位要求
item['requirement']=js['Data']['Requirement']
print(item)