Parsing HTML Web Pages - Basics 01

from bs4 import BeautifulSoup
import requests
import re

url='https://www.hao123.com/?from=offline_host'
response=requests.get(url)
# print(response.text)
soup=BeautifulSoup(response.text,'html.parser')
print('1.Tap的例子:获取title')
print(soup.title)
print('2.NavigableString的例子:获取title的string内容和div的属性')
print(soup.title.string)
print(soup.div.attrs) #获取标签中的所有属性,病返回一个字典
print('3.BeautifulSoup的例子:获取整体html文档的name')
print(soup.name)
print('4.Comment的例子:获取a的string')
print(soup.a.string)


#1.使用find_all()搜索
t_list=soup.find_all('a') #字符串过滤,对整个文档的字符串进行过滤,只有含有单个'a'的内容才会被筛选出来
print(t_list)
t_list2=soup.find_all(re.compile('a'))  #正则表达式搜索,返回所有含有'a'的标签内容
# print(t_list2)

#2.使用kwargs制定参数搜索
print('-------------(1)显示id="topbeWrapper"的')
t_list3=soup.find_all(id='topbeWrapper')
for item in  t_list3:
    print(item)
print('-------------(2)只要有class的就显示出来')
t_list4=soup.find_all(class_=True)
for item in t_list4:
    print(item)
print('-------------(3)指定查找href="javascript:;"')
t_list5=soup.find_all(href='javascript:;')
for item in t_list5:
    print(item)

#3.text参数搜索(一般使用列表和正则表达式搜索)
t_text=soup.find_all(text=['财经','游戏'])
t_text01=soup.find_all(text=re.compile('\d_48'))

for item in t_text:
    print(item)
for item in t_text01:
    print(item)

#4.设置limit参数搜索(如果我们使用soup.find_all()筛选出来的结果是很多很多的,但是我们只需要10个结果,就可以设置limit=10来满足我们的需求)
t_text10=soup.find_all('a',limit=10)
for item in t_text10:
    print(item)



#5 CSS选择器(通过CSS选择器来进行文档搜索就很丰富了,可以通过标签、类名、id名、标签属性和子标签等方式来进行搜索,不一样的是我们会使用soup.select()方法来筛选
print('----------(1)通过标签访问')
t_css=soup.select('title') # 通过标签访问
for item in t_css:
    print(item)
print('----------(2)通过类名访问')
t_css2=soup.select('.col')
for item in t_css2:
    print(item)
print('-----------(3)通过id访问')
print('-----------(4)通过标签的属性访问')
t_css4=soup.select('button[type="submit"]')
for item in t_css4:
    print(item)
print('-----------(5)通过子标签访问')
t_css5=soup.select('div>button')
for item in t_css5:
    print(item)

Guess you like

Origin blog.csdn.net/Darin2017/article/details/131188915