通过使用python从猎聘网获取职位信息并存入mysql数据库中。
标题:Python爬虫实战:从猎聘网获取职位信息并存入数据库
-
准备工作:
在开始之前,我们需要安装Python和相应的库(requests、pymysql)。 -
获取数据:
首先,我们需要模拟HTTP请求,向猎聘网发送请求,获取职位信息。我们可以使用requests库来实现这一功能。具体的请求地址和参数可以通过浏览器的开发者工具来获取。 -
解析数据:
获取到的数据通常是JSON格式的,我们需要解析JSON数据,提取出我们需要的职位信息,例如职位名称、公司名称、工作地点、薪资待遇等。 -
存储数据:
接下来,我们将解析得到的职位信息存入MySQL数据库中。我们可以使用pymysql库来连接MySQL数据库,并执行SQL语句将数据插入到数据库表中。
分析猎聘网网页,发猎聘网是通过接口请求获取json数据进行渲染的,但是需要先做一个js反向操作。
下面我将逐行解释代码的功能和执行过程:
导入必要的库:
import time
import requests
import execjs
import pymysql
在这里,我们导入了用于处理时间、发送HTTP请求、执行JavaScript代码以及连接MySQL数据库的库。
设置数据库配置:
db_config = {
'host': '127.0.0.1',
'user': 'root',
'password': '12345678',
'database': 'work_data',
'charset': 'utf8mb4',
'cursorclass': pymysql.cursors.DictCursor
}
这里定义了连接数据库所需的参数,包括主机地址、用户名、密码、数据库名称、字符集等。
读取JavaScript代码:
def read_js_code():
f = open('/Users/shareit/workspace/chart_show/demo.js', encoding='utf-8')
txt = f.read()
js_code = execjs.compile(txt)
ckId = js_code.call('r', 32)
return ckId
这个函数用于读取JavaScript代码,并执行JavaScript来生成一个参数(ckId),用于后续的HTTP请求。
发送HTTP请求获取数据:
def post_data():
read_js_code()
# 设置请求头信息
headers = {
...}
# 遍历城市和行业列表发送请求
for name in list:
for i in range(1):
# 构造请求数据
data = {
"data": {
"mainSearchPcConditionForm":
{
"city": "410", "dq": "410", "pubTime": "", "currentPage": i, "pageSize": 40,
"key": "大数据",
"suggestTag": "", "workYearCode": "0$1", "compId": "", "compName": "", "compTag": "",
"industry": name, "salary": "", "jobKind": "", "compScale": "", "compKind": "",
"compStage": "",
"eduLevel": ""},
"passThroughForm":
{
"scene": "page", "skId": "z33lm3jhwza7k1xjvcyn8lb8e9ghxx1b"