requests-bs4路线爬取中华英才网并分析热门职位及其薪资
在现在这个信息爆炸的时代,每人每分每秒都在产生数据,数据单位是PB量级。在如此巨大的数据中,通过数据分析可以使企业清晰的了解到目前的现状与竞争环境,风险评判与决策支持,能够充分利用数据带来的价值,进行数据挖掘分析与展现后,呈现给企业决策者的将是一份清晰、准确且有数据支撑的“有价值”报告。
网络结构分析
如图所示,将网页代码解析后使用soup.find_all()和soup.find()方法,职位信息在属性class为e1的span标签下的a中,而薪资在属性class为e2的span中。爬取网站代码,返回的是完整的页面信息代码,则可以使用简单的requests-bs4路线进行爬取,在代码中添加for循环进行多页爬取。
完整代码
下面展示一些 内联代码片
。
import requests
import os
import csv
from bs4 import BeautifulSoup
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
以上为库的导入,接下来就要实现函数了
#request调用,获取页面
def GetHtml(url):
try:
kv={
'user-agent':'Mozilla/5.0'#加入头部
}
r=requests.get(url,headers=kv)
r.raise_for_status()
r.encoding=r.apparent_encoding
return r.text
except:
print("GetHtml出现错误")
#结束
上面的就是经典的request函数库的使用,接下来继续写
#BeautifulSoup调用,整理页面查找值
def GetInfo(html,PositionName,SalaryList):
soup=BeautifulSoup(html, "html.parser")
for li in soup.find_all('li', {
'class': 'l1'}):
if