利用XPath提取51job网页中的职位信息

url=""" https://search.51job.com/list/000000,000000,0000,32,9,99,Java%25E5%25BC%2580%25E5%258F%2591,2,1.html?
       lang=c&stype=1&postchannel=0000&workyear=99&cotype=99&degreefrom=99&jobterm=99&companysize=99&lonlat
       =0%2C0&radius=-1&ord_field=0&confirmdate=9&fromType=&dibiaoid=0&address=&line=&specialarea=00&from=&
       welfare=
     """
# 将上面的网址精简,从html后面是服务器设置的一些参数,用于记录一些信息,可以删除。
url = " https://search.51job.com/list/000000,000000,0000,32,9,99,Java%25E5%25BC%2580%25E5%258F%2591,2,1.html
import requests
from lxml import html

etree = html.etree

# 确定一个对象,即网址
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)
# print(res) # 获取状态码,200表示访问成功

# 设置编码格式
res.encoding = "gbk"

# 利用etree初始化生成一个XPath解析对象
root = etree.HTML(res.text)

# 利用XPath提取网页信息
# 职位名
position = root.xpath('//p[@class="t1 "]/span/a/@title')
print(position)
# 获取职位的个数
print(len(position))

# 获取职位名的第二种方式---获取<a>标签中的文本信息
position2 = root.xpath('//p[@class="t1 "]/span/a/text()')
# print(position2)  # 直接输出会有空格和换行符,用strip()函数去除

for i in range(len(position2)):
    position2[i] = position2[i].strip()
print(position2)

输出结果:

['Java开发工程师(高级)-武汉-MI(J10089)', 'Java开发工程师', 'Java开发工程师', 'Java开发工程师(双休)',
 'Java开发工程师', 'Java开发工程师', 'Java开发工程师(研发中心)', 'Java开发工程师', 'Java开发经理', 
'Java开发工程师(深圳)', '诚聘Java开发实习/手机软件开发实习(朝九晚五)', '高级java开发工程师(政务方向)',
 'Java开发工程师', 'Java开发工程师(金融企业事业部)', 'Java开发工程师', 'Java开发工程师', 'Java开发工程师', 
'Java开发工程师', 'Java开发经理', 'Java开发工程师', 'Java开发工程师', '微信Java开发工程师', 'Java开发工程师', 
'Java开发工程师','JAVA开发工程师 (DEVOPS 方向)', 'JAVA开发工程师(广告)', 'Java开发项目经理',
 'Java开发助理(华为产品线)', '初中级JAVA开发工程师', 'Java开发工程师', 
'Java开发主管', '中级Java开发工程师', 'Java开发工程师', 'Java开发工程师',
 'Java开发工程师', 'Java开发工程师(中级)', '资深Java开发工程师', 'java开发工程师','Java开发工程师', 
'Java开发工程师', 'Java开发工程师', '实习Java开发五险一金', 'Java开发工程师', 'Java开发工程师', 
'Java开发实习生', 'Java开发工程师', 'Java开发工程师(懂英文)', 'Java开发工程师(3-4年经验)', 'Java开发工程师',
'Java开发工程师']

 

【注意】通过title和<a>标签都可以获取职位信息

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值