使用BeautifulSoup解析网页

使用BeautifulSoup解析网页

使用方法

创建BeautifulSoup对象

import bs4
import lxml     # 使用lxml解析

soup = bs4.BeautifulSoup(html_content, 'lxml')

对象常用方法(待补全)

soup.find_all()

函数声明如下:

find_all(self, name=None, attrs={}, recursive=True, string=None, limit=None, **kwargs):
        """
        查找页面中所有符合条件的元素

        :param name: 标签名    
        :param attrs: 属性值字典,例如{'class': 'example'}
        :param recursive: 是否递归查找, 默认为True, 如果True, 则会查找所有子孙元素
        :param limit: 返回结果的数量限制, 默认为None, 表示返回所有匹配的元素
        :kwargs: 其他关键字参数, 例如{'id': 'example'}

        :return: 一个element.ResultSet对象, 包含所有匹配的元素
        :rtype: bs4.element.ResultSet
        """

例如,查找页面中所有class为example的元素:

example_elements = soup.find_all(class_='example')

soup.find()

函数声明如下:

find(self, name=None, attrs={}, recursive=True, string=None, limit=None, **kwargs):
        """
        查找页面中符合条件的第一个元素
        :param name: 标签名    
        :param attrs: 属性值字典,例如{'class': 'example'}
        :param recursive: 是否递归查找, 默认为True, 如果True, 则会查找所有子孙元素
        :param limit: 返回结果的数量限制, 默认为None, 表示返回所有匹配的元素
        :kwargs: 其他关键字参数, 例如{'id': 'example'}

        :return: 一个element对象, 包含第一个匹配的元素
        :rtype: bs4.element.Tag
        """

例如,查找页面中第一个class为example的元素:

example_element = soup.find(class_='example')

soup.select()

函数声明如下:

select(self, selector, recursive=True, limit=None):
        """
        使用CSS选择器查找页面中所有符合条件的元素
        :param selector: CSS选择器
        :param recursive: 是否递归查找, 默认为True, 如果True, 则会查找所有子孙元素
        :param limit: 返回结果的数量限制, 默认为None, 表示返回所有匹配的元素

        :return: 一个element.ResultSet对象, 包含所有匹配的元素
        :rtype: bs4.element.ResultSet
        """

例如,查找页面中所有class为example的元素:

example_elements = soup.select('.example')

soup.select_one()

函数声明如下:

select_one(self, selector, recursive=True):
        """
        使用CSS选择器查找页面中第一个符合条件的元素
        :param selector: CSS选择器
        :param recursive: 是否递归查找, 默认为True, 如果True, 则会查找所有子孙元素

        :return: 一个element对象, 包含第一个匹配的元素
        :rtype: bs4.element.Tag
        """

例如,查找页面中第一个class为example的元素:

example_element = soup.select_one('.example')

element对象常用属性(待补全)

element.name

元素的标签名

element.attrs

元素的属性值字典

element.string

元素的文本内容

element.children

元素的子元素列表

element.parent

元素的父元素

element['attr_name']

获取元素的属性值

其他常用方法(待补全)

prettify()

格式化输出HTML代码

encode()

编码输出HTML代码

decode()

解码输出HTML代码

get_text()

获取元素的文本内容

stripped_strings()

获取元素的文本内容列表,并去除空白字符

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇