Python模块BeautifulSoup简介
BeautifulSoup最主要的功能是解析网页源码数,使用BeautifulSoup可以非常方便的把网页源码转换成对象,可以很轻松的拿到我们所需要的数据类型和数据。
BeautifulSoup模块的安装
使用pip命令安装
1 |
pip install BeautifulSoup4 |
使用easy_instal命令安装
1 |
easy_install BeautifulSoup4 |
BeautifulSoup模块的的简单用法
1 2 3 4 5 6 7 8 9 10 |
#引入BeautifulSoup from bs4 import BeautifulSoup import requests htmlext = requests.get('http://code.py40.com/').text #使用BeautifulSoup模块来解析html源码 soup = BeautifulSoup(htmlext,'html.parser', from_encoding='utf-8') result = soup('div') print(result) |
BeautifulSoup模块常用函数介绍
find_all( name , attrs , recursive , string , **kwargs )
find_all()方法搜索当前标签的所有标签子节点,并判断是否符合过滤器的条件find_all()所接受的参数如
find_all也有简写方法,以下代码等价:
1 2 |
soup.find_all("div") soup("div") |
find_all参数举例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# 按name搜素:name参数可以查找所有名字为name的tag,字符串对象会被自动忽略 name = soup.find_all("li") print(name) #按id搜素:如果包含一个名字为id的参数,搜索时会把该参数当作指定的名字tag soup.find_all(id='link2') #按attr搜索:有些tag属性在搜索不能使用,比如HTML5中的data-*属性,但是通过可以find_all()方法的attrs参数定义一个字典搜索参数来搜索所有游戏特殊属性的tag data_soup.find_all(attrs={"data-foo": "value"}) #按CSS搜索:按照CSS类名搜索tag的功能非常实用,标识但CSS类名的关键字class在Python的中是保留字,使用class。 #做参数会导致语法错误从美丽的汤的4.1.1版本开始,通过可以class_参数搜索有指定CSS类名的tag soup.find_all('li', class_="have-img") #过string参数可以搜搜文档中的字符串内容 soup.find_all("a", string="Elsie") |
get_text()
如果得到只想tag中包含的文本内容,可以用get_text()方法,方法,这个方法获取到 tag 中包含的所有文版内容包括子孙 tag 中的内容,并将结果作为 Unicode 字符串返回
1 |
tag.p.a.get_text() |
更多内容请查看:Beautiful Soup 4.4.0 文档 (中文文档)
未经允许不得转载:Python在线学习 » python模块BeautifulSoup网页解析