博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python 爬虫
阅读量:2094 次
发布时间:2019-04-29

本文共 2026 字,大约阅读时间需要 6 分钟。

尝试爬一个网站:

import urllib.request #请求import reimport xlwtdef getContent(job,pag):    hd = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36 SLBrowser/7.0.0.4071 SLBChan/21"} url = "https://search.51job.com/list/000000,000000,0000,00,9,99,%s,2,%s.html?lang=c&postchannel=0000&workyear=99&cotype=99&degreefrom=99&jobterm=99&companysize=99&ord_field=0&dibiaoid=0&line=&welfare=" url = url%(job,pag) req = urllib.request.Request(url,headers=hd) page = urllib.request.urlopen(req).read().decode("gbk") return pagedef getItem(page): pat = re.compile(r'"job_href":"(.*?)","job_name":"(.*?)".*?"company_href":"(.*?)","company_name":"(.*?)","providesalary_text":"(.*?)".*?"workarea_text":"(.*?)","updatedate":"(.*?)".*?"companytype_text":"(.*?)","degreefrom":"(.*?)".*?"attribute_text":(.*?),"companysize_text":"(.*?)","companyind_text":"(.*?)"') code = re.findall(pat, page) for i in range(0,len(code)): dis = dict(岗位详情=code[i][0],岗位名字=code[i][1],公司网址=code[i][2] ,公司名称 = code[i][3], 待遇 = code[i][4], 工作地点 = code[i][5] ,发布时间=code[i][6],公司类型=code[i][7],学历要求=code[i][8] ,招聘要求=code[i][9],公司规模=code[i][10],行业=code[i][11]) code[i]=dis return codedef saveExcel(result): wb = xlwt.Workbook() # 创建工作表 sheet = wb.add_sheet('51job') list_n = ['岗位详情','岗位名字','公司网址','公司名称','待遇','工作地点','发布时间','公司类型','学历要求','招聘要求','公司规模','行业'] list_h = ['公司名称','公司网址','公司类型','公司规模','行业','工作地点','岗位名字','待遇','岗位详情','发布时间','学历要求','招聘要求'] for row,str in enumerate(list_h): sheet.write(0, row, str) for i in range(0,len(result)): for n,inV in enumerate(list_h): sheet.write(i+1,n,result[i][inV]) wb.save('51job.xlsx')job = input("请输入查询职位")pag = input("请输入查询页数")lism = []for i in range(1,int(pag)+1): loading = float(i)/float(pag)*100 print(str(loading)+'%') page = getContent(job,i) code = getItem(page) lism.extend(code)saveExcel(lism)

转载地址:http://gfuhf.baihongyu.com/

你可能感兴趣的文章
idea如何显示git远程与本地的更改对比?
查看>>
SDO_GEOMETRY结构说明
查看>>
oracle 的 SDO_GEOMETRY
查看>>
往oracle中插入geometry的两种方式
查看>>
Oracle Spatial中的Operator操作子 详细说明
查看>>
Oracle Spatial中SDO_Geometry详细说明
查看>>
oracle 聚合函数 LISTAGG ,将多行结果合并成一行
查看>>
Oracle列转行函数 Listagg() 语法详解及应用实例
查看>>
LISTAGG函数的用法
查看>>
Oracle Spatial操作geometry方法
查看>>
IDEA类和方法注释模板设置(非常详细)
查看>>
Java程序初始化的顺序
查看>>
Dubbo和Spring结合配置文件内容解析为bean的过程
查看>>
fastJson注解@JSONField使用的一个实例
查看>>
fastjson的@JSONField注解的一点问题
查看>>
fastjson使用(三) -- 序列化
查看>>
浅谈使用单元素的枚举类型实现单例模式
查看>>
Java 利用枚举实现单例模式
查看>>
Java 动态代理作用是什么?
查看>>
Java动态代理机制详解(JDK 和CGLIB,Javassist,ASM) (清晰,浅显)
查看>>