加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

“美味汤”BeautifulSoup库的使用学习(5)—基于bs4库的html标记内容查找方法(find_all)

(2019-02-06 15:05:59)
分类: “美味汤”BeautifulSoup库
实例:提取html中的所有URL链接
思路:1)搜索到所有的a标签
  soup = BeautifulSoup(demo,"html.parser")
for alink in soup.find_all("a"):
print(alink.get("href"))
.find_all()方法
.find_all(name,attrs,recursive,string,**kwargs)
返回存储查找结果的列表

1.name要检索的标签名字符串,同时查找a标签,b标签find_all(["a","b"])
如果检索的字符串是True,会找到所有标签
for tag in soup.find_all(True):
                 print(tag)
正则表达式re.compile("b")  ,返回所有以“b”开头的信息,把正则表达式返回的信息作参数查找

  for tag in soup.find_all(re.compile("b")):
print(tag.name)
2.attrs 对标签属性值的检索字符串,标注属性来检索

 for tag in soup.find_all("a","py1"):
print(tag)
       直接检索id属性和确定值
             soup.find_all(id="link")

   直接检索id属性和不确定值,正则表达式
          soup.find_all(id=re.compile("link"))
3.recursive 布尔值是否对子孙全部检索,false值只检索儿子
          print(soup.find_all("a",recursive=False))
4.string 标签之间的内容检索字符串,只有输入检索标签之间全部值才能检索到,除非使用正则表达式
         print(soup.find_all(string = "This is a python demo page"))
      print(soup.find_all(string = re.compile("This is a python") ))

简写方式( .find_all = () )
 tag.find_all() = tag()
      soup.find_all() = soup()
拓展方法,有s的返回列表没有s的返回一个字符串
“美味汤”BeautifulSoup库的使用学习(5)—基于bs4库的html标记内容查找方法(find_all)
总结:
主要使用bs4库的find_all()方法提取html文档信息,7个拓展方法,搭配re库的正则表达式方法.compile("字符串"),可以搜索模糊字符串

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有