帮我用python爬取51job招聘信息,使用requests库、json库在51job主页爬取福州JAVA工程师相关招聘信息,保留爬取的信息页面信息,每一行职位信息用50个“-”符号分隔,将爬取到的数据保存为txt文档。
时间: 2024-10-13 21:05:55 浏览: 27
基于Python的51job数分岗位招聘信息爬取分析设计源码
5星 · 资源好评率100%
好的,首先你需要安装`requests`和`beautifulsoup4`库,因为51Job的HTML结构可能会变化,所以我们还需要用到`lxml`库来解析网页内容。以下是简单的Python脚本示例:
```python
import requests
from bs4 import BeautifulSoup
import json
# 设置URL
url = "https://search.51job.com/jobs.html?jl=000000&kw=%E7%89%88%E6%9C%AF%E5%B7%A5%E7%A8%8B&kt3=%E7%AE%97%E6%B3%95"
# 发送请求
response = requests.get(url)
# 检查请求是否成功
if response.status_code == 200:
# 使用BeautifulSoup解析HTML
soup = BeautifulSoup(response.text, 'lxml')
# 找到包含招聘信息的部分,这里假设是class="joblist"
job_list = soup.find('div', class_='joblist')
# 初始化一个空列表存储结果
data = []
# 遍历每一条招聘信息
for job_item in job_list.find_all('li'):
title = job_item.find('h3').text.strip() if job_item.h3 else ""
company = job_item.find('p', class_='company').text.strip() if job_item.p and 'company' in job_item.p['class'] else ""
location = job_item.find('span', class_='location').text.strip() if job_item.span and 'location' in job_item.span['class'] else ""
# 如果有所有信息,添加到数据中
if title and company and location:
data.append(f"{title}-{company}-{location}")
# 将数据写入.txt文件,每行50个"-"分隔
with open("fuzhou_java_engineer_jobs.txt", 'w', encoding='utf-8') as f:
for item in data:
f.write(item + "\n" * (50 - len(item) % 50)) # 使用换行符补全到50字符长度
else:
print(f"请求失败,状态码:{response.status_code}")
阅读全文