目录
前言项目目标项目准备反爬措施项目实现效果展示小结前言
现在在疫情阶段,想找一份不错的工作变得更为困难,很多人会选择去网上看招聘信息。可是招聘信息有一些是错综复杂的。而且不能把全部的信息全部罗列出来,以外卖的58招聘网站来看,资料整理的不清晰。
项目目标
获取招聘信息,并批量把地点、 公司名、工资 、下载保存在txt文档。
项目准备
软件: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循环遍历这网址,实现多个网址请求。
反爬措施
该网站上的反爬主要有两点:
1、 直接使用requests库,在不设置任何header的情况下,网站直接不返回数据
2、同一个ip连续访问多次,直接封掉ip,起初我的ip就是这样被封掉的。
为了解决这两个问题,最后经过研究,使用以下方法,可以有效解决。
1、获取正常的 http请求头,并在requests请求时设置这些常规的http请求头。
2、使用 fake_useragent ,产生随机的UserAgent进行访问。
项目实现
1、定义一个class类继承object,定义init方法继承self,主函数main继承self。导入需要的库和网址,代码如下所示。
import requests from lxml import etree from fake_useragent import UserAgent class Zhaopin(object): def __init__(self): self.url = "https://gz.58.com/job/pn2/?param7503=1&from=yjz2_zhaopin&PGTID=0d302408-0000-3efd-48f6-ff64d26b4b1c&ClickID={}" # /zhuanchang/:搜索的名字的拼音缩写 def main(self): pass if __name__ == "__main__": Spider = Zhaopin() Spider.main()
2、随机产生UserAgent。
for i in range(1, 50): self.headers = { "User-Agent": ua.random, }
3、发送请求,获取响应, 页面回调,方便下次请求
def get_page(self, url): res = requests.get(url=url, headers=self.headers) html = res.content.decode("utf-8") return html
4、xpath解析找到对应的父节点。
def page_page(self, html): parse_html = etree.HTML(html) one = parse_html.xpath("//div[@class="main clearfix"]//div[@class="leftCon"]/ul/li")
5、for遍历,定义一个变量food_info保存,获取到二级页面对应的菜 名、 原 料 、下 载 链 接
for l in one: 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() for e in f: 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") # 键和值分行放,键在单数行,值在双数行 f.close()
7、调用方法,实现功能。
html = self.get_page(url) self.page_page(html)
效果展示
1、点击绿色小三角运行输入起始页,终止页。
2、运行程序后,结果显示在控制台,如下图所示。
3、保存txt文档到本地,如下图所示。
4、双击文件,内容如下图所示。
小结
1、不建议抓取太多数据,容易对服务器造成负载,浅尝辄止即可。
2、本文章就Python爬取招聘网,在应用中出现的难点和重点,以及如何防止反爬,做出了相对于的解决方案。
3、介绍了如何去拼接字符串,以及列表如何进行类型的转换。
4、代码很简单,希望能够帮到你。
5、欢迎大家积极尝试,有时候看到别人实现起来很简单,但是到自己动手实现的时候,总会有各种各样的问题,切勿眼高手低,勤动手,才可以理解的更加深刻。
6、可以选择自己喜欢的分类,获取工作,找到自己喜欢工作。
以上就是详解如何使用Python网络爬虫获取招聘信息的详细内容,更多关于Python爬虫获取招聘信息的资料请关注脚本之家其它相关文章!
上一篇:Python类的常用高级函数汇总
下一篇:Python类的定义和使用详情
X 关闭
X 关闭
- 15G资费不大降!三大运营商谁提供的5G网速最快?中国信通院给出答案
- 2联想拯救者Y70发布最新预告:售价2970元起 迄今最便宜的骁龙8+旗舰
- 3亚马逊开始大规模推广掌纹支付技术 顾客可使用“挥手付”结账
- 4现代和起亚上半年出口20万辆新能源汽车同比增长30.6%
- 5如何让居民5分钟使用到各种设施?沙特“线性城市”来了
- 6AMD实现连续8个季度的增长 季度营收首次突破60亿美元利润更是翻倍
- 7转转集团发布2022年二季度手机行情报告:二手市场“飘香”
- 8充电宝100Wh等于多少毫安?铁路旅客禁止、限制携带和托运物品目录
- 9好消息!京东与腾讯续签三年战略合作协议 加强技术创新与供应链服务
- 10名创优品拟通过香港IPO全球发售4100万股 全球发售所得款项有什么用处?