Python静态网页解析库Bequtifulsoup4
来源:互联网 发布:mac怎么删除硬盘文件 编辑:程序博客网 时间:2024/06/05 00:52
Beautifulsoup4是用于解析html文本的Python库,官方指南参考
https://www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.html
find,
select方法:用CSS定位器查找html元素
# coding:utf-8import requestsfrom bs4 import BeautifulSoup #静态网页解析#下述定义几个全局变量BASE_LIB = 'html5lib'BASE_URL = 'http://www.ip138.com'UA = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36'HEADERS = {'user-agent':UA}def handle_zip_code(province, url): print(province) resp = requests.get(url, headers=HEADERS) text = resp.text.encode('iso-8859-1').decode('gbk') bs = BeautifulSoup(text, BASE_LIB) rows = bs.select('table.t12 > tbody > tr') #查找bs4解析后的html源码中表格的前13行tr(对照网页图看) print('_______________________________') #下述循环可以用数组切片替代,去掉表格第一行 for i in range(1, len(rows)): items = rows[i].select('td') #每一"行"的每个单元网格td取出,形成items t_1 = items[0].text.strip() #把表格每一行的第一个"元素"取出(市、县、区名),strip是去掉字符首尾空格 if t_1: print('\t%s, %s' % (t_1, items[1].text.strip())) if len(items) > 4: #数据有两大列,有些网格右侧没有信息(比如滨海新区右侧没有别的区县) t_2 = items[3].text.strip() if t_2: print('\t%s, %s' % (t_2, items[4].text.strip()))if __name__ == '__main__': resp = requests.get(BASE_URL + '/post', headers=HEADERS) text = resp.text.encode('iso-8859-1').decode('gbk') #获得页面http://www.ip138/post.com文本内容 bs = BeautifulSoup(text, BASE_LIB) #初始化一个bs4对象;默认使用lxml对html做解析,这里设置参数BASE_LIB是选择用'html5lib'对html做解析 for item in bs.select('div#newAlexa > table.t4 > tbody > tr > td > a'): #bs4的select返回所有满足条件的元素,结构是数组,只有一个元素时也返回数组 #select参数是html的查找层次,可以对照网页开发者工具里html代码查看对应关系 print(item.text) #查找到的各个省市名字,a元素 print(item.text, item.get('href')) #查找a元素的href属性,即URL尾巴上的各省市编号(参看网页html源码) print('_______________________________') handle_zip_code(item.text, BASE_URL + item.get('href')) #BASE_URL + item.get('href')是拼接每个省市完整的URL
阅读全文
0 0
- Python静态网页解析库Bequtifulsoup4
- Python豆瓣静态网页抓取,lxml解析和显示(实验)
- python中的静态网页
- Python网页静态爬虫
- python学习:网页解析
- python扒静态网页图片
- 【beautifulsoup】python标准库解析器解析网页问题解决
- python网页解析之SGMLParser
- Python如何解析动态网页
- Python抓取和解析网页
- 使用python解析网页内容
- Tomcat不解析静态网页的解决方案
- 用Jsoup解析静态网页数据
- Python库详解之网络(2)--解析网页
- Python requests库解析中文网页乱码处理方法
- Python入门简单的静态网页爬虫
- python+django加载静态网页模板
- python爬取静态和动态网页
- javascript 实现页面间传值(3) 解决中文乱码问题
- python迭代器问题
- eclipse Springboot,Spring整合lombook
- Programming with MicroPython.pdf 英文原版 免费下载
- 手机用wifi下载软件无法安装,提示应用未安装
- Python静态网页解析库Bequtifulsoup4
- 数据库三范式
- 时间序列相似性
- virtualbox加载ubuntu,网络如何设置?选择nat还是桥接?
- JavaScript第二课基础知识
- 关于支付宝网站支付接入申请
- GBDT + LR模型融合
- cocos2dx之热更新
- Spring MVC原理及实践