爬虫bs4案例
2024-08-29 10:42:00
案例:使用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()
最新文章
- Azure SQL Database (19) Stretch Database 概览
- Intercooler.js – 让 AJAX 像锚标签一样简单
- 一.	HTML认识
- windows8.1+centos7双系统(装完centos后无win8引导)
- 软件工程(QLGY2015)第一次作业小结(含成绩)
- JQuery:JQuery删除元素
- MFC CString的L和_T
- The 11th Zhejiang Provincial Collegiate Programming Contest->;Problem G:G - Ternary Calculation
- orale做报表常用函数和表达式的总结
- MongoDB:利用官方驱动改装为EF代码风格的MongoDB.Repository框架 五 --- 为List<;MongoDBRef>;增加扩展方法
- 新手如何学习java(java学习建议路线图)
- git服务器配置http请求
- 使用PHPword中文乱码并且下载的方法
- 在浏览器中查看.vue文件的源码
- SQL 必知必会&#183;笔记<;1>;了解SQL
- 自动化运维(1)之二进制部署MySQL5.7
- anaconda的kernel对jupyter可见
- boost生成json中的put操作
- 4. 深入 Python 流程控制
- shell 终端terminfo命令 tput
热门文章
- HDU3306—Another kind of Fibonacci
- qt and redis desktop manager
- Python爬虫实例(二)使用selenium抓取斗鱼直播平台数据
- 数字货币量化分析报告_20170905_P
- vue项目中批量打印二维码
- Bone Collector II---hdu2639(01背包求第k优解)
- Codeforces441B_Valera and Fruits(暴力)
- IT开发工程师的悲哀现状和可能前途
- My Neural Network isn't working! What should I do?
- Flask与pyaudio实现音频数据流的传输(电话会议语音交互式应用)