YGLsmile 2019-12-06
想成为一名真正的程序猿,你需要一份从事编程的工作!那么我们今天就来抓取腾讯招聘网站上的招聘信息!
要获取腾讯招聘网站上的招聘信息,需要以下三步:
· 准备工作:安装scrapy框架模块、安装lxml模块;
· 利用谷歌浏览器抓包:确定url,发送请求所需参数,确定返回数据所在位置;
· 利用scrapy爬虫框架完成代码。
目标:安装scrapy、lxml模块。
· 在命令行终端输入 pip install scrapy 后,等待下载安装完成
scrapy是一个爬虫框架,可以帮助我们用很少的代码完成快速的抓取。
· 在命令行终端输入 pip install lxml 后,等待下载安装完成
lxml可以用来对html页面的数据进行提取。
· 确定列表页和详情页的url
· 注意最后一页
· 确定工作职责和工作要求
根据抓包确定代码逻辑
对起始url发送请求获取响应,指定该响应用专门解析列表页的函数来提取处理;
在列表页解析函数中,对列表页的响应内容进行提取。首先提取下一页的url,并构造请求对象,指定使用列表页解析函数来解析响应。其次提取详情页的url,并构造请求对象,指定使用详情页解析函数来解析响应;
在详情页解析函数中,提取相应的数据:标题、工作职责、工作要求。
· 创建scrapy项目和爬虫
在终端输入 scrapy startproject Tencent创建项目。
Tencent是项目的名字,创建完成后,可以在相应的路径下看到如下文件夹及文件结构:
进入项目路径下,终端输入scrapy genspider tencent tencent.com创建爬虫:
1 cd Tencent 2 scrapy genspider tencent tencent.com
tencent.com是爬虫抓取的url的域名范围,后续可以在代码中进行修改。创建爬虫成功后在spiders文件夹下可以看到名为tencent的py文件:
打开tencent.py文件可以看到scrapy框架已经帮我写好了一部分代码:
完成tencent.py中的代码:
设置settings.py文件
在项目文件夹Tencent下修改settings.py配置文件:
1 USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36' 2 3 ROBOTSTXT_OBEY = False
PS:USER_AGENT是用户代理,ROBOTSTXT_OBEY改为False表示忽略robot协议。
· 在项目路径下终端执行scrapy crawl tencent就可以将招聘信息保存到文件中
现在我们就可以通过以下步骤完成代码抓取腾讯招聘信息:
1.利用谷歌浏览器进行抓包,确定列表页的url和详情页的url,确定数据所在位置;
2.scrapy的命令:
· 创建scrapy爬虫项目 scrapy startproject 项目名;
· 在项目路径下创建scrapy爬虫scrapy genspider 爬虫名 爬虫爬取范围的域名;
· 在项目路径下运行爬虫 scrapy crawl 爬虫名;
3.完成爬虫模块代码的编写;
4.完成配置文件的修改,运行爬虫。
喜欢就关注下吧。