Python3.6:bs4解析html基礎用法
阿新 • • 發佈:2017-12-29
實用 pri safari -a webkit con 內容 like div
Python3.6:bs4解析html基礎用法
代碼:
import urllib.request from bs4 import BeautifulSoup import re url = r‘http://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基礎用法