涉及知识
- 正则表达式
- 文件操作
- BeautifulSoup.bs4 --解析xml
- 慕课网视频都有教程
实现思路
正在求职,找到知页这个不错的做简历的网站,然后用分享朋友圈的方式拿到了解锁码,然后舍友再使用的时候,已经不支持免费解锁了,然后我看了下各个模板的下载地址,只有id不同,然后每个用户可以下载第一个免费模板,从这个模板的下载地址中可以看到自己的用户Id,所以就有了个想法,试了试用我的下载地址,换了用户id,换了模板id,真的就免费下载到了想要的简历模板。。
所以就想到用最近学的python批量下载所有的模板,步奏就是
- 找到自己的用户id
- 找出所有模板的id
- 遍历下载
第一步,import
import urllib2
import re
from bs4 import BeautifulSoup
第二步,获取Html
这里本该是用urllib2获取,但是因为要用到cookie略麻烦,就不用了
这里我是先用浏览器登录,然后直接把源码copy下来,然后用读取文件的方式
file = open('Content.html')
try:
html_cont = file.read()
finally:
file.close()
第三步:BeautifulSoup.bs4用解析xml节点
soup = BeautifulSoup(html_cont, 'html.parser', from_encoding='utf-8')
cate_node = soup.find('div', class_="swiper-wrapper").find_all('div', class_="swiper-slide")
//遍历这个节点根据条件查找子节点
idList = []
for item in cate_node:
node = item.find('div', class_="swiperSlidemain urlclick")
if node != None:
//此处拼装模板预览的url
dataUrl = r'http://www.zhiyeapp.com' + node['data-url']
//用正则表达式,找出url中的模板id值,放入全局变量idList中
pa = re.compile(r'\d+')
list = pa.findall(dataUrl)
idList.append(list[0])
pass
其实这一步是为了获取所有模板的id,获取完发现,总共16个模板,id就是1-16..
第四步:拼装下载url开始下载
//这是我的用户id,后面隐藏了
id = 'n70WQtkNf2tExAmAGxz7vQ%3D%3D******'
for tId in idList:
downloadUrl = r'http://www.zhiyeapp.com/resume/export?id='+id+'&template_id='+tId+'&is_contact=1'
f = urllib2.urlopen(downloadUrl)
data = f.read()
with open("./test/Id-"+tId+'.pdf', "wb") as code:
code.write(data)
pass
效果图
image.png下载地址如图
image.png替换id和template_id即可
网友评论