案例:使用BeautifuSoup4的爬虫

我们以腾讯社招页面来做演示:http://hr.tencent.com/position.php?&start=10#a

使用BeautifuSoup4解析器,将招聘网页上的职位名称、职位类别、招聘人数、工作地点、发布时间,以及每个职位详情的点击链接存储出来。

# bs4_tencent.py

from bs4 import BeautifulSoup
import urllib2
import urllib
import json # 使用了json格式存储 def tencent():
url = 'http://hr.tencent.com/'
request = urllib2.Request(url + 'position.php?&start=10#a')
response =urllib2.urlopen(request)
resHtml = response.read() output =open('tencent.json','w') html = BeautifulSoup(resHtml,'lxml') # 创建CSS选择器
result = html.select('tr[class="even"]')
result2 = html.select('tr[class="odd"]')
result += result2 items = []
for site in result:
item = {} name = site.select('td a')[0].get_text()
detailLink = site.select('td a')[0].attrs['href']
catalog = site.select('td')[1].get_text()
recruitNumber = site.select('td')[2].get_text()
workLocation = site.select('td')[3].get_text()
publishTime = site.select('td')[4].get_text() item['name'] = name
item['detailLink'] = url + detailLink
item['catalog'] = catalog
item['recruitNumber'] = recruitNumber
item['publishTime'] = publishTime items.append(item) # 禁用ascii编码,按utf-8编码
line = json.dumps(items,ensure_ascii=False) output.write(line.encode('utf-8'))
output.close() if __name__ == "__main__":
tencent()

最新文章

  1. Azure SQL Database (19) Stretch Database 概览
  2. Intercooler.js – 让 AJAX 像锚标签一样简单
  3. 一. HTML认识
  4. windows8.1+centos7双系统(装完centos后无win8引导)
  5. 软件工程(QLGY2015)第一次作业小结(含成绩)
  6. JQuery:JQuery删除元素
  7. MFC CString的L和_T
  8. The 11th Zhejiang Provincial Collegiate Programming Contest->Problem G:G - Ternary Calculation
  9. orale做报表常用函数和表达式的总结
  10. MongoDB:利用官方驱动改装为EF代码风格的MongoDB.Repository框架 五 --- 为List<MongoDBRef>增加扩展方法
  11. 新手如何学习java(java学习建议路线图)
  12. git服务器配置http请求
  13. 使用PHPword中文乱码并且下载的方法
  14. 在浏览器中查看.vue文件的源码
  15. SQL 必知必会·笔记<1>了解SQL
  16. 自动化运维(1)之二进制部署MySQL5.7
  17. anaconda的kernel对jupyter可见
  18. boost生成json中的put操作
  19. 4. 深入 Python 流程控制
  20. shell 终端terminfo命令 tput

热门文章

  1. HDU3306—Another kind of Fibonacci
  2. qt and redis desktop manager
  3. Python爬虫实例(二)使用selenium抓取斗鱼直播平台数据
  4. 数字货币量化分析报告_20170905_P
  5. vue项目中批量打印二维码
  6. Bone Collector II---hdu2639(01背包求第k优解)
  7. Codeforces441B_Valera and Fruits(暴力)
  8. IT开发工程师的悲哀现状和可能前途
  9. My Neural Network isn't working! What should I do?
  10. Flask与pyaudio实现音频数据流的传输(电话会议语音交互式应用)