1. 程式人生 > >Python3.6:bs4解析html基礎用法

Python3.6:bs4解析html基礎用法

實用 pri safari -a webkit con 內容 like div

Python3.6:bs4解析html基礎用法

代碼:

import urllib.request
from bs4 import BeautifulSoup
import re

url = rhttp://fund.eastmoney.com/340007.html?spm=search
headers = {
    User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36}
req = urllib.request.Request(url=url, headers=headers)
res 
= urllib.request.urlopen(req) html = res.read().decode(utf-8) # html字符串創建BeautifulSoup對象 soup = BeautifulSoup(html, "html.parser") #或者soup = BeautifulSoup(html, "html5lib")
#輸出第一個 title 標簽
print(soup.title)
#輸出第一個 title 標簽的標簽名稱
print(soup.title.name)
#輸出第一個 title 標簽的包含內容
print(soup.title.string)
#輸出第一個 title 標簽的父標簽的標簽名稱 print(soup.title.parent.name)
#輸出第一個  p 標簽
print(soup.p)
#輸出第一個  p 標簽的 class 屬性內容
print(soup.p[class])
#輸出第一個  a 標簽的  href 屬性內容
print(soup.a[href])
#輸出第一個  p 標簽的所有子節點
print(soup.p.contents)
#輸出第一個  a 標簽
print(soup.a)
#輸出所有的  a 標簽,以列表形式顯示
print(soup.find_all(a))
#
輸出第一個 id 屬性等於 gz_gszze 的標簽 print(soup.find(id=gz_gszze)) #輸出第一個 id 屬性等於 gz_gszze 的標簽的文本內容 print(soup.find(id=gz_gszze).get_text())
#獲取所有文字內容
print(soup.get_text())
#輸出第一個  a 標簽的所有屬性信息
print(soup.a.attrs)
#循環a標簽
for link in soup.find_all(a):
    #獲取 link 的  href 屬性內容
    print(link.get(href))

#對soup.p的子節點進行循環輸出    
for child in soup.p.children:
    print(child)

#正則匹配,標簽名字中帶有sp的標簽
for tag in soup.find_all(re.compile("sp")):
    print(tag.name)
#按照CSS類名搜索tag的功能非常實用,但標識CSS類名的關鍵字 class 在Python中是保留字,使用 class 做參數會導致語法錯誤.從Beautiful Soup的4.1.1版本開始,可以通過 class_ 參數搜索有指定CSS類名的tag
#查找dl標簽class為dataItem02的所有dl標簽
for tag in soup.find_all("dl", class_="dataItem02"):
    print(tag.name)
#或者
for tag in soup.find_all(dl, attrs={class: "dataItem02"}):
    print(tag.name)

Python3.6:bs4解析html基礎用法