c爬虫抓取网页数据(用到的编程工具是python3.7,你知道吗?)
优采云 发布时间: 2021-12-28 20:16c爬虫抓取网页数据(用到的编程工具是python3.7,你知道吗?)
众所周知,爬虫是用python编程语言实现的,主要用于网络数据的爬取和处理,比如爬豆瓣电影TOP250、爬小说等……
而爬帖对于刚毕业的大学生来说也是非常有必要的。来看看怎么实现(使用的编程工具是python3.7)
一、抓取作业信息1.引导库
简单方法:在cmd中输入pip安装库名
urllib.request 用于模拟浏览器发起HTTP请求
xlwt库支持python语言对excel表格进行操作
re 库用于用正则表达式匹配和替换字符串
pandas 库是一个开源的、BSD 许可的库,提供高性能、易于使用的数据结构和数据分析工具。
读取爬取的excel表
这部分主要使用pycharts来编辑图表,主库如下
2.模拟浏览器发起请求
首先指定请求爬取资源的域名'Host':''
最重要的是使用正则表达式来理解字符串如何存储在正确的列表中。比如findall就是在字符串中查找所有正则表达式匹配的子串,并返回一个列表,如果有多个匹配模式,则返回一个元组列表,如果没有找到匹配,则返回列表
3.数据存储
二、数据清洗
清理数据,如果有空值就删除整行,如果信息杂乱则删除整行
数据清洗后的数据
三、数据可视化
使用pandas对第二张excel表进行操作
#add() 用于添加图表数据和设置各种配置项;
#render() 生成 .html 文件;
#map的基本用法,add_schema()表示添加框架并导入map
#set_series_opts() 可以设置标签等。
#set_global_opts(),还可以设置很多配置项,比如:标题、工具箱等。
1.教育要求玫瑰图
2.工作经验要求漏斗图
3.大数据城市需求分布图
四、项目改进
以上就是求职攀登项目的全部内容。完成这些内容后,我和我的朋友们也想到了一些改进,比如增加更多的数据清理,或者制作更多的图表,以方便分析工作情况;关键代码如下:
1.改进一
#转换工资单位
b3 = u'万/年'
b4 = u'千/月'
li3 = a['薪水']
对于范围内的 i(0,len(li3)):
尝试:
如果 li3[i] 中的 b3:
x = re.findall(r'\d*\.?\d+',li3[i])
#打印(x)
min_ = format(float(x[0])/12,'.2f') #转为浮点,保留小数点后两位
max_ = format(float(x[1])/12,'.2f')
li3[i][1] = min_+'-'+max_+u'10,000/月'
如果 li3[i] 中的 b4:
x = re.findall(r'\d*\.?\d+',li3[i])
#打印(x)
#输入()
min_ = format(float(x[0])/10,'.2f')
max_ = format(float(x[1])/10,'.2f')
li3[i][1] = str(min_+'-'+max_+'10,000/月')
打印(i,li3[i])
除了:
经过
2. 改进二
min_s=[] #定义最低工资表
max_s=[] #定义最高工资列表
对于范围内的 i (0,len(experience)):
min_s.append(salary[i][0])
max_s.append(salary[i][0])
如果#matplotlib模块无法显示中文字符串,可以使用如下代码
plt.rcParams['font.sans-serif'] = ['KaiTi'] # 指定默认字体
plt.rcParams['axes.unicode_minus'] = False #解决减号'-'在保存的图片中显示为正方形的问题
my_df = pd.DataFrame({'experience':experience,'min_salay': min_s,'max_salay': max_s}) #相关的工作经验和工资
data1 = my_df.groupby('experience').mean()['min_salay'].plot(kind='line')
plt.show()
my_df2 = pd.DataFrame({'education':education,'min_salay': min_s,'max_salay': max_s}) #相关的教育和工资
data2 = my_df2.groupby('education').mean()['min_salay'].plot(kind='line')
plt.show()