對網頁結構和 html 有了一些基本認識之後, 咱們就能用 python 來爬取這個網頁的一些基本資訊. 首先要作的, 是使用 python 來登陸這個網頁, 並列印出這個網頁 html 的 source code. 注意, 由於網頁中存在中文, 為了正常顯示中文, read() 完之後, 咱們要對讀出來的文字進行轉換, decode() 成能夠正常顯示中文的形式.we
rom urllib.request import urlopen
html = urlopen(
"").read().decode('utf-8')
print(html)
print 出來就是下面這樣啦. 這就證實了咱們可以成功讀取這個網頁的全部資訊了. 但咱們尚未對網頁的資訊進行彙總和利用. 咱們發現, 想要提取一些形式的資訊, 合理的利用 tag 的名字十分重要.正規表示式
這是乙個在 莫煩python
爬蟲教程 中的簡單測試.
咱們了解了網頁 (html) 的基本構架, 知道了爬網頁就是在這個構架中找到須要的資訊. 那麼找到須要的資訊時, beautifulsoup 就是乙個找資訊好幫手. 它能幫你又快有準地找到資訊. 大大簡化了使用難度.
咱們總結一下爬網頁的流程, 讓你對 beautifulsoup 有乙個更好的定位.
選著要爬的** (url)
使用 python 登陸上這個** (urlopen等)
讀取網頁資訊 (read() 出來)
將讀取的資訊放入 beautifulsoup
使用 beautifulsoup 選取 tag 資訊等 (代替正規表示式)
初學的時候老是搞不懂這些包是幹什麼的, 如今你就能理解這個 beautifulsoup 究竟是幹什麼的了.
等什麼, 知道 beautifulsoup 這麼方便, 咱們就趕忙裝乙個吧. 安裝的步驟很簡單, 用 pip 就能輕鬆安裝.
# python 2+
pip install beautifulsoup4
# python 3+
pip3 install beautifulsoup4
注意在名字後面還有個 「4」, 多是表明第4版吧. 若是你在安裝的時候遇到任何問題, 請參考他們官網上的解決方案.
此次咱們仍是爬一爬上次爬的那個基本網頁. beautifulsoup 使用起來很是簡單, 咱們先按常規讀取網頁.
from bs4 import beautifulsoup
from urllib.request import urlopen
html = urlopen("").read().decode('utf-8')
print(html)
回顧一下, 每張網頁中, 都有兩大塊, 乙個是 , 乙個是 , 咱們等會用 beautifulsoup 來找到 body 中的段落
和全部連線 .
這是乙個在 莫煩python
爬蟲教程 中的簡單測試.
讀取這個網頁資訊, 咱們將要載入進 beautifulsoup, 以 lxml 的這種形式載入. 除了 lxml, 其實還有不少形式的解析器, 不過你們都推薦使用 lxml 的形式. 而後 soup 裡面就有著這個 html 的全部資訊. 若是你要輸出
soup = beautifulsoup(html, features='lxml')
print(soup.h1)
""""""
print('\n', soup.p)
"""這是乙個在 莫煩python
爬蟲教程 中的簡單測試.
"""
若是網頁中有過個一樣的 tag, 好比連線 , 咱們可使用 find_all() 來找到全部的選項. 由於咱們真正的 link 不是在 中間 , 而是在 裡面, 也能夠看作是 的乙個屬性. 咱們能用像 python 字典的形式, 用 key 來讀取 l[「href」].
"""
爬蟲教程
"""all_href = soup.find_all('a')
all_href = [l['href'] for l in all_href]
print('\n', all_href)
# ['', 'tutorials/scraping']
懂得這些仍是遠遠不夠的, 真實狀況每每比這些複雜. beautifulsoup 還有不少其餘的選擇」加強器」. 下次, 咱們來了解一些 css 的概念, 用 beautifulsoup 加上 css 來選擇內容. 網頁爬蟲php,php網頁爬蟲
網頁爬蟲 最簡單的使用,屬性都採用預設值 curl curl init output curl exec curl curl close curl echo output 稍微複雜一點的,對頁面進行操作 curl curl init curl setopt curl,curlopt url,可以動態...
網頁爬蟲 靜態網頁《一》
一 通過jsoup請求獲取 網頁審查元素。eg request path document doc jsoup.connect request path get 二 檢視需要扣取資料的標籤,通過日誌輸出 doc的body。eg log.v tag,body doc.body 三 檢視列印的日誌,找到...
android ios 網頁爬蟲
最近專案中需要用到公積金相關的資料,但是公積金那邊又沒有提供相關的開放介面供呼叫,因此動手把公積金的網頁抓下來對資料進行解析,拿到資料。廢話不多說,以昆明公積金為例進行分析下。準備 1.昆明公積金官網 2.抓包工具 httpwatch fiddler 4.html解析jar包 一般 抓資料流程分析 ...