一、数据获取
需求:
招聘数据获取地址:https://careers.tencent.com/home.html
获取字段:岗位的名称、岗位职责、发布时间
import pandas as pd # 导入 Pandas 库并使用别名 pd
import requests # 导入 requests 库,用于进行 HTTP 请求
import time # 导入 time 模块,用于处理时间相关操作
import json # 导入 json 模块,用于处理 JSON 数据
import random # 导入 random 模块,用于生成随机数
# 初始化一个空列表,用于存储招聘信息
lst = []
# 获取当前时间戳,乘以1000是为了将秒转换为毫秒
timestamp = int(time.time() * 1000)
# 获取用户输入的关键词和要爬取的数据页数
keyword = input('请输入要搜索的关键词:')
pageIndex = int(input('请输入要爬取的数据页数:'))
# 设置请求头,模拟浏览器访问
head = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
}
# 遍历每一页数据
for page in range(1, pageIndex + 1):
# 构建请求 URL,使用 f-string 格式化字符串,将关键词和页数嵌入 URL 中
url = f"https://careers.tencent.com/tencentcareer/api/post/Query?timestamp={
timestamp}&countryId=&cityId=&bgIds=&productId=&categoryId=&parentCategoryId=&attrId=&keyword={
keyword}&pageIndex={
page}&pageSize=10&language=zh-cn&area=cn"
# 打印当前请求的 URL
print(url)
# 发送 GET 请求获取数据
res = requests.get(url=url, headers=head)
# 将返回的内容解码为 UTF-8 格式的字符串
result = res.content.decode('utf-8')
# 随机等待1到5秒,模拟人为操作,防止被网站封 IP
time.sleep(random.randint(1