临近毕业,设计一份好的,具有个性化的简历是必须的。
当然,简历的样式也有很多种,比如单页的,多页的,表格类的…现在我用python中的requests+bs4+正则表达式编写代码爬取网上的简历模板用作参考。
数据来源:http://www.gerenjianli.com(个人简历网)
打开网站我们看到如图所示的界面点击简历模板进入我们所需要的界面如图:
图上所示便是我们所需要的简历模板种类只需要点击相应的类别便可查看和下载对应的模板,现在我们需要批量下载,这些简历模板。
通过对网站的分析我们可以得到如下的爬取思路:
数据获取思路
首先,先导入爬取数据所对应的库,如下:
import requests
from bs4 import BeautifulSoup
import re
import urllib
再定义一个Jianli类用来爬取和下载数据:
class Jianli:
def __init__(self,url):
self.url = url
现在用正则表达式和BeautifulSoup对初始界面进行解析,获取到每个种类简历模板链接:
def jie1(self):
data = requests.get(self.url)
data.encoding = data.apparent_encoding
soup = BeautifulSoup(data.text,'lxml')
#编写正则表达式提取链接
url_1 = re.compile(r'')
soup = str(soup)
repons = re.findall(url_1,soup)
运行测试截图:
获取每个种类模板后需要做的就是在每个种类的简历中解析出每个模板的链接:
for i in repons:
data1 = requests.get(i)
data1.encoding = data1.apparent_encoding
soup1 = BeautifulSoup(data1.text,'lxml')
soup2 = soup1.find_all('div','donwurl2')
soup2 = str(soup2)
#编写正则表达式提取下载链接
url_2 = re.compile(r')
repons1 = re.findall(url_2,soup2)
运行测试截图:
到此我们已经获得了所有种类的每个简历模板,现在需要做的就是将其保存。
将获取的简历链接下载到本地文件,方便以后的使用:
for a in repons1:
try:
urllib.request.urlretrieve(a,'简历模板下载/' + w_name[n] + '.docx') # 开始下载模板
print('正在下载第' + str(n) + ' few.' + w_name[n])
n += 1
except:
print('第' + str(n) + ' 失败')
n += 1
Jianli类的编写到此就结束,现在需要初始化Jianli类运行整个代码块:
if __name__ == "__main__":
urls_list = ['http://www.gerenjianli.co33m/moban/']
for u in range(2,11):
urls = 'http://www.gerenjianli.com/moban/index_'+str(u)+'.html'
urls_list.append(urls)
for url in urls_list:
ppt = Jianli(url)
ppt.jie1()
以上代码先新建一个urls_list列表用以存放所有的种类链接,然后遍历链接列表分别取出链接并调用Jianli类的实例再调用其中的jie1方法下载模板,下载截图如下:
完整代码如下:
import requests
from bs4 import BeautifulSoup
import re
import urllib
class Jianli:
def __init__(self,url):
self.url = url
def jie1(self):
data = requests.get(self.url,headers = 'ksodvcpk')
data.encoding = data.apparent_encoding
soup = BeautifulSoup(data.text,'lxml')
#编写正则表达式提取链接
url_1 = re.compile(r'')
soup = str(soup)
w_name = re.findall(',soup)
repons = re.findall(url_1,soup)
print(repons)
n = 0
for i in repons:
data1 = requests.get(i)
data1.encoding = data1.apparent_encoding
soup1 = BeautifulSoup(data1.text,'lxml')
soup2 = soup1.find_all('div','donwurl2')
soup2 = str(soup2)
#编写正则表达式提取下载链接
url_2 = re.compile(r')
repons1 = re.findall(url_2,soup2)
print(repons1)
for a in repons1:
try:
urllib.request.urlretrieve(a,'简历模板下载/' + w_name[n] + '.docx') # 开始下载模板
print('正在下载第' + str(n) + ' few.' + w_name[n])
n += 1
except:
print('第' + str(n) + ' 失败')
n += 1
if __name__ == "__main__":
urls_list = ['http://www.gerenjianli.co33m/moban/']
for u in range(2,11):
urls = 'http://www.gerenjianli.com/moban/index_'+str(u)+'.html'
urls_list.append(urls)
for url in urls_list:
ppt = Jianli(url)
ppt.jie1()
这次通过爬取简历模板对python爬虫做一个简单的复习,在代码完善,数据处理方面还有待提高。