用正则表达式提取网页中的信息

 用正则表达式提取51job网页中的信息

import requests
import re
from pandas import DataFrame

# 网址
url = "https://search.51job.com/list/000000,000000,0000,32,9,99,Java%25E5%25BC%2580%25E5%258F%2591,2,1.html"
# 获得网页对象
res = requests.get(url)
# 设置编码格式
res.encoding = "gbk"

# 职位名
# 将要提取的用(.*)表示,每条数据不同的地方用.*表示
position_pat = '<a target="_blank" title="(.*)" href=".*" onmousedown=".*">'  
position = re.findall(position_pat, res.text)

# 公司名
company_pat = '<span class="t2"><a target="_blank" title="(.*)" href=".*">.*</a></span>'
company = re.findall(company_pat, res.text)

# 工作地点
place_pat = '<div class="el">.*?<span class="t3">(.*?)</span>'  # 非贪婪模式
place = re.findall(place_pat, res.text, re.S)

# 薪资
salary_pat = '<div class="el">.*?<span class="t4">(.*?)</span>'  # 非贪婪模式
salary = re.findall(salary_pat, res.text, re.S)

# 将取出的信息放到数据框
jobInfo = DataFrame([position, company, place, salary]).T
# 设置列名
jobInfo.columns = ['职位名', '公司名', '工作地点', '薪资']
print(jobInfo.head())

# 将数据保存到本地
jobInfo.to_csv('51job2.csv')

输出结果: 


           职位名           公司名              工作地点           薪资
0    java开发工程师  新疆古漠网络技术有限公司    异地招聘         6-8千/月
1    Java开发工程师  数安时代科技股份有限公司    佛山-南海区      6-8.5千/月
2    Java开发工程师  广东安训信息科技有限公司    东莞-莞城区      0.8-1.2万/月
3  资深Java开发工程师  上海创蓝文化传播有限公司  上海             2.5-3万/月
4    Java开发工程师    天闻数媒科技有限公司     长沙             0.9-1.4万/月

 

  • 4
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值