您的位置:首页 > 编程语言 > Python开发

Python爬虫——4.4爬虫案例——requests和xpath爬取招聘网站信息

2018-01-15 09:09 716 查看
# -*-coding:utf-8 -*-
'''
使用requests模块进行数据采集,XPath进行数据筛选
'''
import requests
from lxml import etree
# 定义访问路由
url='http://sou.zhaopin.com/jobs/searchresult.ashx?jl=%E5%8C%97%E4%BA%AC%2B%E4%B8%8A%E6%B5%B7%2B%E5%B9%BF%E5%B7%9E%2B%E6%B7%B1%E5%9C%B3&sm=0'
# 请输入要爬取多少页
nums=input('请输入要爬取多少页:')
f=open('zl.txt','w')
for num in range(1,nums+1):
get_params={
'p':num
}
# 定义请求头
headers={
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'
}

# 发送请求
response=requests.get(url,params=get_params,headers=headers)

# 将得到的数据转换为需要的html对象
html=etree.HTML(response.text)

# 1.爬取职位名称
# 使用xpath进行匹配
list1=html.xpath("//table[@class='newlist']/tr[1]/td[@class='zwmc']/div")
# 定义匹配公司职位列表
job_names=[]

for l in list1:
name= l.xpath('string(.)').strip()
# 将爬取的职位名称加入列表
job_names.append(name)

print("%s页职位名称爬取完毕"%num)

# 2.爬取月薪数据
# 使用xpath进行匹配
list2=html.xpath("//table[@class='newlist']/tr[1]/td[@class='zwyx']")
# 定义匹配公司职位列表
month_names = []

for l in list2:
name = l.xpath('string(.)').strip()
# 将爬取的职位名称加入列表
month_names.append(name)

print("%s页月薪数据称爬取完毕" % num)

# 3.爬取公司名称
list3=html.xpath("//table[@class='newlist']/tr[1]/td[@class='gsmc']/a[1]")
#list3 = html.xpath("//div[@class='newlist_main']/form/div/div/div[@id='newlist_list_div']/div/table[@class='newlist']/tr/td")
# 定义匹配公司职位列表

company_names = []

for l in list3:
name = l.xpath('string(.)').strip()
# 将爬取的职位名称加入列表
company_names.append(name)
print("%s页公司名称爬取完毕" % num)

for i in range(0,len(company_names)):
info=job_names[i]+"|"+month_names[i]+"|"+company_names[i]+"\r\n"
f.write(info.encode('utf-8'))

print("%s页职位信息爬取完毕" % num)
f.write("%s页职位信息爬取完毕"% num+"\r\n")
f.write("#"*80+"\r\n")
f.close()

print("全部职位信息爬取完毕")
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: