#coding:utf-8
#requests主要用于获取网页的源码
import requests
#re主要用于在网页源码上筛选出自己需要的信息
import re
#sys 在本程序中主要使用setdefaultencoding方法
import sys
#xlwt用于往本地磁盘上创建xls文档并向其中使用内容
import xlwt
reload(sys)
#声明了一个变量,该变量控制网站内容的翻页
page=1
#声明了一个变量,该变量控制写入excel中的行
hang=
0
#初始化workbook类,并设置编码style_compression表示是否压缩
book=xlwt.Workbook(encoding=
'utf-8',style_compression=
0)
#在excel中创建一个工作簿名为dede,第二个参数代表该单元格中已有内容时是否还可以再次进行写入
sheet=book.add_sheet(
'dede',cell_overwrite_ok=
True)
#是设置默认的string的编码格式
sys.setdefaultencoding(
'utf8')
#设置读取网页的头部,该行代码主要用于模拟浏览器来访问网站
_header={
'User-Agent':
'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'}
#通过手动查看,需要扒取的网页共有81页
for page
in range(82
):
#获取当前页面的源代码
qhmu=requests.get(
"http://search.51job.com/list/010000,000000,0000,00,9,99,web%E5%89%8D%E7%AB%AF,2,{0}.html?lang=c&stype=1&postchannel=0000&workyear=99&cotype=99°reefrom=99&jobterm=99&companysize=99&lonlat=0,0&radius=-1&ord_field=0&confirmdate=9&fromType=&dibiaoid=0&address=&line=&specialarea=00&from=&welfare=".format(page),headers=
_header)
#将获取到的编码为国标库
qhmu.encoding=
'gbk'
#找到一整条信息,其中包括职位名称、公司名称、工作地点、薪资、发布时间
one_info=re.findall(
'<div class="el">(.*?)</div>',qhmu.text,re.S)
#遍历一整条信息
for eachInfo
in one_info:
#没有合适的一次就可以找到职位名称的正则表达式,所以分两步来查找
zwmc=re.findall(
'<input class="checkbox"(.*?)</span>',eachInfo,re.S)
for each
in zwmc:
zwmcl=re.search(
'">(.*?)</a>',each,re.S)
#将找到的这条信息的职位名称写入到excel表格中
sheet.write(hang, 0,
'职位名称:{0}'.format(zwmcl.group(1
).strip()))
gsmc=re.search(
'<span class="t2"><a target="_blank" title="(.*?)"',eachInfo,re.S)
# 将找到的这条信息的公司名称写入到excel表格中
sheet.write(hang,1,
'公司名称:{0}'.format(gsmc.group(1
).strip()))
gsdd=re.search(
'<span class="t3">(.*?)</span>',eachInfo,re.S)
# 将找到的这条信息的公司地点写入到excel表格中
sheet.write(hang,2,
'公司地点:{0}'.format(gsdd.group(1
).strip()))
xz=re.search(
'<span class="t4">(.*?)</span>',eachInfo,re.S)
# 将找到的这条信息的薪资写入到excel表格中
sheet.write(hang, 3,
'薪资:{0}'.format(xz.group(1
).strip()))
fbsj=re.search(
'<span class="t5">(.*?)</span>',eachInfo,re.S)
# 将找到的这条信息的发布时间写入到excel表格中
sheet.write(hang, 4,
'发布时间:{0}'.format(fbsj.group(1
).strip()))
#一条信息写入完成后换下一行写入下条信息
hang+=1
#将内存中的该excel文档保存在本地目录之中
book.save(
'd:\\abc.xls')
print "success!"
每一句我都写了注释,新手自己研究的,代码不是很漂亮,以后优化的各个信息会在后续的博客中给出
实现效果为在D盘根目录下多了一个名为abc.xls的文档
打开该文档,职位信息已经写入成功
转载于:https://www.cnblogs.com/jiyongxin/p/7001722.html
相关资源:各显卡算力对照表!