Fetch the repository succeeded.
#coding:utf-8
import random
import itertools
import os
import code
import sys
reload(sys)
sys.setdefaultencoding('utf8')
import requests
from lxml import etree
headers = {
"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36",
"Accept":"*/*",
"Accept-Encoding":"gzip, deflate",
"Accept-Language":"zh-CN,zh;q=0.8",
'Upgrade-Insecure-Requests':'1',
"Connection":"keep-alive",
}
def main() :
while True :
query = raw_input("请输入需要检索的职位名称:")
url_list = []
for i in range(1,31):
url = 'http://www.zhipin.com/c100010000/h_100010000/?query=' + \
query + '&page=' + str(i) + '&ka=page-' +str(i)
url_list.append(url)
while True :
print "请输入位于1-30之间的页码\n重新检索职位请输入0\n"
page = raw_input("page = ")
if int(page) == 0 :
break
elif int(page) > 0 and int(page) < 31 :
print "是否需要保存数据?\n 1:保存\n 2:不保存,继续"
save = raw_input("是否保存 = ")
if int(save) == 1 :
saved = Save_info(page,query,url_list)
else :
saved = Print_info(page,query,url_list)
if saved[0] == True :
print "是否查看职位简介?\n"
Look = raw_input(" 1:查看职位简介\n 2:不查看,退出\nLOOK = ")
if int(Look) == 1 :
num = raw_input("需查看岗位序号 = ")
urls = saved[1][int(num)-1]
urls = urls
print urls
Look_Job_Info(urls)
else :
break
else :
print "请输入正确页码!!"
continue
#保存并打印显示数据
def Save_info(page,query,url_list):
try:
f = open((query +'.txt').decode('utf-8'),'a')
po = requests.get(url_list[int(page)-1],headers = headers)
#print po.text
job_url = []
i = 1
tree = etree.HTML(po.text)
lis = tree.xpath('//*[@id="main"]/div[3]/div[2]/ul/li')
for li in lis :
#职位名称
name = li.xpath('a/div[1]/div[1]/h3/text()')
#发布日期
data = li.xpath('a/div[3]/span/text()')
#职位详情链接
href = li.xpath('a/@href')
href = ['http://www.zhipin.com' + href[0]]
#薪酬
red = li.xpath('a/div[1]/div[1]/h3/span/text()')
#工作地点
place = li.xpath('a/div[1]/div[1]/p/text()[1]')
#工作经验
experience = li.xpath('a/div[1]/div[1]/p/text()[2]')
#学历要求
degree = li.xpath('a/div[1]/div[1]/p/text()[3]')
#招聘企业名称
company_name = li.xpath('a/div[1]/div[2]/div/h3/text()')
#所属行业
belong_line = li.xpath('a/div[1]/div[2]/div/p/text()[1]')
#公司规模人数
company_num = li.xpath('a/div[1]/div[2]/div/p/text()[2]')
#标签分类
tag_name = li.xpath('a/div[2]/span/text()')
tagname = ["-*-".join(itertools.chain(tag_name))]
#发布者
job_author = li.xpath('a/div[2]/div/p/text()[1]')
#发布者所在岗位
job_author_station = li.xpath('a/div[2]/div/p/text()[2]')
#print name[0],'http://www.zhipin.com' + href[0],red[0],place[0],experience[0],degree[0],company_name[0],\
# belong_line[0],company_num[0],tag_name[0],job_author[0],job_author_station[0]
job_url.append(href[0])
print """
********第%d条********
岗位名称: %s\n\
发布日期: %s\n\
链接: %s\n\
薪酬: %s\n\
工作地点: %s\n\
工作经验: %s\n\
学历: %s\n\
招聘企业名称: %s\n\
所属行业: %s\n\
公司规模人数: %s\n\
标签: %s\n\
发布者: %s\n\
发布者职位: %s\n\
"""%(i,name[0],data[0],href[0],red[0],place[0],experience[0],degree[0],company_name[0],\
belong_line[0],company_num[0],tag_name[0],job_author[0],job_author_station[0])
i += 1
#保存信息格式
line = name[0]+href[0]+red[0]+place[0]+experience[0]+degree[0]+company_name[0]+\
belong_line[0]+company_num[0]+tag_name[0]+job_author[0]+job_author_station[0]+'\n\n'
f.write(line)
f.close()
print "保存成功!"
return [True,job_url]
except :
print "保存失败!"
return [False]
#打印显示数据
def Print_info(page,query,url_list):
try:
po = requests.get(url_list[int(page)-1],headers = headers)
#print po.text
job_url = []
i = 1
tree = etree.HTML(po.text)
lis = tree.xpath('//*[@id="main"]/div[3]/div[2]/ul/li')
for li in lis :
#职位名称
name = li.xpath('a/div[1]/div[1]/h3/text()')
#发布日期
data = li.xpath('a/div[3]/span/text()')
#职位详情链接
href = li.xpath('a/@href')
href = ['http://www.zhipin.com' + href[0]]
#薪酬
red = li.xpath('a/div[1]/div[1]/h3/span/text()')
#工作地点
place = li.xpath('a/div[1]/div[1]/p/text()[1]')
#工作经验
experience = li.xpath('a/div[1]/div[1]/p/text()[2]')
#学历要求
degree = li.xpath('a/div[1]/div[1]/p/text()[3]')
#招聘企业名称
company_name = li.xpath('a/div[1]/div[2]/div/h3/text()')
#所属行业
belong_line = li.xpath('a/div[1]/div[2]/div/p/text()[1]')
#公司规模人数
company_num = li.xpath('a/div[1]/div[2]/div/p/text()[2]')
#标签分类
tag_name = li.xpath('a/div[2]/span/text()')
tagname = ["-*-".join(itertools.chain(tag_name))]
#发布者
job_author = li.xpath('a/div[2]/div/p/text()[1]')
#发布者所在岗位
job_author_station = li.xpath('a/div[2]/div/p/text()[2]')
#print name[0],'http://www.zhipin.com' + href[0],red[0],place[0],experience[0],degree[0],company_name[0],\
# belong_line[0],company_num[0],tag_name[0],job_author[0],job_author_station[0]
job_url.append(href[0])
print """
********第%d条********
岗位名称: %s\n\
发布日期: %s\n\
链接: %s\n\
薪酬: %s\n\
工作地点: %s\n\
工作经验: %s\n\
学历: %s\n\
招聘企业名称: %s\n\
所属行业: %s\n\
公司规模人数: %s\n\
标签: %s\n\
发布者: %s\n\
发布者职位: %s\n\
"""%(i,name[0],data[0],href[0],red[0],place[0],experience[0],degree[0],company_name[0],\
belong_line[0],company_num[0],tag_name[0],job_author[0],job_author_station[0])
i += 1
print "打印结束!"
return [True,job_url]
except :
print "打印错误!"
return [False]
#查看岗位详细介绍
def Look_Job_Info(url):
print "岗位详情页...."
if __name__ == '__main__':
main()
"""
#print '岗位名称:\n' + name[0],'http://www.zhipin.com' + href[0],red[0],place[0],experience[0],degree[0],company_name[0],\
# belong_line[0],company_num[0],tag_name[0],job_author[0],job_author_station[0]
岗位名称: %s\n\
链接: %s\n\
薪酬: %s\n\
工作地点: %s\n\
工作经验: %s\n\
学历: %s\n\
招聘企业名称: %s\n\
所属行业: %s\n\
公司规模人数: %s\n\
标签: %s\n\
发布者: %s\n\
发布者职位: %s\n\
#%(name[0],'http://www.zhipin.com' + href[0],red[0],place[0],experience[0],degree[0],company_name[0],\
# belong_line[0],company_num[0],tag_name[0],job_author[0],job_author_station[0])
for li in lis :
#职位名称
name = li.xpath('a/div[1]/div[1]/h3/text()')
#职位详情链接
href = li.xpath('a/@href')
#薪酬
red = li.xpath('a/div[1]/div[1]/h3/span/text()')
#工作地点
place = li.xpath('a/div[1]/div[1]/p/text()[1]')
#工作经验
experience = li.xpath('a/div[1]/div[1]/p/text()[2]')
#学历要求
degree = li.xpath('a/div[1]/div[1]/p/text()[3]')
#招聘企业名称
company_name = li.xpath('a/div[1]/div[2]/div/h3/text()')
#所属行业
belong_line = li.xpath('a/div[1]/div[2]/div/p/text()[1]')
#公司规模人数
company_num = li.xpath('a/div[1]/div[2]/div/p/text()[2]')
#标签分类
tag_name = li.xpath('a/div[2]/span/text()')
tagname = ["-*-".join(itertools.chain(tag_name))]
#发布者
job_author = li.xpath('a/div[2]/div/p/text()[1]')
#发布者所在岗位
job_author_station = li.xpath('a/div[2]/div/p/text()[2]')
job_url.append(href[0])
print name[0],href[0],red[0],place[0],experience[0],degree[0],company_name[0],\
belong_line[0],company_num[0],tag_name[0],job_author[0],job_author_station[0]
"""
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。