import requests
from lxml import etree
import json
import re
import base64
from fontTools.ttLib import TTFont
import csv
font_face = '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'
a = base64.b64decode(font_face)
with open('zt01.ttf','wb') as f:
f.write(a)
font2 = TTFont('zt01.ttf')
font2.saveXML('zt01.xml')


headers = {
'cookie': 'id58=c5/njVwjW01oq+A0AztMAg==; city=bj; 58home=bj; 58tj_uuid=186b07d3-c90a-460c-828d-96dc934848bc; new_uv=1; utm_source=; spm=; init_refer=; als=0; new_session=0; xxzl_deviceid=G72XweHY%2B1Clh%2F0ALYEhYbZ9r4DMWZJ0J4ulVLnGV2jtZmJ7dxnUYQQaVOA3l26r; ppStore_fingerprint=420332E1A21703317A3F830EF417036ED74F4837E56EA073%EF%BC%BF1545821130539; PPU="UID=36744096540438&UN=qywb249&TT=e7d6c929c2749d145c3144a325f668a6&PBODY=OxqoPuGYZgom9gWZngB9DEkxBMOvJC3467zEjflOTmJ3W8cLKDoTEPE2z2XSlmrfKRTZ2CNhyO7-NigEMvcC4dgAz6HfEuXae2PBql15e7OrfifpQF2DerJP-kSsj6SfDZhV1A0kh_F6TjInNw1P3B3xoQrqcGSahejFz83Ga8M&VER=1"; www58com="UserID=36744096540438&UserName=qywb249"; 58cooper="userid=36744096540438&username=qywb249"; 58uname=qywb249; wmda_uuid=6b31a64d7d493399eb8a78992d95acca; wmda_new_uuid=1; wmda_session_id_7790950805815=1545821150964-76fa602d-3311-c271; xxzl_smartid=53d32b1493096e8152ff4486d6a1de3d; showOrder=1; wmda_session_id_1731916484865=1545821399321-c5479a67-64e8-bdf2; wmda_visited_projects=%3B7790950805815%3B1731916484865; showPTTip=1; ljrzfc=1',
'referer': 'https://employer.58.com/resumesearch?PGTID=0d002408-0000-05fe-a51f-6ee6bd802baf&ClickID=5',
}

for page in range(1,4):
url = 'https://employer.58.com/resume/searchresume?dsid=13129&cid=1&aid=-1&nid=-1&eduabove=0&workabove=0&pc=0&mc=0&pageindex='+str(page)+'&resumeSort=intelligent&update24Hours=1&keyword=python&fontKey=65a88797224941a9aada809a9c4d8ae8&callback=jQuery18007714226223286429_1545822538747&_=1545822569687'

response = requests.get(url=url,headers=headers)
yuanma = response.text
demo = json.loads(yuanma[41:-1])['data']['resumeList']
heade = {'cookie': 'id58=c5/njVwjW01oq+A0AztMAg==; city=bj; 58home=bj; 58tj_uuid=186b07d3-c90a-460c-828d-96dc934848bc; als=0; xxzl_deviceid=G72XweHY%2B1Clh%2F0ALYEhYbZ9r4DMWZJ0J4ulVLnGV2jtZmJ7dxnUYQQaVOA3l26r; ppStore_fingerprint=420332E1A21703317A3F830EF417036ED74F4837E56EA073%EF%BC%BF1545821130539; www58com="UserID=36744096540438&UserName=qywb249"; 58cooper="userid=36744096540438&username=qywb249"; 58uname=qywb249; wmda_uuid=6b31a64d7d493399eb8a78992d95acca; wmda_new_uuid=1; xxzl_smartid=53d32b1493096e8152ff4486d6a1de3d; showOrder=1; wmda_visited_projects=%3B7790950805815%3B1731916484865; showPTTip=1; ljrzfc=1; PPU="UID=36744096540438&UN=qywb249&TT=e7d6c929c2749d145c3144a325f668a6&PBODY=L94oK3cinTjgCaHWfvgHLKLr1B0thTowkhU_V3WLBUn92gjsdfFl5bZqMO0ZvO-XtBiUwI590mI72H1-50f8ltzgoeRviKwQRR9oPswcCHPoqhOVgYLMD1ozcmUrkptygVgUM7-xAZzwGH3E7ml012jX6Iqghv_85AsylFCY24M&VER=1"; new_uv=2; utm_source=; spm=; init_refer=; wmda_session_id_1731916484865=1545827134142-59b32516-d14b-0076; new_session=0; Hm_lvt_a3013634de7e7a5d307653e15a0584cf=1545828225; Hm_lpvt_a3013634de7e7a5d307653e15a0584cf=1545828225; show_zcm_banner=true'}


def hanshu():
wenjian = re.findall("base64,(.*?)\) format", response1.text)[0]
b = base64.b64decode(wenjian)
with open('zt02.ttf', 'wb')as f:
f.write(b)
dict1 = {"uniE01D": "李", "uniE021": "B", "uniE027": "7", "uniE02A": "0", "uniE03F": "博", "uniE030": "无",
"uniE02B": "验", "uniE03C": "陈", "uniE03E": "2", "uniE02C": "张", "uniE023": "经", "uniE031": "周",
"uniE034": "5", "uniE03B": "杨", "uniE028": "应", "uniE040": "3", "uniE024": "技", "uniE02E": "校",
"uniE035": "王", "uniE036": "届", "uniE032": "E", "uniE017": "生", "uniE018": "士", "uniE039": "黄",
"uniE01E": "9", "uniE037": "专", "uniE019": "下", "uniE041": "中", "uniE01B": "1", "uniE016": "4",
"uniE014": "男", "uniE01C": "8", "uniE029": "刘", "uniE026": "科", "uniE015": "女", "uniE01A": "A",
"uniE022": "本", "uniE020": "赵", "uniE038": "硕", "uniE03A": "高", "uniE02F": "吴", "uniE033": "M",
"uniE03D": "6", "uniE025": "以", "uniE01F": "大", }

font1 = TTFont('zt01.ttf')
obj_list1 = font1.getGlyphNames()[1:-1]
uni_list1 = font1.getGlyphOrder()[1:]

font2 = TTFont('zt02.ttf') # 打开访问网页新获得的字体文件02.ttf
obj_list2 = font2.getGlyphNames()[1:-1]
uni_list2 = font2.getGlyphOrder()[1:]
qq = {}
for uni2 in uni_list2:
obj2 = font2['glyf'][uni2] # 获取编码uni2在02.ttf中对应的对象
for uni1 in uni_list1:
obj1 = font1['glyf'][uni1]
if obj1 == obj2:
qq[r'\u' + uni2[-4:].lower()] = dict1[uni1]
return qq
with open('tc.csv', 'a+', encoding='utf-8', newline='')as a:
writer = csv.writer(a)
writer.writerow(['姓名', '年龄', '性别', '学历', '工作时间', '现居地址', '期望职位', '期望地点', '期望薪资'])
for i in demo:
href='https:'+i['url']
response1 = requests.get(url=href,cookies=heade)
html = etree.HTML(response1.text)
name = str(html.xpath("//span[@id='name']/text()")) # 姓名
nianling = str(html.xpath("//span[@class='age stonefont']/text()")) # 年龄
xingbie = str(html.xpath("//span[@class='sex stonefont']/text()")) # 性别
xueli = str(html.xpath("//span[@class='edu stonefont']/text()")) # 学历
gongzuoshijian = str(html.xpath("//div/span[@class='stonefont']/text()")) # 工作时间
xj_dizhi = str(html.xpath("//div[@class='base-detail']/span[11]/text()")) # 现居地址
qw_zhiwei = str(html.xpath("//div[@id='expectJob']/text()")) # 期望职位
qw_didian = str(html.xpath("//div[@id='expectLocation']/text()")) # 期望地点
qw_xinzi = str(html.xpath("//div[@class='expectInfo']/p[@class='stonefont']/text()"))# 期望薪资

for k,y in hanshu().items():
name = name.replace(k,y)
nianling = nianling.replace(k,y)
xingbie = xingbie.replace(k,y)
xueli = xueli.replace(k,y)
gongzuoshijian = gongzuoshijian.replace(k,y)
xj_dizhi = xj_dizhi.replace(k,y)
qw_zhiwei = qw_zhiwei.replace(k,y)
qw_didian = qw_didian.replace(k,y)
qw_xinzi = qw_xinzi.replace(k,y)
writer.writerow([name[2:-2],nianling[2:-2],xingbie[2:-2],xueli[2:-2],gongzuoshijian[2:-2],xj_dizhi[2:-2],qw_zhiwei[16:-14],qw_didian[16:-14],qw_xinzi[18:-12]])




posted on 2018-12-28 14:45  逯羊羊  阅读(526)  评论(0编辑  收藏  举报