python爬取简历

import zipfile
import re
from win32com import client as wc #导入模块
import os
import pymysql


#将doc转化为docx.因docx为压缩包,自带html文件
def doc_to_docx(file):
    word = wc.Dispatch("Word.Application") # 打开word应用程序
    doc = word.Documents.Open(file) #打开word文件
    doc.SaveAs("{}x".format(file), 12)#另存为后缀为".docx"的文件,其中参数12指docx文件
    doc.Close() #关闭原来word文件
    word.Quit()
    print(file.split('/')[-1]+"完成!")
    return "{}x".format(file)


def get_document(filepath):
    z = zipfile.ZipFile(filepath, "r")
    text = z.read("word/document.xml").decode("UTF-8")
    text = re.sub(r"<.*?>", "", text)#去除xml里的所有标记符
    return text



if __name__ == '__main__':
    file_path= 'C:/Users/lenovo/Desktop/other/简历/长亮数据-咨询部笔试题目-附件'
    for filename in os.listdir(file_path):
        if filename.split('.')[-1] != 'docx':
            fp = doc_to_docx(file_path+'/'+filename)
            page_text = get_document(fp)
            print(page_text)
            # 性别
            sex = re.findall(r"目前正在找工作   (.*?) | | 现居住", page_text, re.S)[0]
            if len(sex) <1:
                sex = 'null'
            # 年龄
            age = re.findall(r"现居住 .*? | (.*?)年工作经验最近工作", page_text, re.S)[0].split('|')[1]
            if len(age) <1:
                age = 'null'
            # 地址
            dress = re.findall(r"现居住 .*? | (.*?)年工作经验最近工作", page_text, re.S)[0].split('|')[2].strip().split(' ')[-1]
            if dress == '现居住':
                dress = 'null'
            # 工作年龄
            work_age = re.findall(r"现居住 .*? | (.*?)年工作经验最近工作", page_text, re.S)[0].split('|')[-1]
            if len(work_age) <1:
                work_age = 'null'
            # 职位
            work_name = re.findall(r"职 位:(.*?)公 司:行 业", page_text, re.S)[0]
            if len(work_name) <1:
                work_name = 'null'
            # 公司
            company_name = re.findall(r"公 司:(.*?)行 业", page_text, re.S)[0]
            if len(company_name) <1:
                company_name= 'null'
            # 行业
            industry_name = re.findall(r"职 位:(.*?)公 司:行 业", page_text, re.S)[0]
            if len(industry_name) <1:
                industry_name = 'null'
            # 专业
            profession_name = re.findall(r"最高学历/学位 专 业:(.*?)学 校:", page_text, re.S)[0]
            if len(profession_name) <1:
                profession_name = 'null'
            # 学校
            school_name = re.findall(r"学 校:(.*?)学历/学位", page_text, re.S)[0]
            if len(school_name) <1:
                school_name= 'null'
            # 学历
            education = re.findall(r"学历/学位:(.*?)个人信息户口/国籍", page_text, re.S)[0]
            if len(education) <1:
                education = 'null'
            print(sex, age, dress, work_age, work_name, company_name, industry_name, profession_name, school_name,
                  education)
        else:
            continue
使用 Python 爬取压缩包可以借助`requests`库向服务器发送请求,获取压缩包数据后将其保存到本地。以下是几种不同场景下的实现方法: ### 爬取简历模板压缩包 ```python import requests from lxml import etree import os # 简历模板网站 url = 'https://sc.chinaz.com/jianli/free.html' # 发送请求 response = requests.get(url) response.encoding = response.apparent_encoding html = response.text # 解析 HTML tree = etree.HTML(html) # 查找所有简历模板的下载链接 download_links = tree.xpath('//div[@class="box col3 ws_block"]/a/@href') # 创建保存文件夹 if not os.path.exists('jianli_templates'): os.makedirs('jianli_templates') # 下载并保存压缩包 for link in download_links: if link.startswith('//'): link = 'https:' + link file_name = link.split('/')[-1] file_path = os.path.join('jianli_templates', file_name) res = requests.get(link) with open(file_path, 'wb') as f: f.write(res.content) ``` 此代码通过`requests`库获取简历模板网站的 HTML 内容,使用`lxml`库解析 HTML 并查找所有简历模板的下载链接,最后将下载的压缩包保存到指定文件夹中[^1]。 ### 爬取指定 URL 的 RAR 文件 ```python import requests url = 'https://download.ihsdus.cn/down/newdown/7/02/yfjpbjq.rar?timestamp=674c5aa8&auth_key=d12bd1492b9a41b103e8632b477e0ab7' res = requests.get(url) with open("勇芳简谱编辑器.rar", 'wb') as f: f.write(res.content) ``` 该代码直接使用`requests`库向指定 URL 发送请求,获取 RAR 文件的内容并保存到本地文件中[^4]。 ### 处理 FTP 链接的转换 若遇到以 FTP 链接形式提供的压缩包,需先将其转换为 HTTP/HTTPS 链接,再进行下载: ```python import pandas as pd def changePre(data): # 更换 url 前缀为 https hurlsGen = [] # 存放所有转换完成的 Gen FTP 链接 hurlsRef = [] # 存放所有转换完成的 Ref FTP 链接 i = 0 while i < len(data): # 循环遍历所有数据进行转换 data = data.astype(str) furlGen = data['GenBank FTP'][i].strip()[3:] furlRef = data['RefSeq FTP'][i].strip()[3:] hurlGen = 'https' + furlGen + '/' hurlRef = 'https' + furlRef + '/' hurlsGen.append(hurlGen) hurlsRef.append(hurlRef) i += 1 return hurlsGen, hurlsRef # 示例数据 data = pd.DataFrame({ 'GenBank FTP': ['ftp://example.com/genbank/file1.zip', 'ftp://example.com/genbank/file2.zip'], 'RefSeq FTP': ['ftp://example.com/refseq/file1.zip', 'ftp://example.com/refseq/file2.zip'] }) hurlsGen, hurlsRef = changePre(data) # 下载转换后的链接对应的压缩包 for url in hurlsGen + hurlsRef: try: res = requests.get(url) file_name = url.split('/')[-1] with open(file_name, 'wb') as f: f.write(res.content) except Exception as e: print(f"下载 {url} 失败: {e}") ``` 此代码定义了`changePre`函数,将数据中的 FTP 链接转换为 HTTPS 链接,然后使用`requests`库下载转换后的链接对应的压缩包[^2]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小徐的数理笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值