涉及知識
- 正則表達式
- 文件操作
- 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即可