1.前言现在处于疫情阶段,找一份好工作更难了。很多人会选择在网上寻找招聘信息。但是有些职位发布很复杂。此外,不可能列出所有信息。从外卖58招聘网站来看,信息整理不清晰。2、项目目标是获取招聘信息,将地点、公司名称、薪资、下载量批量保存在txt文件中。3、项目准备软件:PyCharm需要的库:requests、lxml、fake_useragent网址如下:https://gz.58.com/job/pn2/?param7503=1&from=yjz2_zhaopin&PGTID=0d302408-0000-3efd-48f6-ff64d26b4b1c&ClickID=当{}点击下一页时,ClickID={}每多一页自动加1,将转换后的变量替换为{},然后使用for循环遍历URL,实现多次URL请求。4、防爬措施本网站的防爬主要有两点:1、直接使用requests库。不设置任何headers,网站不会直接返回数据。ip,一开始我的ip是这样被封的。为了解决这两个问题,经过研究,可以采用以下方法有效解决。1、获取正常的http请求头,在请求时设置这些正常的http请求头。2.使用fake_useragent生成随机UserAgent进行访问。五、项目实现1、定义一个继承object的类,定义继承self的init方法,定义继承self的main函数main。导入需要的库和url,代码如下。importrequestsfrommlxmlimportetreefromfake_useragentimportUserAgentclassZhaopin(object):def__init__(self):self.url="https://gz.58.com/job/pn2/?param7503=1&from=yjz2_zhaopin&PGTID=0d302408-0000-3efd-48f6#464dc2&/zhuanchang/:Piny搜索名字的缩写defmain(self):passif__name__=='__main__':Spider=Zhaopin()Spider.main()2.随机生成UserAgent.foriinrange(1,50):self.headers={'User-Agent':ua.random,}3.发送请求,得到响应,回调页面方便下一次请求defget_page(self,url):res=requests.get(url=url,headers=self.headers)html=res.content.decode("utf-8")returnhtml4.Xpath分析找到对应的父节点defpage_page(self,html):parse_html=etree.HTML(html)one=parse_html.xpath('//div[@class="mainclearfix"]//div[@class="leftCon"]/ul/li')5、遍历,定义一个变量food_info保存,得到对应的菜名、原料、下载链接二级页面。forlinone:o=l.xpath('.//a/span[1]/text()')[0].strip()t=l.xpath('.//a//span[@class="name"]/text()')[0].strip()f=l.xpath('.//p[@class="job_salary"]/text()')thr=l.xpath('.//div[@class="comp_name"]//a/text()')[0].strip()foreinf:boss='''%s:||%s:公司:%s,工资:%s元/月=========================================================='''%(o,t,thr,e)print(str(boss)6.将结果保存到txt文件中,如下图。f=open('g.txt','a',encoding='utf-8')#以'w'模式打开文件f.write(str(boss))#print(house_dict)f.write("\n")#keyandvalue奇数行放key,偶数行放valuef.close()7.调用方法实现功能html=self.get_page(url)self.page_page(html)6.效果展示1.点击绿色小三角运行输入起始页和结束页2.运行程序后,控制台显示结果,如下图3.保存txt文件本地,如下图4.双击文件,出现nd内容如下图所示。七、总结1、不建议抓取太多数据,容易造成服务器负载,试试看。2、本文介绍Python爬取招聘网站的应用难点和重点,以及如何防止反爬。给出了一个相对的解决方案。3.介绍了字符串的拼接和列表的转换。4.代码很简单,希望对你有帮助。5.欢迎大家积极尝试,有时候看到别人实现起来很简单,但是自己动手的时候总会出现各种问题。不要太狂妄自大,努力理解得更深刻。6.你可以选择你喜欢的类别,找工作,找到我喜欢的工作。
