我們已經從信息時代跨入了大數據時代,不管是養豬還是開網店,都是要基于信息和大數據的,嗯!
信息時代到大數據時代,信息量越來越大,互聯網在急速膨脹,我們可以獲取大量的信息,如何有效地收集、提取和利用信息成為了一個巨大的挑戰。
搜索引擎成為了我們檢索信息的入口,網絡爬蟲就是搜索引擎的重要組成部分。同時,網絡爬蟲也是我們從大數據中提取有價值信息的重要方式。
1、什么是爬蟲
按照一定規則,自動抓取網絡信息的機器人。搜索引擎需要收錄大量的網站網頁,并對網頁按照信息進行索引,這樣,用戶使用搜索引擎檢索的時候就能得到一個結果集。這些網頁就是通過 網絡爬蟲爬取的。爬蟲 爬取頁面,然后對頁面信息進行處理和索引,供搜索引擎使用,這種類型的爬蟲是通用型爬蟲。
通用型爬蟲之外還可以編寫聚焦型爬蟲,爬取指定主題的相關網頁,用來做主題相關的數據分析。爬蟲還可以抓取特定網站和應用的數據,分析網站和應用的情況等。
爬蟲是個機器人程序,需要模擬用戶的操作和訪問方式,在模擬的基礎上實現自動化的訪問。網絡爬蟲要做的,簡單來說,就是實現瀏覽器的功能。通過指定url,直接返回給用戶所需要的數據, 而不需要一步步人工去操縱瀏覽器獲取。
2、通用型網絡爬蟲
搜索引擎的好壞很大程度上取決于爬蟲系統的工作結果,爬蟲收集網頁、提取信息、進行信息索引,SEO優化,也就是需要對主流搜索引擎的爬蟲友好,并且突出頁面關鍵字信息給爬蟲。
3、特定功能的爬蟲
對于特定類型的爬蟲,可以有很多用途,比如:各種類型的投票。。。;自動的搶票功能。。。;輿情監控;行業咨詢報告等
投票搶票在工作中如果不是特定類型的工作,是沒有太大用途的,但是行業咨詢報告,在決策中是很有用途的,不管是針對一個行業還是針對一個公司、一個應用,都可以進行數據分析,以便作出相應決策來應對。下面介紹使用的兩種開發方式,滿足不同場景的數據需求。
4、在框架(scrapy)中開發
一般我們需要開發的爬蟲屬于特定功能爬蟲,一般是用來收集數據,做數據分析的。Python處理HTTP請求、HTML、json、文本數據還是相當有優勢的,所以選擇使用 python 的爬蟲框架來開發爬蟲。
Scrapy 是為了爬取網站數據,提取結構性數據而編寫的應用框架,scrapy 用途廣泛,可以用于數據挖掘、監測和自動化測試等。
整體架構大致如下:
1、通過繼承 spider,實現 parse 方法,就可以實現網頁下載,如果 parse 里面返回 Request(可以制定 parse 方法)可以實現二級頁面的抓取和分析。
2、抓取網頁后,在parse 里面 可以通過 xpath 定位頁面元素,抓取頁面信息
3、通過item 存儲 需要獲取的數據對象,在parse 中根據頁面信息生成item
4、抓取頁面后進入 pipeline,處理 item,保存數據或者進行計算等
通過框架抓取頁面、分析頁面元素方便,可以高效地開發特定功能的爬蟲。
5、用 python requests 開發
有些情況,需要抓取和分析的頁面可以通過接口獲得,頁面比較有規律,這個時候沒必要用到爬蟲框架,使用 requests 就可以方便地完成數據抓取。Requests 是python 中的非轉基因 HTTP 庫,人類可以安全使用 ??。Requests 可以方便地實現接口調用、解析json數據、獲取信息,開發和運行迅速。
個人認為,爬蟲技術是一門非常有用的技術,這么技術建立在 xml、html語言結構、http協議,xpath 處理等基礎之上,通過學習爬蟲技術可以對相應的底層知識了解更深,再深入還有分布式爬蟲等技術。爬蟲等用途也比較廣泛,在工作和學習中有很大的幫助。
以上,是工作中遇到的問題和相關的思考、實踐,嗯,加油