爬虫入门实例(三)

import requests
import re
from bs4 import BeautifulSoup
r = requests.get("http://python123.io/ws/demo.html")
# 借用小嵩老师提供的网址
print(r) #查看response对象的状态码
demo = r.text
print(demo) # 输出文档内容
soup = BeautifulSoup(demo, "html.parser")
for tag in soup.find_all(id = re.compile('link')):
    print(tag)
# 查找标签属性id中含有link字符串的标签,模糊查找
# for tag in soup.find_all(id='link'):
#     print(tag)
# 精确查找,id必须为link,没有多余前缀或后缀
for tag in soup.find_all(re.compile('b')):
    pass
    #print(tag.name)
# 输出以字母b开头的标签,用'^b'来替换,输出结果不变
for tag in soup.find_all(True):
    print(tag.name)
# 输出所有标签,只输出标签名,不输出标签内容;
# 若想输出标签内容,可用前一篇.children、.next_sibling等进行输出
print(soup.find_all(['a','b']))
# 以列表的形式输出a,b标签
print(soup.find_all('a'))
# 可以通过单独输出查看a标签与同时查询a,b标签的区别
# find_all( name , attrs , recursive , string , **kwargs )
# find_all() 方法搜索当前tag的所有tag子节点,并判断是否符合过滤器的条件
# <>.find_all(name,attrs,recursive,string,##kwargs)
# 返回一个列表类型,存储查找的结果
# name:对标签名称的检索字符串
# attrs:对标签属性值得检索字符串,可标注属性检索,
# 标签name中含有attrs.也可直接对属性操作,精确查找
print(soup.find_all('b', recursive=False))
# recursive:是否对子孙全部检索,默认值时true
print(soup.find_all(string = re.compile("python")))
# string:<>……</>中字符串区域的检索字符串,精确检索

猜你喜欢

转载自blog.csdn.net/dldl1718/article/details/86612452
今日推荐