Python爬虫学习-简单利用urllib.request和正则表达式抓取职位信息
1: 利用urllib.request和正则表达式抓取职位信息,并写入本地文件
1 # coding:utf-8 2 3 import re 4 import requests 5 import urllib.request 6 7 #利用urllib和re正则提取网页数据 8 9 ''' 10 url = 'https://search.51job.com/list/020000,000000,0124,01,9,99,%2520,2,1.html?lang=c&stype=&postchannel=0000&workyear=99&cotype=99°reefrom=99&jobterm=99&companysize=99&providesalary=99&lonlat=0%2C0&radius=-1&ord_field=0&confirmdate=9&fromType=&dibiaoid=0&address=&line=&specialarea=00&from=&w' 11 # response = requests.get(url) 12 # response.encoding='gbk' 13 # wbdata =response.text 14 15 wbdata=urllib.request.urlopen(url).read().decode('gbk') 16 # print(len(wbdata)) 17 18 pat ='<a target="_blank" title="(.*?)"' 19 data = re.compile(pat).findall(wbdata) 20 # print(data) 21 22 #输出到文件 23 # with open('jobs.txt','w') as f: 24 # for k in range(len(data)): 25 # print(data[k]) 26 # f.write(data[k]+'\n') 27 28 #输出至console 29 for k in range(len(data)): 30 print(data[k]) 31 ''' 32 print("--"*20) 33 #超时设置 34 # for i in range(0,20): 35 # try: 36 # file=urllib.request.urlopen("http://baidu.com",timeout=0.2).read().decode('gbk') 37 # print(len(file)) 38 # except Exception as err: 39 # print("出现异常:可能网页超时!"+str(err)) 40 41 #get请求实战-获取51job职位信息 42 keywd="Python" 43 pat1='<div class="el">.*?title="(.*?)" href="(http.*?)".*?<span class="t4">(.*?)</span>.*?</div>' 44 pat2='<span class="t4">(.*?)</span>' 45 46 # keywd=urllib.request.quote(keywd) 47 for i in range(1,11): 48 url="https://search.51job.com/list/020000,000000,0000,00,9,99,"+keywd+",2,"+str(i)+".html" 49 file=urllib.request.urlopen(url) 50 # print(file.geturl()) 51 data=file.read().decode('gbk') 52 print("----------------第"+str(i)+"页-----------------") 53 rst1=re.compile(pat1,re.S).findall(data) 54 # rst2 = re.compile(pat2).findall(data) 55 # rst=list(zip(rst1,rst2)) 56 for j in range(0,len(rst1)): 57 print(rst1[j]) 58 with open('jobs.txt','a') as f: 59 f.write(str(rst1[j]) + '\n') 60 61 # rst2 = re.compile(pat2).findall(data) 62 # for z in range(0, len(rst2)): 63 # print(rst2[z])
2: 抓取信息如下
1 ----------------第1页----------------- 2 ('自动化测试工程师Selenium', 'https://jobs.51job.com/shanghai-ypq/114603381.html?s=01&t=5', '1-1.5万/月') 3 ('大数据研发工程师', 'https://jobs.51job.com/shanghai/67963188.html?s=01&t=6', '') 4 ('Python爬虫工程师', 'https://jobs.51job.com/shanghai-pdxq/121129060.html?s=01&t=0', '1-1.5万/月') 5 ('Python高级开发工程师', 'https://jobs.51job.com/shanghai-pdxq/114332244.html?s=01&t=0', '2-4万/月') 6 ('Python爬虫工程师', 'https://jobs.51job.com/shanghai/120028078.html?s=01&t=0', '1-1.5万/月') 7 ('Python开发工程师', 'https://jobs.51job.com/shanghai-xhq/119981428.html?s=01&t=0', '1-1.5万/月') 8 ('python开发工程师/大数据建模', 'https://jobs.51job.com/shanghai-hpq/114718480.html?s=01&t=0', '6-8千/月') 9 ('Python开发工程师', 'https://jobs.51job.com/shanghai/120395604.html?s=01&t=0', '1.2-1.5万/月') 10 ('C/C++/Python开发工程师', 'https://jobs.51job.com/shanghai-xhq/120909208.html?s=01&t=0', '15-20万/年') 11 ('Python开发工程师', 'https://jobs.51job.com/shanghai-pdxq/89716807.html?s=01&t=0', '1-1.5万/月') 12 ('erlang/python服务器开发工程师', 'https://jobs.51job.com/shanghai-xhq/98416948.html?s=01&t=0', '1.5-3.5万/月') 13 ('Python开发工程师', 'https://jobs.51job.com/shanghai-pdxq/120657799.html?s=01&t=0', '1.5-2万/月') 14 ('Python开发工程师 (MJ000231)', 'https://jobs.51job.com/shanghai-jaq/117808653.html?s=01&t=0', '0.6-1万/月') 15 ('python开发工程师-A0122', 'https://jobs.51job.com/shanghai-jaq/119864919.html?s=01&t=0', '1-1.5万/月') 16 ('高级python后端工程师(AI平台)', 'https://jobs.51job.com/shanghai-ypq/120959109.html?s=01&t=0', '1.5-2万/月') 17 ('初级Python工程师', 'https://jobs.51job.com/shanghai-pdxq/116357032.html?s=01&t=0', '10-15万/年') 18 ('Python开发工程师', 'https://jobs.51job.com/shanghai/115980776.html?s=01&t=0', '') 19 ('python数据分析', 'https://jobs.51job.com/shanghai-bsq/120583326.html?s=01&t=0', '1.5-2.5万/月') 20 ('Python开发工程师', 'https://jobs.51job.com/hefei/121179694.html?s=01&t=0', '0.8-1.2万/月') 21 ('Python开发专家', 'https://jobs.51job.com/shanghai-mhq/121173046.html?s=01&t=0', '3-3.5万/月') 22 ('Python开发工程师', 'https://jobs.51job.com/shanghai-jaq/120911076.html?s=01&t=0', '1-1.5万/月') 23 ('python Web开发工程师', 'https://jobs.51job.com/shanghai-pdxq/120283479.html?s=01&t=0', '1-1.3万/月') 24 ('python web后台开发', 'https://jobs.51job.com/shanghai-cnq/119461330.html?s=01&t=0', '0.6-1.5万/月') 25 ('Python开发工程师(金融科技)', 'https://jobs.51job.com/shanghai-xhq/117251350.html?s=01&t=0', '0.7-1.5万/月') 26 ('Python开发工程师', 'https://jobs.51job.com/shanghai-ypq/107196999.html?s=01&t=0', '0.8-1.5万/月') 27 ('Python高级软件工程师', 'https://jobs.51job.com/shanghai-mhq/120966514.html?s=01&t=0', '21-35万/年') 28 ('P0076-python开发工程师', 'https://jobs.51job.com/shanghai-pdxq/121163335.html?s=01&t=0', '1-2万/月') 29 ('Python 应用开发工程师', 'https://jobs.51job.com/shanghai-cnq/121160736.html?s=01&t=0', '0.7-1.3万/月') 30 ('软件开发工程师(GO/Lua/python)', 'https://jobs.51job.com/shanghai-jaq/119529417.html?s=01&t=0', '1.5-2.5万/月') 31 ('运维开发工程师(Python开发)', 'https://jobs.51job.com/shanghai/119187608.html?s=01&t=0', '2.5-4万/月') 32 ('Python开发工程师', 'https://jobs.51job.com/shanghai-pdxq/98528369.html?s=01&t=0', '1-1.5万/月') 33 ('Python开发工程师', 'https://jobs.51job.com/shanghai-jaq/120386104.html?s=01&t=0', '1-2.2万/月') 34 ('Python开发工程师', 'https://jobs.51job.com/shanghai-mhq/118338654.html?s=01&t=0', '0.8-1万/月') 35 ('PFS-Python Developer', 'http://durrgroup.51job.com/jobinfo1.html?id=120187451', '') 36 ('python数据分析师', 'https://jobs.51job.com/shanghai-pdxq/112471902.html?s=01&t=0', '1-1.5万/月') 37 ('25923-Python高级工程师(深圳)', 'https://jobs.51job.com/shanghai-hpq/118208611.html?s=01&t=0', '') 38 ('硬件工程师(python)', 'https://jobs.51job.com/shanghai/120159337.html?s=01&t=0', '') 39 ('Python开发工程师', 'https://jobs.51job.com/shanghai-ypq/121106633.html?s=01&t=0', '1.3-1.9万/月') 40 ('Python后端开发工程师', 'https://jobs.51job.com/shanghai-xhq/118007556.html?s=01&t=0', '1.2-1.8万/月') 41 ('Python开发工程师', 'https://jobs.51job.com/shanghai-pdxq/120944265.html?s=01&t=0', '1-1.5万/月') 42 ('Python全栈工程师', 'https://jobs.51job.com/shanghai-mhq/109925368.html?s=01&t=0', '0.8-1.6万/月') 43 ('python开发', 'https://jobs.51job.com/shanghai-hkq/117623816.html?s=01&t=0', '2-3万/月') 44 ('高级Python/Django后端软件工程师', 'https://jobs.51job.com/shanghai-cnq/109764789.html?s=01&t=0', '1.5-2万/月') 45 ('软件工程师(汽车行业优先)精通python', 'https://jobs.51job.com/shanghai-pdxq/120189871.html?s=01&t=0', '0.8-2万/月') 46 ('Python 爬虫工程师(薪智)', 'https://jobs.51job.com/shanghai-mhq/119329837.html?s=01&t=0', '1.5-2万/月') 47 ('高级Python开发工程师', 'https://jobs.51job.com/shanghai/105294644.html?s=01&t=0', '2.5-5万/月') 48 ('Python开发工程师', 'https://jobs.51job.com/shanghai/101535573.html?s=01&t=0', '1.5-2万/月') 49 ('Python开发工程师', 'https://jobs.51job.com/shanghai-pdxq/115644674.html?s=01&t=0', '1.5-2.2万/月') 50 ('Python开发经理', 'https://jobs.51job.com/shanghai-pdxq/114043106.html?s=01&t=0', '2-2.5万/月') 51 ('Python高级开发工程师', 'https://jobs.51job.com/shanghai-pdxq/118673386.html?s=01&t=0', '1.8-3万/月') 52 ('高级Python开发工程师', 'https://jobs.51job.com/shanghai-mhq/98639401.html?s=01&t=0', '1.5-2.5万/月') 53 ('python开发', 'https://jobs.51job.com/shanghai-hkq/117622468.html?s=01&t=0', '2-3万/月') 54 ----------------第2页----------------- 55 ('python工程师', 'https://jobs.51job.com/shanghai-sjq/120620177.html?s=01&t=0', '0.8-2万/月') 56 ('Python(Odoo)工程师', 'https://jobs.51job.com/shanghai-pdxq/119746269.html?s=01&t=0', '1-1.5万/月') 57 ('Python/Odoo高级开发工程师', 'https://jobs.51job.com/shanghai/116881344.html?s=01&t=0', '2.5-3万/月') 58 ('Python开发工程师', 'https://jobs.51job.com/shanghai-pdxq/116927659.html?s=01&t=0', '0.8-1.5万/月') 59 ('Python开发工程师', 'https://jobs.51job.com/shanghai-cnq/120895491.html?s=01&t=0', '1-1.5万/月') 60 ('Python高级开发工程师', 'https://jobs.51job.com/shanghai-pdxq/120349450.html?s=01&t=0', '1.5-2万/月') 61 ('中级后端工程师(python/odoo)', 'https://jobs.51job.com/shanghai-sjq/107147430.html?s=01&t=0', '1.5-2万/月') 62 ('实习生(Python开发)', 'https://jobs.51job.com/shanghai/119951678.html?s=01&t=0', '1-5千/月') 63 ('Python开发工程师', 'https://jobs.51job.com/shanghai-ypq/120474003.html?s=01&t=0', '0.8-1.2万/月') 64 ('Python后端开发', 'https://jobs.51job.com/shanghai-xhq/121023917.html?s=01&t=0', '1.5-2.5万/月') 65 ('Python软件工程师', 'https://jobs.51job.com/shanghai-xhq/117038800.html?s=01&t=0', '1-1.5万/月') 66 ('初级python/R 工程师', 'https://jobs.51job.com/shanghai-xhq/116055667.html?s=01&t=0', '0.5-1万/月') 67 ('python', 'https://jobs.51job.com/shanghai-pdxq/120778793.html?s=01&t=0', '6.5-9.5千/月') 68 ('Python开发工程师', 'https://jobs.51job.com/shanghai-pdxq/120941553.html?s=01&t=0', '0.8-1.5万/月') 69 ('python开发项目经理', 'https://jobs.51job.com/shanghai-ypq/117944790.html?s=01&t=0', '2.6-4万/月') 70 ('Python/PHP后端程序员', 'https://jobs.51job.com/shanghai-xhq/114897348.html?s=01&t=0', '1-1.5万/月') 71 ('Python开发工程师', 'https://jobs.51job.com/shanghai-pdxq/119493296.html?s=01&t=0', '15-25万/年') 72 ('Python开发工程师(外汇岗位)', 'https://jobs.51job.com/shanghai-pdxq/120797741.html?s=01&t=0', '1-1.6万/月') 73 ('Python开发工程师', 'https://jobs.51job.com/shanghai-pdxq/112330285.html?s=01&t=0', '1-1.7万/月') 74 ('Python开发工程师(***)', 'https://jobs.51job.com/shanghai/120694247.html?s=01&t=0', '1000元/天') 75 ('python开发', 'https://jobs.51job.com/shanghai-hkq/117614339.html?s=01&t=0', '2-3万/月') 76 ('Python开发工程师', 'https://jobs.51job.com/shanghai-pdxq/118308129.html?s=01&t=0', '1.1-2万/月') 77 ('Python开发工程师', 'https://jobs.51job.com/shanghai-pdxq/119981957.html?s=01&t=0', '1.5-2万/月') 78 ('Python开发工程师', 'https://jobs.51job.com/shenzhen/118443903.html?s=01&t=0', '3-4万/月') 79 ('Python高级开发工程师', 'https://jobs.51job.com/shanghai-sjq/120173104.html?s=01&t=0', '1.5-2万/月') 80 ('python 工程师', 'https://jobs.51job.com/shanghai-xhq/120570442.html?s=01&t=0', '1.5-2万/月') 81 ('Python高级开发工程师', 'https://jobs.51job.com/shanghai-mhq/120105386.html?s=01&t=0', '1.5-3万/月') 82 ('软件开发工程师(Python)', 'https://jobs.51job.com/shenzhen-nsq/118492627.html?s=01&t=0', '0.6-1.2万/月') 83 ('python开发', 'https://jobs.51job.com/shanghai-pdxq/118924590.html?s=01&t=0', '6-8千/月') 84 ('Python开发工程师', 'https://jobs.51job.com/shanghai-xhq/115691023.html?s=01&t=0', '1.3-1.8万/月') 85 ('Python工程师', 'https://jobs.51job.com/shanghai-cnq/119488897.html?s=01&t=0', '1.5-2万/月') 86 ('python开发', 'https://jobs.51job.com/shanghai-xhq/115310459.html?s=01&t=0', '6-8千/月') 87 ('大数据算法开发/Python开发', 'https://jobs.51job.com/shanghai-pdxq/120055740.html?s=01&t=0', '1.5-2万/月') 88 ('Python开发(09)', 'https://jobs.51job.com/shanghai-pdxq/120786708.html?s=01&t=0', '0.8-1.1万/月') 89 ('Python开发工程师', 'https://jobs.51job.com/shanghai-pdxq/120472220.html?s=01&t=0', '1-1.5万/月') 90 ('Python工程师', 'https://jobs.51job.com/shanghai/119281603.html?s=01&t=0', '2-3.5万/月') 91 ('Python高级开发工程师', 'https://jobs.51job.com/shanghai-hkq/119893009.html?s=01&t=0', '1.5-2万/月') 92 ('Python运维开发工程师', 'https://jobs.51job.com/shanghai-mhq/119681490.html?s=01&t=0', '1.5-2万/月') 93 ('Python工程师', 'https://jobs.51job.com/shanghai/102367533.html?s=01&t=0', '1.5-2万/月') 94 ('Python开发工程师', 'https://jobs.51job.com/shanghai-ypq/120946896.html?s=01&t=0', '1.5-2万/月') 95 ('Python开发工程师', 'https://jobs.51job.com/shanghai-hpq/109016702.html?s=01&t=0', '2.3-2.8万/月') 96 ('Senior Python Software Engineer', 'https://jobs.51job.com/shanghai/119066163.html?s=01&t=0', '1.5-3万/月') 97 ('高级软件工程师 Golang/Python', 'https://jobs.51job.com/shanghai-cnq/120220700.html?s=01&t=0', '2-6万/月') 98 ('Python开发工程师', 'https://jobs.51job.com/shanghai/114088389.html?s=01&t=0', '1-1.5万/月') 99 ('Python 开发工程师', 'https://jobs.51job.com/shanghai-pdxq/120139836.html?s=01&t=0', '0.8-1.5万/月') 100 ('Python开发工程师', 'https://jobs.51job.com/shanghai-pdxq/115129775.html?s=01&t=0', '1.5-2万/月') 101 ('python开发', 'https://jobs.51job.com/shanghai-hkq/117611952.html?s=01&t=0', '2-3万/月') 102 ('Python开发工程师', 'https://jobs.51job.com/shanghai-pdxq/110125924.html?s=01&t=0', '1-1.5万/月') 103 ('Python开发工程师', 'https://jobs.51job.com/shanghai-xhq/118610557.html?s=01&t=0', '1-2万/月') 104 ('Python 架构', 'https://jobs.51job.com/shanghai-pdxq/120317481.html?s=01&t=0', '2.5-3.5万/月')