Python网络爬虫新手入门(二) 应用BeautifulSoup分析

摘要: 所属部位: > Python > Python网络爬虫新手入门(二) 应用BeautifulSoup分析网页页面內容 上节解读了怎样用requests恳求网页页面,这节解读怎样应用bs4对恳求到的网页页面內容开展分析进而获...

所属部位: > Python > Python网络爬虫新手入门(二) 应用BeautifulSoup分析网页页面內容

上节解读了怎样用requests恳求网页页面,这节解读怎样应用bs4对恳求到的网页页面內容开展分析进而获得到需要信息内容

HTML+CSS

 

 

下边宣布刚开始:

最先要pip安裝bs4控制模块

pip install bs4

 

倘若你如今的网页页面中有那么一段a标识的內容,那麼大家如今应用bs4获得到这一标识及其它的有关信息内容

from bs4 import BeautifulSoup
content = """Python"""
#建立beautifulSoup目标
soup = BeautifulSoup(
 content, #HTML文本文档标识符串
 'html.parser' #特定HTML分析器
#检索连接点 英语的语法为find_all(name,attrs,string)
#检索全部标识为a的连接点
node = soup.find_all("a")
#检索全部标识为a,连接合乎/方式的连接点
node = soup.find_all("a",href="/")
#还能够用正则表达式
"))
#加了r,有反斜线的情况下大家仅用写一个无需写2个
#检索全部标识为a,class为abc,文本为Python的连接点
node = soup.find_all("a",class_="abc",string="Python")
#class_="abc"加了下横线是由于class是重要字,以便防止矛盾
#浏览连接点信息内容
print(node.name) #获得标识名字
print(node['href']) #获得查出的连接点特性值
print(node.get_text()) #获得连接中的文本

 

find_all会检索到全部合乎的连接点;find总是找一个

find_all回到一数量组里边包括好几个目标;find只回到一个目标

假如有好几个标准比如,title为container,class为main-box的一个div要想获得这一连接点能够那样

div_tag = soup.find("div",attrs={"title":"container","class":"main-box"})

 

下边再举一个案子:

import re
from bs4 import BeautifulSoup
#实验beautiful Soup
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 您好吗; and they lived at the bottom of a well.

...

 

假如想将一个连接点和里边的內容变为标识符串能够

cont_div = soup.find("div",class_="cont")
cont_div = str(cont_div)

 

bs4的一些别的实际操作

开启html文档开展分析:

from bs4 import BeautifulSoup
')) #还可以传到文档目标
print(soup.prettify) #回到整段HTML內容
print(soup.title) #显示信息

xxx,但实际上他回到的是一个连接点目标 print(soup.title.name) #回到标识名 print(soup.title.string) #获得title标识的innerHTML內容 print(soup.a.string) #假如他有好几个a标识,那样写便会获得第一个a标识 for items in soup.body.contents: print(item) print(item.name) #contents特性会回到这一原素下的全部的子原素连接点,包含换行也算子连接点 #可是不包括子孙后代连接点

 

还可以应用css挑选器获得连接点: 应用select()方式

print(soup.select(".sister")) #获得class为sister的连接点,回到的是一个目录包括着连接点目标。有点儿相近jQuery的CSS挑选器
print(soup.select("#link1")) #依据id找,回到的還是个目录
print(soup.select("p a")) #找p下的子原素的a标识
#总之jQuery的挑选器能够如何写,这儿就可以如何写
#由于回到的目录中是连接点目标,因此这种连接点目标还能够再次用select()来找里边的原素
sister = soup.select(".sister")
sister_son_p = sister[0].select("p")

PS:假如应用了select所获得到的连接点想再往里获得连接点只有用select和find方式 而不可以用findall方式

那麼beautifulSoup说到这儿就类似够用了,假如想更加深入入掌握能够查询bs4官方网站出示的文本文档

张柏沛IT技术性blog > Python网络爬虫新手入门(二) 应用BeautifulSoup分析网页页面內容

点一下拷贝转截该一篇文章



联系我们

全国服务热线:4000-399-000 公司邮箱:343111187@qq.com

  工作日 9:00-18:00

关注我们

官网公众号

官网公众号

Copyright?2020 广州凡科互联网科技股份有限公司 版权所有 粤ICP备10235580号 客服热线 18720358503

技术支持:制作h5的免费软件