post python爬虫_Python爬虫进阶(八)爬虫Scrapy实战之爬取腾讯招聘信息

v2-f7d8d45886a96a57b8de52c2c7ece340_1440w.jpg?source=172ae18b

前面咱们介绍了scrapy框架的使用,今天就来实战,爬取一下腾讯招聘的职位信息。

一、分析url
二、创建scrapy项目并生成爬虫
三、提取数据
四、保存数据

一、分析url

先确定url,这是网站的url:

url 

咱们的需求是获取职位的名称、下面的工作职责、工作需求,并实现翻页操作。

分析网页源代码,发现这些信息都不在源码中,考虑使用抓包工具,进入network,刷新后出现一个带有“query”的文件,可以从中找到咱们想要的信息。因此,现在的url就是要作为起始的url:

v2-81e5250c07b8dd8561ea13f44cfc4be6_b.jpg

起始url(列表页,总的职位信息页面)为:

one_url 

同样的方法,能找到起始url(详情页,单个职位的具体信息页面)为:

two_url 

二、创建scrapy项目并生成爬虫

现在,通过terminal终端创建一个scrapy项目:

scrapy startproject tencent

v2-624b5d8d18a62259881707af8e6afb34_b.jpg

v2-bf1f2635e11c4ab0f08654ac7d77ea23_b.png

v2-bfe6e28bf77109182e8a3c7507596dad_b.jpg

v2-392287c39dd6944e71b3d2591605118a_b.png

v2-2ca0650090624bbe4b41fc60348cf6f5_b.jpg

三、提取数据

1.对setting文件进行设置

为了不让其他信息显示出来干扰数据,设置中加入如下字段:

LOG_LEVEL 

如下图:

v2-5524eab1af298729745262a659e8c7df_b.jpg

2.添加start文件

在总目录下添加start.py文件,用于运行爬虫。

v2-43b513131c00039344639c0a909bda64_b.jpg

start文件代码如下:

from 

右键run运行。

结果如下:

v2-362a7ecaeeaad1191e67b6118402a4f2_b.jpg

可以看到,数据已经获取到了。要做进一步处理。

3.对解析函数parse()进行定义

因为要实现翻页操作,因此要对每一页的url进行遍历,在parse()中,这部分代码如下(要爬取1-10页):

import 

结果如下:

v2-16d263779eb7e4009586bce98f47c26d_b.jpg

接着编辑parse_two():

def 

结果如下:

v2-445c1b515b7ecadf61b86944e2537475_b.jpg

可以发现,整个数据是从最后一页(第10页)倒着往前打印的。至此,数据已经全都获取到了。

其中,要对页码url进行请求,获取每页数据,会用到scrapy.Request

这是其中的参数:

scrapy.Request(url,callback=None,method=‘GET’,headers=None,bod y=None,cookies=None,meta=None,encoding=‘utf-8’,priority=0,2 dont_filter=False,errback=None,flags=None)

scrapy.Request常用参数为:

callback:指定传⼊的URL交给哪个解析函数去处理,回调函数是用来自定义一个接收函数名(接收响应结果)。

meta:实现不同的解析函数中传递数据,meta默认会携带部分信息,比如下载延迟,请求深度。

dont_filter:让scrapy的去重不会过滤当前URL,scrapy默认有URL去重功能,对需要重复请求的URL有重要⽤途。

4.一些细节

4.1 items文件的使用

如果想把要获取的字段提前定义好,要用到items.py文件。在其中将之前定义要获取的字段按照这一格式写好:

class 

将tencent文件夹设置成根目录:右键tencent文件夹

v2-62d16ddd168cd88bb5995830034d9aa3_b.jpg

设置成根目录,在hr.py文件中导入:

from 

在已定义的字段之前,加上:item=TencentItem(),再次执行即可,能够排除因字段错误导致的问题。

4.2验证爬虫文件的其他方式

前面咱们讲了2种方法,今天来介绍第三种方法。

isinstance():判断一个对象是否是另一个对象的实例,可以沿用到这里:

from 

这样也能验证是不是某个爬虫文件的数据,要记住在这之前,要yield字段数据;打开setting中的pipeline。再去运行start.py文件。

四、保存数据

在pipelines文件中进行保存数据的剩余工作。关于pipelines的使用,在前面已经介绍过。

好了,今天的scrapy实战操作就到这里了。

Python爬虫基础部分:

  • Python 怎么快速入门?11篇实战干货带你深入了解 Python爬虫!建议收藏

Python爬虫进阶部分

  • 第一篇:Python爬虫进阶(一)爬虫之动态数据与selenium
  • 第二篇:Python爬虫进阶(二)爬虫之多任务模块(Ⅰ)
  • 第三篇:Python爬虫进阶(三)爬虫之多任务模块(Ⅱ)
  • 第四篇:Python爬虫进阶(四)爬虫之多任务模块(Ⅲ)
  • 第五篇:Python爬虫实战之 爬取王者荣耀皮肤
  • 第六篇:Python爬虫进阶(五)爬虫之多线程爬虫实战(爬取王者荣耀皮肤)
  • 第七篇:Python爬虫进阶(六)爬虫之Scrapy初探(Ⅰ)
  • 第八篇:Python爬虫进阶(七)爬虫之Scrapy初探(Ⅱ)

最近在知乎创建了一个新的Python技术圈子,在里面每天都会分享好玩有趣的Python知识,你如果对Python这门技术感兴趣的可以加入哦!交个朋友

Python技术 - 知乎​www.zhihu.com
v2-7d08d26c10e071632b779e6221d5e376_ipico.jpg
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值