BeautifulSoup是一个第三方库
下载网址是:
https://www.crummy.com/software/BeautifulSoup/#Download
中文文档网址是:
https://www.crummy.com/software/BeautifulSoup/bs4/doc.zh/#
beautifulSoup默认是以unicode编码文档的,然后以utf-8编码返回
from bs4 import BeautifulSoup
soup = BeautifulSoup('<html><head><meta charset="utf-8"></head><body>Hello World!</body></html>','html.parser')
print(soup.prettify())
如果你觉得BeautifulSoup太长了,还可以使用别名哦~~
from bs4 import BeautifulSoup as bs
soup = bs('<html><head><meta charset="utf-8"></head><body>Hello World!</body></html>','html.parser')
print(soup.prettify())
Tips:
1.soup.title.string 只能找到title标签中有简单一句话的语句
2.soup.p.get_text() 假设p标签内不止有一句话,用string就获取不到,需要使用get_text()来进行获取
3.soup.a 文档从上到下,找到的第一个a标签元素
4.soup.find(id='link2').get_text() 找到id为link2的元素,并获取其文本内容
5.soup.findAll('a') 找到所有a标签元素
找到所有a标签元素后,并不能直接获取其文本内容,因为其是一个列表,所以需要遍历出来
for link in soup.findAll('a'):
print(link.string)
6.soup.find(class='story') 这么写是会报错的,可以使用属性查找的方式
soup.find({'class':'story'}) 光是这么查找,还是获取不到,因为,还需指定必要的标签名
soup.find('p',{'class':'story'}).get_text()
7.使用正则表达式来查找
import re
for tag in soup.find_all(re.compile('^a')):
print(tag.name)
8.查找所有a标签
soup.findAll('a',href=re.compile(r"^http://example\.com"))