Python爬虫实战之爬取拉勾网职位
1.爬取拉钩招聘动态网页
网址 :https://www.lagou.com/zhaopin/ 通过 分析 网页结构,爬取当前网页的目标信息,以及各个网页内的职位描述
代码如下
```python import requests from lxml import etree import pandas as pd from time import sleep import random
cookie
cookie = '你的cookie'
headers
headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36', 'cookie':cookie }
查看网页结构循环页数进行采集
for i in range(1, 20): sleep(random.randint(3, 10)) url = 'https://www.lagou.com/zhaopin/jiqixuexi/{}/?filterOption=3'.format(i) print('正在抓取第{}页...'.format(i), url) # 请求网页并解析 con = etree.HTML(requests.get(url=url, headers=headers).text) # 使用xpath表达式抽取各目标字段 job_name = [i for i in con.xpath("//a[@class='position_link']/h3/text()")] job_address = [i for i in con.xpath("//a[@class='position_link']/span/em/text()")] job_company = [i for i in con.xpath("//div[@class='company_name']/a/text()")] job_salary = [i for i in con.xpath("//span[@class='money']/text()")] job_exp_edu = [i for i in con.xpath("//div[@class='li_b_l']/text()")] job_exp_edu2 = [i for i in [i.strip() for i in job_exp_edu] if i != ''] job_industry = [i.strip() for i in con.xpath("//div[@class='industry']/text()")] job_tempation = [i for i in con.xpath("//div[@class='list_item_bot']/div[@class='li_b_r']/text()")] job_links = [i for i in con.xpath("//div[@class='p_top']/a/@href")] #print(job_links)
# 获取详情页链接后采集详情页岗位描述信息
job_des =[]
for link in job_links:
sleep(random.randint(3, 10))
print('link:',link)
con2 = etree.HTML(requests.get(url=link, headers=headers).text)
#print(con)
des = [[i for i in con2.xpath("//dd[@class='job_bt']/div/p/text()")]]
job_des += des
#print(job_des)
break #遍历一次
对数据进行字典封装
dataset = { '岗位名称': job_name, '工作地址': job_address, '公司': job_company, '薪资': job_salary, '经验学历': job_exp_edu2, '所属行业': job_industry, '岗位福利': job_tempation, '任职要求': job_des }
转化为数据框并存为csv
data = pd.DataFrame(dataset) data.to_csv('machine_learning_hz_job2.csv') ```
数据展示
2.爬取静态网页
在请求Request URL网址时,返回”您操作太频繁,请稍后访问“, 用requests.Session()建立Session,建立完成session之后通过session来获取cookie
python
for page in range(1, pages):
data = {
'first': 'false',
'pn': page,
'kd': 'python'
}
s = requests.Session() # 建立session
s.get(url=url1, headers=headers, timeout=3)
cookie = s.cookies # 获取cookie
respon = s.post(url = url, headers=headers, data=data, cookies=cookie, timeout=3)
time.sleep(7)
print(respon.text)
数据清洗网址 https://blog.csdn.net/weixin_43746433/article/details/94489298
数据分析与成图网址 https://blog.csdn.net/weixin_43746433/article/details/94500669
参考文献
- 基于网络爬虫的信息采集分类系统设计与实现(厦门大学·周茜)
- 主题网络爬虫的研究与设计(南京理工大学·朱良峰)
- 基于Nutch的网络爬虫及主题搜索引擎系统的设计与实现(北京邮电大学·王冉)
- 基于配置模板的深网爬虫系统的设计与实现(南京大学·孔德健)
- 基于Nutch的网络爬虫及主题搜索引擎系统的设计与实现(北京邮电大学·王冉)
- 复合规则驱动聚焦爬虫系统的设计与实现(哈尔滨工业大学·刘强)
- 金融信息实时发布系统的设计与实现(东北大学·伦健)
- 网络爬虫系统的研究与实现(电子科技大学·赵茉莉)
- 聚焦爬虫技术研究(江南大学·倪贤贵)
- 深度可定制的工具化爬虫系统的设计与实现(北京邮电大学·李笑语)
- 面向校园招聘主题的分布式爬虫系统的设计与实现(大连交通大学·张佳琦)
- 过滤型网络爬虫的研究与设计(厦门大学·陈奋)
- 网络舆情爬虫系统的设计与实现(厦门大学·李海燕)
- 面向主题的爬行搜索策略研究与实现(陕西师范大学·王敏翔)
- 面向垂直搜索引擎的聚焦网络爬虫关键技术研究与实现(华中师范大学·陈欢)
本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:毕设导航 ,原文地址:https://bishedaima.com/yuanma/35957.html