python一键批量下载个人简历网的简历模板

网址:http://www.gerenjianli.com/moban/index.html

需求

小王和他的同们要毕业了,想要一些好看有免费的简历模板,于是找了这个网站,他想下载这个网站的全部简历模板。

分析

网站结构较简单,只需要点击简历图片跳转进入详情页界面即可看到下载按钮,点击下载按钮即可下载简历模板,第一步只需要在首页中找到详情页的url,然后模拟浏览器对详情页的url发起请求,然后找到下载按钮对应的url地址,对这个地址发起请求即可。

本文采用xpath解析方式来获取详情页url和下载按钮的url,注意查看页面编码。

 

代码

import requests
from lxml import etree
headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) '
                          'Chrome/91.0.4472.114 Safari/537.36 '
        }
for pagenum in range(1,3): #此处可更改范围,此处下载1~2页为例
    if pagenum ==1:
        url = 'http://www.gerenjianli.com/moban/index.html'
    else:
        url = 'http://www.gerenjianli.com/moban/index_'+ str(pagenum) +'.html'
    page_text = requests.get(url=url, headers=headers)
    page_text.encoding= 'gb2312' #设置编码格式
    page_text=page_text.text
    # print(page_text)
    tree = etree.HTML(page_text)  #实例化一个etree对象,将首页源码加载到该对象中。
    li_list = tree.xpath('//div[@class="list_boby"]/ul[@class="prlist"]/li') #找到简历模板对应的li标签
    for li in li_list: #循环遍历所有的li标签,定位到简历对应的名字和简历详情页的url
        resume_name = li.xpath('./div/a/img/@alt')[0]
        resume_src = li.xpath('./div/a/@href')[0]
        download_text=requests.get(url=resume_src,headers=headers).text
        dtree = etree.HTML(download_text) #实例化一个etree对象,将详情页的源码加载到该对象中。
        dsrc = dtree.xpath('//div[@class="donwurl2"]/a/@href')[0] #定位到下载按钮对应的url
        result = requests.get(url=dsrc,headers=headers).content #发起请求
        download_path = 'D:\\文件\\简历\\' + resume_name + '.docx' #存储到本地
        with open(download_path,'wb') as fp:
            fp.write(result)
            print(resume_name+'下载成功!')

结果

 

 

<?xml version="1.0" encoding="utf-8" ?> <configuration> <connectionStrings> <add name="ResumeDB" connectionString="Data Source=192.168.1.240;Initial Catalog=ResumeImport;User ID=ResumeImport;Password=ResumeImport2012" providerName="System.Data.SqlClient" /> <!--<add name="ResumeDB" connectionString="Server=DEV2-PC\RICHARD;Database=Resume;Trusted_Connection=True;" />--> </connectionStrings> <appSettings> <!--导入数据源 DB表示是去数据库取数 Directory表示直接从文件夹下导入 Excel表示数据源为Excel--> <add key="ImportSource" value="Directory"/> <!--<add key="UserName" value="baza_TZDZ"/> <add key="PWD" value="12a6eafd1a616e11ce51e419ab1435"/>--> <add key="UserName" value="baza_SZSQHD"/> <add key="PWD" value="52f6eafd9a616e94cd10e419db7818"/> <!--文件大小限制 单位KB--> <add key="LimitSize" value="2000"/> <!--支持上传的文件类型--> <!--<add key="PermitImportFileExtension" value="doc,pdf,txt,html,htm"/>--> <add key="PermitImportFileExtension" value="doc,pdf,txt,html,htm,mht"/> <!--简历的渠道 1:招聘站,2:猎头招聘,3:员工推荐,4:现场招聘,5:校园招聘,6:媒体广告,7:官,8:企业人才库,9:其它, 10131:领导推荐,10132:外包,10133:培训机构,10254:职酷 如果不填或填0,则默认使用企业人才库--> <add key="Channel" value="0"/> <!--以下是数据源为Directory的参数 begin--> <add key="FileDirectory" value="F:\中国人才热线下载简历"/> <add key="CurrentlyFilePath" value=""/> <!--以上是数据源为Directory的参数 end--> <!--编码格式 int型 65001为UTF-8 936为默认--> <add key="CodePage" value="936"/> <!--以下是数据源为DB的参数 begin--> <add key="ServiceAddress" value=""/> <add key="TempDirectory" value="d:\ResumeTemp"/> <add key="FileStartID" value="0"/> <add key="FileIDName" value="ReportID"/> <add key="FileDataName" value="WordContent"/> <add key="FileTypeName" value="docname"/> <add key="GetResumeSql" value="select top 50 {0},WordContent,docname from ResumeDocReportTable where {0} > {1} order by {0} "/> <add key="WaitTime" value="10"/> <!--是否保存文件,0表示不保存,1表示保存导入错误的文件,2都保存--> <add key="SaveFile" value="1"/> <add key="FileExtension" value="doc"/> <!--以上是数据源为DB的参数 end--> <!--以下是数据源为Excel的参数 begin--> <add key="ExcelFileDirectory" value="C:\Documents and Settings\kiki\桌面\简历导入工具"/> <add key="ExcelToTxtTemplate" value="C:\Documents and Settings\kiki\桌面\简历导入工具\Template\ExcelToTxtTemplate.txt"/> <add key="ExcelRowKey" value="姓名"/> <add key="ExistKeyCount" value="3"/> <add key="CurrentlyExcelFilePath" value=""/> <!--以上是数据源为Excel的参数 end--> </appSettings> <system.serviceModel> <bindings> <basicHttpBinding> <binding name="BasicHttpBinding_IResumeImport" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferSize="6553600" maxBufferPoolSize="52428800" maxReceivedMessageSize="6553600" messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true"> <readerQuotas maxDepth="3200" maxStringContentLength="819200" maxArrayLength="1638400" maxBytesPerRead="409600" maxNameTableCharCount="1638400" /> <security mode="None"> <transport clientCredentialType="None" proxyCredentialType="None" realm="" /> <message clientCredentialType="UserName" algorithmSuite="Default" /> </security> </binding> </basicHttpBinding> </bindings> <client> <endpoint address="http://115.29.222.109:8008/Baza.Hirede.Services.ResumeImport.ResumeImportService.svc/ResumeImport" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IResumeImport" contract="ResumeImportService.IResumeImport" name="BasicHttpBinding_IResumeImport" /> </client> </system.serviceModel> </configuration> <!--http://weixun.hirede.com/Baza.Hirede.Services.ResumeImport.ResumeImportService.svc/ResumeImport--> <!--http://localhost:8410/ResumeImport--> <!--http://resumeimport.hirede.com/Baza.Hirede.Services.ResumeImport.ResumeImportService.svc-->
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值