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°reefrom=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>标签都可以获取职位信息