本文共 2242 字,大约阅读时间需要 7 分钟。
学习Python爬虫过程中的心得体会以及知识点的整理,方便我自己查找,也希望可以和大家一起交流。
可以直接使用pip安装,如果电脑上没安装pip,可以到以下网址教程中安装。
Linux:。 Windows:。 MAC OS:直接在终端输入代码:sudo easy_install pip
。 安装好pip后,我们就可以安装BeautifulSoup库了。
直接输入代码:pip install bs4
。 因为BeautifulSoup是bs4的一个部分。 我们首先在Python中导入BeautifulSoup库:
from bs4 import BeautifulSoup
对于新手来说,我们需要知道BeautifulSoup库有什么功能方法,我们可以dir一下:
print (dir(BeautifulSoup))在这里我们可以看到BeautifulSoup库的各种方法。
import requestsfrom bs4 import BeautifulSoupr = requests.get("https://www.baidu.com")n = r.contentm = BeautifulSoup(n,"html.parser")
BeautifulSoup库最主要的功能就是从网页爬取我们需要的数据。BeautifulSoup将 html 解析为对象进行处理,全部页面转变为字典或者数组,相对于正则表达式的方式,可以大大简化处理过程。BeautifulSoup将htmll对象转成对象的过程。
import requestsfrom bs4 import BeautifulSoupr = requests.get("https://www.baidu.com")n = r.contentm = BeautifulSoup(n,"html.parser")print(m.prettify())print(m.head.title)print(m.p)for i in m.find_all("p"): print(i) print(type(i))st = m.find_all("p")[0]str(st)print (st)print (type(st))
print(m.head.title)
for i in m.find_all("p"): print(i)
当然,也可以进行多关键词查找,例如:find_all(“p”,“a”,“title”)。也可以发现,这里的i类似于同一个列表的类型,但是其实并非是列表,不过可以按照列表来理解,比如我们要找源代码中第二个p标签:
print (m.find_all("p")[2])
那么,find_all这里究竟是什么类型呢,这里我们可以查一下i的类型:
我们可以看到,类型不是string,而是对象。如果我们想改成改为string,直接str()转换就可以了:About Baidu
需要以下代码以及方法:
for i in m.find_all("a"): print(i)["href"]
现在查找到a标签,然后再所有a标签中查找“href”参数,如果只查找其中某个,只需要找到特殊的标志,如id值、class值(注意:class在查找的时候是“class_”):
s=m.find_all(id="link2",class_="sister")[0].["href"] print(s)
import requestsfrom bs4 import BeautifulSoupimport rer = requests.get("https://www.baidu.com")n = r.contentm = BeautifulSoup(n,"html.parser")for tag in m.find_all(re.compile("^p")): print(tag.name)
结果如下:
——————完整代码请点击查看。 ——————更多方法详细前往查看。转载地址:http://ybazi.baihongyu.com/