好久沒使用go語言做個專案了,上午閒來無事花了點時間使用golang來爬取豆瓣top電影,這裡我沒有用colly框架而是自己設計簡單流程。mark一下
思路定義兩個channel,乙個channel存放web網頁源內容,另乙個存放提取後的有效內容。
多個goroutine併發爬取網頁源內容放到存放web網頁的channel裡,再啟動goroutine去存放web網頁的channel裡讀取內容,讀取到內容後啟動goroutine去提取有效值存放到channel裡,最後持久化寫入本地檔案(檔案寫操作並非執行緒安全所以這裡我沒有使用多goroutine)。
**具體**如下,如果想執行看效果需要go get github.com/puerkitobio/goquery
安裝三方包或者直接點這裡拉取**設定gopath之後便可執行
通過多個goroutine併發執行爬取操作,channel存放要爬取url內容和爬取結果
這樣只需要設計爬取函式和提取函式
*/func get_web_content(url string, chan_web chan string)
body, err := ioutil.readall(resp.body)
if err != nil
chan_web <- string(body)
}func extract_valid_content(body string, chan_r chan byte)
dom.find("ol.grid_view div.item").each(func(i int, selection *goquery.selection)
chan_r <- json_str
})}func main()
go func()
go extract_valid_content(web_content, chan_r)
} }()
flag := false
to := time.newtimer(time.second * 5)
if err != nil
defer file.close()
for
to.reset(time.second * 5)
select
} fmt.println("end")
}
爬蟲 豆瓣電影爬取案例
直接上 僅供參考。目標爬取資料是某地區的 正在上映 部分的資料,如下圖 完整 如下 usr bin python coding utf 8 from lxml import etree import requests 目標 爬取豆瓣深圳地區的 正在上映 部分的資料 注意點 1 如果網頁採用的編碼方式...
Python爬蟲之爬取豆瓣電影(一)
最近閒來無事 學習python爬蟲,爬取豆瓣電影 開啟豆瓣電影 按f12 重新整理豆瓣網頁,會發現network的xhr中有鏈結 貼上出鏈結 會出現如下json 說明這個是每個分類電影的標籤,是乙個get請求的api,如果在python中載入成字典,則包含以惡個tags,對應的值是乙個列表,裡面的每...
Python爬蟲 爬取豆瓣電影(二)
檢視上乙個專案,請看 上乙個專案中獲取到了一定數量的電影url資訊,這次來獲取單個電影的電影詳情。對傳遞的url返回乙個名為soup的beautifulsoup物件 defget url html soup url header request body.get header proxies req...