微慑信息网

bs4 采集元素

 

 

https://blog.csdn.net/weixin_30629653/article/details/94979800


写爬虫的时候遇到的:

导入beautifulSoup后,

查找类似<div  class = “abcd”>的时候,

直接使用beautifulsoup的方法:

soup.findall(“div”, class=”abcd”)

这样写的时候回报错,

按照官方的一种方法写在class后加“_“试了试没什么用。虽说不报错,但返回的时空,匹配不到值,

使用另一种方法:

soup.findAll(name=”div”, attrs={“class” :”abcd”}

attrs内应该可以加多个键值对,用逗号隔开应该就可以了,


 

https://blog.csdn.net/qq_34970891/article/details/109340817


 

from bs4 import BeautifulSoup
'''
    1、实例化一个beautifulShop实例对象,并且将页面当中的源码数据加载到当前实例对象当中去
    2、通过beautifulshop对象当中的属性对象来实现对指定的标签对象进行提取操作
    要使用beautifulshop对象来进行标签的解析首先要进行两个插件对象的下载操作
        pip install bs4     pip install lxml
    3、导入from bs4 import BeautifulSoup 包,并进行对象的实例化操作
    4、在使用beautiful shop对象进行实例化的时候既可以将本地的HTML页面对象加载到对象当中也可以将互联网当中
    的资源加载到对象当中去。
    5、soup.select('.qingzhiyu > ul > li')[2] 
    调用选择器对象来实现多层级遍历操作,以此来找到对应的标签对象 >用于访问当前标签对象的子标签,也可以使用空格替代
'''
if __name__ == '__main__':
    fp=open('picturesHtml.html','r',encoding='utf-8')
    #实例化一个beautiful shop对象,并且将本地的HTML文档加载到对象当中去
    soup=BeautifulSoup(fp,'lxml') #以xml的解析方式来实现对指定的xml文件对象进行解析操作
    # print(soup)
    print("当前源码对象当中所出现的第一个a标签对象当中的内容")
    print(soup.a)#用于获取当前加载源码对象当中的第一个a标签对象
    print("当前源码对象当中第一个出现的div标签对象当中的内容")
    print(soup.div)
    print("根据标签当中的class属性值对象来获取指定的div对象")
    print(soup.find('div',class_='qrcode-wrap'))
    print("以列表的形式来获取源码对象当中的指定类型的所有标签对象")
    print(soup.find_all('a'))
    print("调用select函数来选择指定的标签对象")
    #获取符合条件的标签对象并以列表的方式来对该对象进行返回,select当中的参数值可以为类选择器、id选择器、标签选择器
    print(soup.select('.qingzhiyu'))
    print("多层次选择器对象的调用")
    #调用select选择器对象来进行多层次标签对象的选择操作
    print(soup.select('.qingzhiyu > ul > li')[2])
    #获取标签对象当中的文本内容soup.text/string/get_text
    print("直接获取标签对象当中的文本内容数据信息:")
    print(soup.select('.qingzhiyu ul li')[0].text)
    print(soup.select('.qingzhiyu ul li')[1].string)
    #string只能够或者当前标签当中的文本内容,text和get_text可以获取到所有子标签当中的文本内容
    print(soup.find('div',class_='qingzhiyu').text)
    print("soup.find(div',class_='qingzhiyu).get_text():")
    print(soup.find('div',class_='qingzhiyu').get_text())
    #获取指定标签对象当中属性值内容
    print(soup.select('.qingzhiyu ul a')[0]['href'])

 


 

本文标题:bs4 采集元素
本文链接:
(转载请附上本文链接)
http://vulsee.com/archives/vulsee_2021/0718_14270.html
转载请附本站链接,未经允许不得转载,,谢谢:微慑信息网-VulSee.com » bs4 采集元素
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

微慑信息网 专注工匠精神

访问我们联系我们