04 BeautifulSoup小实例

xiaoxiao2021-02-27  187

”’ Created on 2017年6月6日

@author: v_huxiaoting ”’ import re from bs4 import BeautifulSoup html_doc = “”” The Dormouse’s story

The Dormouse’s story

Once upon a time there were three little sisters; and their names were Elsie, Lacie and Tillie; and they lived at the bottom of a well.

“”” soup = BeautifulSoup( html_doc, “html.parser” ) print(“获取所有的链接”)

links = soup.find_all(‘a’)

for link in links: print(link.name,link[‘href’],link.get_text())

print(“获取Lacie的链接”)

link_node = soup.find(‘a’,href=”http://example.com/lacie”) print(link_node.name,link_node[‘href’],link_node.get_text())

到这里,因为看的是Python2.x的教程,所以,总是出现各种坑。这个坑踩的有点久,是因为之前按照Python2的写法
soup = BeautifulSoup(
html_doc,
“html.parser”,
from_encoding=”utf-8”
)
一直以为是别的地方出问题,结果是因为这个字符编码。
原因是因为:Python3 缺省的编码是unicode, 再在from_encoding设置为utf8, 会被忽视掉,导致报错,而影响其他的代码。
使用正则进行匹配

print(‘正则匹配’) link_node1 = soup.find(‘a’,href=re.compile(r”ill”))

re.compile() 正则匹配
r表示不进行转义

print(link_node1.name,link_node[‘href’],link_node1.get_text())

获取p段落文字

print(“获取p段落文字”) p_node = soup.find(‘p’,class_=’title’) print(p_node.name,p_node.get_text())

转载请注明原文地址: https://www.6miu.com/read-13436.html

最新回复(0)