摘要:用途廣泛,可以用于數據挖掘監測和自動化測試。運行下,發現數據全部存到了數據庫中。提供了一些接口來查看項目爬蟲情況,以及執行或者停止執行爬蟲。完成小程序所需要的所有接口的開發,以及使用定時任務執行爬蟲腳本。
過完年回來,業余時間一直在獨立開發一個小程序。主要數據是8000+個視頻和10000+篇文章,并且數據會每天自動更新。
我會整理下整個開發過程中遇到的問題和一些細節問題,因為內容會比較多,我會分成三到四篇文章來進行,本文是該系列的第一篇文章,內容偏python爬蟲。
本系列文章大致會介紹一下內容:
數據準備(python的scrapy框架)
接口準備(nodejs的hapijs框架)
小程序開發(mpvue以及小程序自帶的組件等)
部署上線(小程序安全域名等配置以及爬蟲/接口等線上部署維護)
數據獲取
數據獲取的方法有很多種,這次我們選擇了爬蟲的方式,當然寫一個爬蟲也可以用不同的語言,不同的方式。之前寫過很多爬蟲,這次我們選擇了python的scrapy庫。關于scrapy,百度百科解釋如下:
Scrapy,Python開發的一個快速、高層次的屏幕抓取和web抓取框架,用于抓取web站點并從頁面中提取結構化的數據。Scrapy用途廣泛,可以用于數據挖掘、監測和自動化測試。
學習scrapy,最好的方式就是先閱讀一遍文檔(Scrapy 1.6 documentation),然后照著文檔里的例子寫一寫,慢慢就熟悉了。里面有幾個很重要的概念是必須要理解的:
Items
官方對items的定義是“The main goal in scraping is to extract structured data from unstructured sources, typically, web pages.”,個人理解為數據結構,也就是要爬取數據的字段,最好能和數據庫字段對應,便于入庫。
Spiders
“Spiders are classes which define how a certain site (or a group of sites) will be scraped, including how to perform the crawl (i.e. follow links) and how to extract structured data from their pages (i.e. scraping items). ”,也就是爬蟲比較核心的內容,定義爬蟲的方式,一些策略,以及獲取那些字段等等。
pipelines
“After an item has been scraped by a spider, it is sent to the Item Pipeline which processes it through several components that are executed sequentially.”,pipelines也就是我們爬蟲拿到數據后要進行的處理操作,比如寫入到文件,或者鏈接數據庫,并且保存到數據庫等等操作,都可以在這里進行操作。
Selectors
“When you’re scraping web pages, the most common task you need to perform is to extract data from the HTML source. ”,這部分就是如何解析html,從爬取到的html文件中解析出所需的數據,可以使用BeautifulSoup、lxml、Xpath、CSS等方法。
幾個重要的部分,在上面進行了一些說明。
準備好環境(python3/scrapy等),我們就可以來寫一個爬蟲項目了。
爬取的內容來自于https://www.jqhtml.com這個網站。
創建項目scrapy startproject jqhtml
修改items?
添加爬蟲爬蟲爬蟲
編寫pipeline 修改配置文件?這樣我們就順利地完成了爬蟲項目的編寫。運行下,發現數據全部存到了數據庫中。
scrapy爬蟲項目的部署
scrapy爬蟲項目的部署,我們使用官方的scrapyd即可,使用方法也比較簡單,在服務器上安裝scrapyd并且啟動即可,然后在本地項目中配置deploy的路徑,本地安裝scrapy-client,使用命令deploy即可部署到服務器。
scrapyd提供了一些api接口來查看項目爬蟲情況,以及執行或者停止執行爬蟲。
這樣我們就很方便的調這些接口來管理我們的爬蟲任務了。
注意點:
如何部署scrapyd到服務器
如何設置scrapyd為系統后臺服務及系統啟動項
NEXT
下一篇,我們會介紹并且使用很火的一個nodejs后臺api庫 - hapijs。完成小程序所需要的所有接口的開發,以及使用定時任務執行爬蟲腳本。????
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/43638.html
摘要:,引言最近一直在看爬蟲框架,并嘗試使用框架寫一個可以實現網頁信息采集的簡單的小程序。本文主要介紹如何使用結合采集天貓商品內容,文中自定義了一個,用來采集需要加載的動態網頁內容。 showImg(https://segmentfault.com/img/bVyMnP); 1,引言 最近一直在看Scrapy 爬蟲框架,并嘗試使用Scrapy框架寫一個可以實現網頁信息采集的簡單的小程序。嘗試...
摘要:開源即時網絡爬蟲項目將與基于的異步網絡框架集成,所以本例將使用采集淘寶這種含有大量代碼的網頁數據,但是要注意本例一個嚴重缺陷用加載網頁的過程發生在中,破壞了的架構原則。 showImg(https://segmentfault.com/img/bVyzAX); 1,引言 本文講解怎樣用Python驅動Firefox瀏覽器寫一個簡易的網頁數據采集器。開源Python即時網絡爬蟲項目將與S...
摘要:分布式爬蟲框架詳解隨著互聯網技術的發展與應用的普及,網絡作為信息的載體,已經成為社會大眾參與社會生活的一種重要信息渠道。下載器中間件位于引擎和下載器之間的框架,主要是處理引擎與下載器之間的請求及響應。 scrapy-redis分布式爬蟲框架詳解 隨著互聯網技術的發展與應用的普及,網絡作為信息的載體,已經成為社會大眾參與社會生活的一種重要信息渠道。由于互聯網是開放的,每個人都可以在網絡上...
閱讀 5200·2021-10-15 09:42
閱讀 1606·2021-09-22 16:05
閱讀 3261·2021-09-22 15:57
閱讀 3396·2019-12-27 12:06
閱讀 967·2019-08-29 15:16
閱讀 2880·2019-08-26 12:24
閱讀 380·2019-08-26 12:02
閱讀 1885·2019-08-23 16:00