美文网首页
一次关于知页简历模板批量下载的脚本

一次关于知页简历模板批量下载的脚本

作者: 开学的帅哥季 | 来源:发表于2017-06-05 15:12 被阅读0次

    涉及知识

    • 正则表达式
    • 文件操作
    • 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即可

    算是个系统实现的漏洞,所以才我被我这个初学者发现,哈哈

    相关文章

      网友评论

          本文标题:一次关于知页简历模板批量下载的脚本

          本文链接:https://www.haomeiwen.com/subject/webifxtx.html