嗨害大家好鸭!我是小熊猫~
本次采集网站如下图:
源码资料电子书:点击此处跳转文末名片获取
主要运用知识点:
1. re正则表达式模块的简单使用
2. requests模块的使用
3. 保存csv
环境准备
- python 3.8
- pycharm
模块准备
re
json
csv
一. 数据来源分析
1. 确定需求:
要爬取的内容是什么?
2. 查询数据来源
通过开发者工具(F12 或者 鼠标右键点击检查 选择 network)进行抓包分析, 分析数据是从哪里来的
二. 代码实现过程
- 发送请求, 对于招聘列表页面发送请求
- 获取数据, 获取服务器返回响应数据开发者工具里面所看到 response 显示内容
- 解析数据, 提取我们想要的数据内容招聘岗位基本信息
- 保存数据, 把数据信息保存表格里面
数据请求模块
import requests
导入正则表达式模块
import re
导入json
import json
导入格式化输出模块
from pprint import pprint
导入csv模块
import csv
创建文件
f = open('data.csv', mode='a', encoding='utf-8', newline='')
csv_writer = csv.DictWriter(f, fieldnames=[
'职位',
'公司',
'城市',
'经验',
'学历',
'薪资',
'福利',
'公司领域',
'公司规模',
'公司性质',
'发布日期',
'公司详情页',
'职位详情页',#python学习交流:660193417#
])
csv_writer.writeheader()
伪装模拟 headers 字典数据类型
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36',
}
发送请求
response = requests.get(url=url, headers=headers)
转数据类型
html_data = re.findall('window.__SEARCH_RESULT__ = (.*?)</script>', response.text)[0]
for循环遍历,提取元素
for index in json_data['engine_jds']:
dit = {
'职位': index['job_name'],
'公司': index['company_name'],
'城市': index['workarea_text'],
'经验': index['attribute_text'][1],
'学历': index['attribute_text'][-1],
'薪资': index['providesalary_text'],
'福利': index['jobwelf'] ,
'发布日期': index['issuedate'],
'公司详情页': index['company_href'],
'职位详情页': index['job_href'],
}
csv_writer.writerow(dit)
print(dit)
标签:8K,index,python,text,re,模块,import,15K,csv From: https://blog.51cto.com/u_15959262/6065693