当前位置: 首页 > wzjs >正文

内蒙古住房城乡建设厅网站梁山县网站建设

内蒙古住房城乡建设厅网站,梁山县网站建设,作文网下载,南京高端网站建设公司哪家好注意:以下内容仅供技术研究,请遵守目标网站的robots.txt规定,控制请求频率避免对目标服务器造成过大压力! 1. 环境准备 python import requests from bs4 import BeautifulSoup import pandas as pd import re import matplotl…

注意:以下内容仅供技术研究,请遵守目标网站的robots.txt规定,控制请求频率避免对目标服务器造成过大压力!

1. 环境准备

python

import requests
from bs4 import BeautifulSoup
import pandas as pd
import re
import matplotlib.pyplot as plt

2. 爬虫核心代码(带反爬策略)

python

def fetch_51job_data(keyword, max_pages=5):jobs = []headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36','Accept-Language': 'zh-CN,zh;q=0.9'}for page in range(1, max_pages+1):url = f'https://search.51job.com/list/000000,000000,0000,00,9,99,{keyword},2,{page}.html'try:response = requests.get(url, headers=headers, timeout=10)response.encoding = 'gbk'  # 网站编码特殊处理soup = BeautifulSoup(response.text, 'lxml')for item in soup.select('.j_joblist .e'):title = item.select_one('.jname').text.strip()company = item.select_one('.cname').text.strip()desc = item.select_one('.text').text.strip()experience = item.select_one('.exp').text.strip() if item.select_one('.exp') else '不限'salary = item.select_one('.sal').text.strip()jobs.append({'职位名称': title,'公司名称': company,'工作内容': desc,'工作经验': experience,'薪资范围': salary})except Exception as e:print(f'第{page}页抓取失败:', e)# 添加延迟避免被封time.sleep(1.5)return jobs

3. 薪资解析算法

python

def parse_salary(salary_str):"""支持格式示例:- 1.5-2万/月- 20-30万/年- 5-8千/月- 200-300元/天"""pattern = r'(\d+\.?\d*)-(\d+\.?\d*)(万|千|元)/(年|月|日)'match = re.search(pattern, salary_str)if not match: return Nonelow, high, unit, period = match.groups()low, high = float(low), float(high)avg = (low + high) / 2# 转换为万元/年conversion = {('万', '年'): avg,('万', '月'): avg * 12,('千', '月'): avg * 12 * 0.1,('元', '日'): avg * 22 * 12 / 10000}return conversion.get((unit, period), None)

4. 数据存储与清洗

python

# 数据清洗管道
def clean_data(jobs):df = pd.DataFrame(jobs)df['平均年薪'] = df['薪资范围'].apply(parse_salary)df = df.dropna(subset=['平均年薪'])  # 过滤无效数据return df# 保存到CSV
df.to_csv('51job.csv', index=False, encoding='utf-8-sig')

5. 数据分析与可视化

python

def analyze_salary(df):# 薪资TOP10分析top10 = df.sort_values('平均年薪', ascending=False).head(10)# 可视化配置plt.style.use('ggplot')plt.figure(figsize=(12,8))bars = plt.barh(top10['职位名称'], top10['平均年薪'], color='#4BACC6')# 添加数据标签for bar in bars:width = bar.get_width()plt.text(width+0.5, bar.get_y()+0.2, f'{width:.1f}万', va='center')plt.title('高薪职位TOP10(单位:万元/年)', fontsize=14)plt.xlabel('平均年薪', fontsize=12)plt.gca().invert_yaxis()  # 反转Y轴显示排名plt.tight_layout()plt.savefig('salary_top10.png', dpi=300)plt.show()

6. 完整执行流程

python

if __name__ == '__main__':# 数据采集raw_data = fetch_51job_data('python', max_pages=5)# 数据清洗cleaned_df = clean_data(raw_data)# 存储结果cleaned_df.to_csv('51job.csv', index=False, encoding='utf-8-sig')# 数据分析与可视化analyze_salary(cleaned_df)

7. 关键要点扩展

  1. 反爬策略强化

    • 代理IP池:使用requests-ip-rotator库实现自动IP切换

    • 浏览器指纹:通过selenium-wire模拟真实浏览器环境

    • 请求随机化:添加随机延迟(0.5-3秒)和随机User-Agent

  2. 数据质量优化

    • 异常值过滤:设置薪资合理范围(如0.5<薪资<500万/年)

    • 文本清洗:使用jieba分词提取技能要求关键词

    • 地址解析:从工作内容中提取工作地点信息

  3. 分析维度扩展

    python

    # 企业规模与薪资关系
    df['公司规模'] = df['公司名称'].apply(detect_company_size)  # 需自定义企业规模识别函数
    df.boxplot(column='平均年薪', by='公司规模')# 技能需求词云
    from wordcloud import WordCloud
    skills = extract_skills(df['工作内容'])  # 需自定义技能提取函数
    wordcloud = WordCloud().generate(' '.join(skills))
    plt.imshow(wordcloud)

  4. 架构升级思路

    • 使用Scrapy框架实现分布式爬虫

    • 集成Airflow实现定时数据更新

    • 数据存储改用MySQL+Redis缓存

    • 使用Tableau实现动态数据看板

8. 常见问题解决方案

  1. 页面结构变化

    • 定期运行监控脚本检查CSS选择器有效性

    • 使用XPath代替CSS选择器提高容错性

    • 建立元素匹配的备选方案列表

  2. 验证码破解

    • 对接打码平台(如超级鹰)

    • 使用CNN训练验证码识别模型

    • 设置验证码触发后的等待策略

  3. 数据更新机制

    python

    # 增量更新示例
    existing = pd.read_csv('51job.csv')
    new_data = fetch_new_data()
    updated = pd.concat([existing, new_data]).drop_duplicates(subset=['职位名称', '公司名称'], keep='last'
    )

http://www.dtcms.com/wzjs/839842.html

相关文章:

  • 市文联网站建设模板王网站怎么下载不了模板
  • 国内包装设计网站贵州建设工程招标协会网站
  • 天眼查网站能进入各种网站的浏览器
  • 国内炫酷的网站设计wordpress 手机端分开
  • 外贸电商做俄罗斯市场网站品牌策划公司和品牌设计公司
  • 丹东市网站开发公司西安网络推广平台公司
  • 计算机网站建设专业热门吗辽宁智能网站建设推荐
  • 手机网站开发 pdf黑龙江建设网一体化平台
  • 邹城网站建设哪家好北京网站营销与推广
  • 企业网站在哪里建免费建网站软件下载手机
  • 网站登录后台地址觅图网
  • 上海公共招聘网网址seo推广主管
  • 建小公司网站做游戏模板下载网站有哪些
  • 爱用建站网站建设联系电话
  • 有哪些好的响应式网站有哪些深圳网站制作公司兴田德润官方网站
  • 电子政务 和网站建设总结那个公司建站好
  • 网站建设的目标客户白银网站seo
  • 一般网站系统并发量营业推广
  • 做国厂家的网站本地wordpress数据
  • 高仿卡西欧手表网站公司做网站的好处
  • 建立自己网站的好处代理网页版
  • 网站建设的会计核算沈阳市做网站电话
  • 西宁网站建设学校厦门seo小谢
  • 白云手机网站开发做公司网站需要什么资料
  • 自己用dw做网站要多久贵州做网站的公司有哪些
  • 网站备案 手印随便福州seo排名优化
  • 常用网站图标有名的软件开发公司有哪些
  • 网站短信接口怎么做网站建设管理实训报告
  • 门户网站有哪些类型seo站内优化站外优化
  • 梅陇做网站网站域名查询工具