看排版更好的原文地址php
BeautifulSoup庫是解析、遍歷、維護「標籤樹」的功能庫css
sudo pip install beautifulsoup4
# coding: UTF-8
import requests
url="http://www.baidu.com"
r=requests.get(url)
r.encoding=r.apparent_encoding
print r.text
結果:
上面的代碼之前寫過,就是獲取百度的源代碼。如今咱們就經過這個源代碼來學習beautifulsoup庫的使用吧html
對源代碼進行美化(格式化)
# coding: UTF-8
import requests
from bs4 import BeautifulSoup
url="http://www.baidu.com"
r=requests.get(url)
r.encoding=r.apparent_encoding
#將源代碼保存到變量s裏面
s=r.text
soup=BeautifulSoup(s,"html.parser")
s=soup.prettify()
print s
結果:(確實好看多了)
from bs4 import
引入BeautifulSoup類python
代碼中構建了一個BeautifulSoup類型的對象soup,參數爲網頁源代碼和」html.parser」,代表是解析html的。bash
soup=BeautifulSoup(s,"html.parser")
上面的代碼是經過字符串裏面的源代碼構建BeautifulSoup類對象,還能夠像下面這樣直接使用本地html文件建立BeautifulSoup類對象。app
soup=BeautifulSoup(open("a.html"),"html.parser")
print soup.title
結果:
python爬蟲
print soup.a
結果:
tips:有多個時只返回第一個
* name
顯示標籤的名字學習
print soup.a.name
int soup.a.parent.name
print soup.a.parent.parent.name
print soup.a.parent.parent.parent.parent.parent.name
print soup.a.attrs
若是要獲取字典中的一個值,能夠經過:ui
print soup.a.attrs["class"]
class是字典的一個key,返回它對應的value
lua
print soup.a.attrs["href"]
```獲取連接
```tips:在python裏面能夠用type()獲取變量的類型``` * string
獲取尖括號之間的字符串
<div class="se-preview-section-delimiter"></div>
print soup.a.string
「`
print soup.a.string
是一個bs4.element.NavigableString類型的對象
爲了便於比較,附a的圖:
子節點的列表,list類型
soup=BeautifulSoup("<body><p>1111</p><p>2222</p></body>","html.parser")
print soup.body.contents
獲得列表元素:
list=soup.body.contents
print list[1]
tips:index從0開始,list[0],list[1]
獲得標籤的子節點,爲listiterator(迭代)類型
for child in soup.body.children:
print child
遍歷兒子節點
節點的父親標籤
先輩標籤的迭代類型
(同一個父節點的標籤之間)
http://hjwblog.com/2018/03/22/%E5%AE%89%E5%8D%93/%E5%AE%89%E5%8D%93%E5%BC%80%E5%8F%91-intent%E5%9C%A8Activity%E4%B9%8B%E9%97%B4%E6%95%B0%E6%8D%AE%E4%BC%A0%E9%80%92/