欢迎贵客来到小店。外头说Python玄乎,好似神仙法器;您得走进来瞧瞧,指不定就是些油盐柴米,就凑了个海陆空全席。秋风起喽,咱这不兴奶茶,客人先尝尝这个热汤(BeautifulSoup)?
这汤啊,温补,去油解腻。咱现在条件好了,买到的东西啊,油裹着糖,蜜裹着油的,外面还要刷点色儿,光看着就觉着晕乎,都不知道怎么下口。可是啊,兹往咱这汤锅里好好炖炖,准保皮是皮,筋是筋的,清清爽爽,您需要啥就盛啥,别客气。
譬如说这:
有图,有字,图里又裹着字,一层层剥开吃下,可得费功夫。
您要只想捞点老美的料,那就试试咱这菜谱。
【备料】打开网页,ctrl + s,找个盘子盛好,假设它是toutiao.html
【下锅】
#!encoding=utf-8
from bs4 import BeautifulSoup
toutiao_soup = BeautifulSoup(open("toutiao.html"))
【上菜】
toutiao_soup.find_all('a', text=re.compile('.*美国.*'))
这锅汤有点儿多,再给您开一个小点的锅,翻翻锅里头,看看这是怎么捞着的:
#!encoding=utf-8
from bs4 import BeautifulSoup
html_string = """<html><body><a href="pos1"> part_a </a> <a href="pos2"> part_b</a></body></html>"""
small_soup = BeautifulSoup(html_string)print(small_soup.find_all(True))
# 输出: [<html><body><a href="pos1"> part_a </a> <a href="pos2"> part_b</a></body></html>,
# <body><a href="pos1"> part_a </a> <a href="pos2"> part_b</a></body>,
# <a href="pos1"> part_a </a>,
# <a href="pos2"> part_b</a> ]
# 它被解析成三层,一共有4个节点:
# html --> body --> a(pos1),a(pos2)
print(small_soup.find_all('a'))
# 寻找a这个标签,也就是<a ... > ... </a>这一段
# 输出: [<a href="pos1"> part_a </a>, <a href="pos2"> part_b</a>]
print(small_soup.find_all('a', text=re.compile('.*part_a.*')))
# 寻找a这个标签,它的文字内容里面包含part_a
# 输出: [<a href="pos1"> part_a</a>], 这就是前面的结果
对喽,还有一条,这汤里的营养啊,不叫氨基酸蛋白质什么的,叫【Tag】 , 【NavigableString】 , 【BeautifulSoup】 , 【Comment】。
这方子也是个老客人给的,也不怕给您瞧见:
# 文档地址: https://beautifulsoup.readthedocs.io/zh_CN/
您要感兴趣,改天呀,咱拿上点小菜,一起去聊聊。
这个会的就看得懂,不会的就直呼这是什么玩意???
我直呼这是什么玩意
强啊
强
哈哈哈哈!