Python 爬取前程无忧
2017-12-28 21:24
260 查看
当初自己在学爬虫时,因网上资料很多都是基于python2开发的,所以入门的时候走了不少弯路,为了减少大家少走弯路,今天就分享下基础入门爬虫。
学python当然对python的就业方向要有所了解,这次的爬虫基于前程无忧,首先打开网址 http://www.51job.com/
然后输入python 如下图所示:
进入网站后可以看到网址信息和招聘信息
通过查看网址信息,发现网址有点复杂,是不是感觉可能不怎么方便去采集数据?别担心这其实可能是开发者故意干扰我们的,经过分析可以看到真正的有效网址如下:
http://search.51job.com/list/000000,000000,0000,00,9,99,python,2,1.html
然后翻阅第二页如下
经过分析可知参数仅仅改变了数字,而其对应的网址如下:
http://search.51job.com/list/000000,000000,0000,00,9,99,python,2,2.html依次类推,以后的网页都可以通过改变一个参数就可以得到
右键检查便很轻松的可以得到对应网页的位置
如获取职位名称 第一个标题t1 = soup.select(‘.t1 span a’)[0].text
薪资t4 = soup.select(‘.t4’)[1].text 可以发现薪资soup.select(‘.t4’)[0].text并不是对应第一个招聘信息的薪水
源代码如下:
import requests from bs4 import BeautifulSoup import xlwt headers={ 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.75 Safari/537.36' } def get_html(): k=1 #参数k代表存储到excel的行数 wb = xlwt.Workbook() # 创建工作簿 f = wb.add_sheet("招聘信息") # 创建工作表 ''' 下方的循环是将Excel表格中第一行固定 Excel表第一行的前五列分别对应 职位、公司、工作地点、薪水、发布日期 ''' raw = ['职位', '公司', '工作地点', '薪水', '发布日期'] for i in range(len(raw)): f.write(0, i, raw[i]) ''' write函数中第一个参数表示存储到多少行 第二各参数存储到多少列表,第三个参数代表存储到对应行列的值 ''' url='http://search.51job.com/list/000000,000000,0000,00,9,99,python,2,{}.html' try: for page in range(12):#解析前11页 res = requests.get(url.format(page)) res.encoding = 'gbk' if res.status_code == 200: soup = BeautifulSoup(res.text, 'lxml') t1 = soup.select('.t1 span a') t2 = soup.select('.t2 a') t3 = soup.select('.t3') t4 = soup.select('.t4') t5 = soup.select('.t5') for i in range(len(t2)): job = t1[i].get('title')#获取职位 href = t2[i].get('href')#获取链接 company = t2[i].get('title')#获取公司名 location = t3[i+1].text#获取工作地点 salary = t4[i+1].text#获取薪水 date = t5[i+1].text#获取发布日期 print(job + " " + company + " " + location + " " + salary + " " + date + " " + href) f.write(k,0,job) f.write(k,1,company) f.write(k,2,location) f.write(k,3,salary) f.write(k,4,date) k+=1#每存储一行 k值加1 wb.save('招聘.csv')#写完后掉用save方法进行保存 except TimeoutError: print("请求失败") return None if __name__=='__main__': get_html()
小提示:记得先安装xlwt库,不然运行程序会报错哟
相关文章推荐
- Python利用Scrapy爬取智联招聘和前程无忧的招聘数据
- python爬虫 前程无忧网页抓取
- python3爬取使用BeautifulSoup爬取前程无忧的python招聘信息入库MongoDB!
- python urllib2用url爬前程无忧职位信息
- 前程无忧python工作薪资爬取及数据分析
- python爬取前程无忧和拉勾数据分析岗位并分析
- 爬取前程无忧python工程师记录一
- 前程无忧发布2018中国人才市场展望
- 独家曝光:2010前程无忧北京年会
- python解无忧公主的数学时间编程题001.py
- Python 代理验证程序(For 无忧代理) 多线程版
- 爬取前程无忧招聘信息并写入excel
- 八大素质让你前程无忧
- 独家曝光:2010前程无忧北京年会
- 一键实现前程无忧(51job)简历不停刷新(selenium)
- 这些职场素质让你前程无忧
- Python scrapy爬虫爬取前程无忧的职位信息,并简要数据分析
- 你害了多少求职者?――前程无忧
- 赢道在手,前程无忧
- 应具备八大素质让你前程无忧