python——爬虫学习——基于bs4库的HTML内容查找方法-(3)
来源:互联网 发布:headfirst python pdf 编辑:程序博客网 时间:2024/06/06 20:30
find_all()
find_all( name , attrs , recursive , string , **kwargs )
返回一个列表类型,存储查找的结果
name : 对标签名称的检索字符串:
>>> import requests>>> r=requests.get("http://python123.io/ws/demo.html")>>> demo = r.text>>> soup = BeautifulSoup(demo,'html.parser')>>> soup.find_all('a')[<a class="py1" href="http://www.icourse163.org/course/BIT-268001" id="link1">Basic Python</a>, <a class="py2" href="http://www.icourse163.org/course/BIT-1001870001" id="link2">Advanced Python</a>]>>> soup.find_all(['a','b'])[<b>The demo python introduces several python courses.</b>, <a class="py1" href="http://www.icourse163.org/course/BIT-268001" id="link1">Basic Python</a>, <a class="py2" href="http://www.icourse163.org/course/BIT-1001870001" id="link2">Advanced Python</a>]>>> for tag in soup.find_all(True):... print(tag.name)...htmlheadtitlebodypbpaa>>> import re>>> for tag in soup.find_all(re.compile('b')):... print(tag.name)...bodyb
attrs: 对标签属性值的检索字符串,可标注属性检索:
>>> soup.find_all(id='link1')[<a class="py1" href="http://www.icourse163.org/course/BIT-268001" id="link1">Basic Python</a>]>>> soup.find_all(id='link')[]>>> soup.find_all(id=re.compile('link'))[<a class="py1" href="http://www.icourse163.org/course/BIT-268001" id="link1">Basic Python</a>, <a class="py2" href="http://www.icourse163.org/course/BIT-1001870001" id="link2">Advanced Python</a>]
recursive: 是否对子孙全部检索,默认True:
>>> soup.find_all('a',recursive=False)[]
string: <>…
>>> soup.find_all(string='Advanced Python')[u'Advanced Python']>>> soup.find_all(string='Advanced')[]>>> import re>>> soup.find_all(string=re.compile('Advanced'))[u'Advanced Python']
扩展方法
中国大学排名定向爬虫
代码:
# -*- coding: cp936 -*-import requestsimport bs4from bs4 import BeautifulSoupulist = []r = requests.get('http://www.zuihaodaxue.cn/zuihaodaxuepaiming2016.html', timeout=30)r.raise_for_status()r.encoding = r.apparent_encodinghtml = r.textsoup = BeautifulSoup(html, "html.parser")print("%-10s\t%-20s\t%-10s"%("排名","学校","总分"))for tr in soup.find('tbody').children: if isinstance(tr, bs4.element.Tag): tds = tr('td') ulist.append([tds[0].string, tds[1].string, tds[3].string])for i in range (100): u=ulist[i] print("%-10s\t%-20s\t%-10s"%(u[0],u[1],u[2]))
运行情况:
排名 学校 总分 1 清华大学 95.9 2 北京大学 82.6 3 浙江大学 80 4 上海交通大学 78.7 5 复旦大学 70.9 6 南京大学 66.1 7 中国科学技术大学 65.5 8 哈尔滨工业大学 63.5 9 华中科技大学 62.9 10 中山大学 62.1 11 东南大学 61.4 12 天津大学 60.8 13 同济大学 59.8 14 北京航空航天大学 59.6 15 四川大学 59.4 16 武汉大学 59.1 17 西安交通大学 58.9 18 南开大学 58.3 19 大连理工大学 56.9 20 山东大学 56.3 21 华南理工大学 56.2 22 吉林大学 55.7 23 厦门大学 55.4 24 北京师范大学 54.6 25 北京理工大学 53.9 26 苏州大学 53.1 27 中南大学 52.5 28 北京科技大学 52.2 29 南京航空航天大学 52 30 华东理工大学 51.9 31 湖南大学 51.4 31 中国人民大学 51.4 33 重庆大学 50.9 34 华东师范大学 50.6 35 中国地质大学(武汉) 50.4 36 西北工业大学 50.3 36 电子科技大学 50.3 38 中国农业大学 48.9 38 中国石油大学(北京) 48.9 40 北京化工大学 48.6 40 北京交通大学 48.6 42 南京理工大学 48.5 43 华北电力大学(北京) 48.2 44 北京邮电大学 48.1 45 西安电子科技大学 47.6 46 武汉理工大学 47.4 46 上海大学 47.4 48 华中师范大学 47.3 48 东北大学 47.3 50 东北师范大学 47.1 51 东华大学 47 52 福州大学 46.7 53 首都医科大学 46.5 53 兰州大学 46.5 55 江南大学 46.3 56 合肥工业大学 45.6 57 南京医科大学 45.5 58 中国海洋大学 45.3 59 中国矿业大学 45.2 60 暨南大学 44.6 61 西南大学 44.4 62 南京农业大学 44.3 62 河海大学 44.3 64 哈尔滨工程大学 44.2 65 华中农业大学 44 66 中国药科大学 43.7 67 西南交通大学 43.6 68 天津医科大学 43.3 69 西北农林科技大学 42.8 69 南京师范大学 42.8 71 西北大学 42.5 72 江苏大学 42.3 73 浙江工业大学 42.1 74 北京林业大学 42 75 南京邮电大学 41.9 75 南方医科大学 41.9 75 陕西师范大学 41.9 75 南京工业大学 41.9 79 北京工业大学 41.8 80 燕山大学 41.5 81 华南师范大学 41.4 82 河北工业大学 41.1 83 北京中医药大学 41 83 浙江师范大学 41 83 汕头大学 41 86 长安大学 40.9 87 沈阳药科大学 40.8 87 湘潭大学 40.8 89 大连海事大学 40.6 90 浙江理工大学 40.5 91 杭州师范大学 40.4 91 大连医科大学 40.4 93 河北大学 40.3 94 杭州电子科技大学 40.2 94 中央民族大学 40.2 96 安徽大学 40 97 山西大学 39.4 97 宁波大学 39.4 97 石家庄铁道大学 39.4 100 扬州大学 39.3
0 0
- python——爬虫学习——基于bs4库的HTML内容查找方法-(3)
- python爬虫由浅入深6--基于bs4库的HTML内容的查找方法
- Python网络爬虫与信息提取-Day7-基于bs4库的HTML内容遍历方法
- python爬虫由浅入深4--基于bs4的html内容遍历方法
- 基于bs4的HTML内容遍历方法
- Python网络爬虫与信息提取-Day8-基于bs4库的HTML格式输出
- Python爬虫之bs4库
- Python爬虫(bs4)-3
- 基于python Scrapy的爬虫——爬取某网站新闻内容
- 从零开始写Python爬虫 --- 1.3 BS4库的解析器
- python爬虫笔记day1 BS4库的使用
- requests和bs4的python爬虫入门
- 小白学爬虫-----bs4的学习-1
- python爬虫——获取正文内容
- Python 爬虫 —— 获取js渲染的内容
- bs4爬虫:获取百度贴吧的内容
- 基于Python的爬虫项目一——城市天气
- python——基于煎蛋网的简单图片爬虫
- Unity 之圆环算法
- Linux/Mac MySQL忘记密码,命令行修改(已解决)
- 167_集合_Map常用方法详解
- 数据结构——集合(JavaScript)
- 这几天写html前台页面的总结
- python——爬虫学习——基于bs4库的HTML内容查找方法-(3)
- css控制文字溢出省略号显示
- 51Nod 1113 矩阵快速幂
- 聊聊多版本部署问题
- lspci 命令使用
- OutOfMemoryError异常
- 学习资源收集
- 史上最全的HTML基础教程(收藏)
- unity导出工程与iOS工程合并