爬虫介绍
這里寫目錄標題
- 1 爬蟲介紹
- 1.1 什么是爬蟲
- 1.2 爬蟲的作用
- 1.3 業界情況
- 1.4 合法性
- 1.5 反爬
- 1.6 爬蟲的本質
- 1.7 爬蟲的基本流程
- 1.8 爬蟲的基本手段
- 1.9 為什么是python
1 爬蟲介紹
1.1 什么是爬蟲
爬蟲更官方點的名字叫數據采集,英文一般稱作spider
網絡爬蟲也叫網絡蜘蛛,如果把互聯網比喻成一個蜘蛛網,那么蜘蛛就是在網上爬來爬去的蜘蛛,
爬蟲程序通過請求URL地址,根據響應的內容進行解析采集數據。
如果響應內容是HTML,分析其DOM樹結構,進行DOM解析,或者是正則匹配。
如果響應內容是XML/JSON數據,則可以轉換數據對象,然后對再對數據對象進行解析。
網絡爬蟲在本質上就是從互聯網上爬取數據!
爬蟲更官方點的名字叫數據采集,英文一般稱作spider
網絡爬蟲也叫網絡蜘蛛,如果把互聯網比喻成一個蜘蛛網,那么蜘蛛就是在網上爬來爬去的蜘蛛,
爬蟲程序通過請求URL地址,根據響應的內容進行解析采集數據。
如果響應內容是HTML,分析其DOM樹結構,進行DOM解析,或者是正則匹配。
如果響應內容是XML/JSON數據,則可以轉換數據對象,然后對再對數據對象進行解析。
網絡爬蟲在本質上就是從互聯網上爬取數據!
1.2 爬蟲的作用
現如今大數據時代已經到來,網絡爬蟲技術成為這個時代不可或缺的一部分,企業需要數據來分析
用戶行為,來分析自己產品的不足之處,來分析競爭對手的信息等等
通過有效的爬蟲手段批量的從互聯網上采集數據,它不僅可以降低人工成本,還可以提高有效數據
量,給運營/銷售部門以數據支撐,從而加快企業的產品發展。
1.3 業界情況
目前互聯網產品競爭激烈,業界大部分公司都會使用爬蟲技術對競品產品的數據進行挖掘、采集和
大數據分析,這是商業競爭的必備手段,所以很多公司都設立了“爬蟲工程師”的工作崗位。
1.4 合法性
爬蟲是利用程序進行批量爬取網頁上的公開信息,也就是前端顯示的數據信息。因為信息是完全公
開的,所以是合法的。其實就像瀏覽器一樣,瀏覽器是解析響應內容并渲染為頁面,而爬蟲是解析
響應內容并采集想要的數據再進行存儲。
魔蝎被查
https://baijiahao.baidu.com/s?id=1643978804427289836&wfr=spider&for=pc
爬蟲究竟是合法還是違法
一段代碼導致200人公司被抓:https://www.cnblogs.com/ityouknow/p/11684770.html
爬蟲究竟是合法還是違法:https://www.cnblogs.com/ityouknow/p/11697613.html
豆瓣rebots:https://www.douban.com/robots.txt
rebots文件告訴爬蟲什么東西可以訪問,什么東西不能訪問
從rebots中還能獲取網站地圖:https://www.douban.com/sitemap_index.xml
1.5 反爬
爬蟲很難完全的制止,道高一尺魔高一丈,這是一場沒有硝煙的戰爭,即碼農VS碼農。反爬蟲一些
手段如下所示:
(1)合法檢測:請求校驗(例如用請求頭信息中的useragent屬性來判斷是否為一個瀏覽器,例
如用請求頭信息中的referer屬性來確定上一次的跳轉頁面等)。
(2)小黑屋:利用IP地址限制用戶的請求頻率,或者直接攔截(即封IP)。
(3)投毒:是反爬蟲的最高境界,即可以不用攔截爬蟲,因為攔截是一時的,而投毒則可以返
回虛假數據(即構造一個含有虛假數據的頁面返回給你),可以誤導競品的決策。
(4)輸入驗證碼:即判斷當前的訪問用戶是一個真人還是一個爬蟲機器人。
知乎有哪些有趣的反爬蟲手段:https://www.zhihu.com/question/58342241
12306的驗證碼
1.6 爬蟲的本質
爬蟲的本質就是自動化的去模擬正常人類發起的網絡請求,然后獲取網絡請求所返回的數據。 跟我
們人手動去點擊一個連接,訪問一個網頁獲取數據,并沒有什么本質的區別。
1.7 爬蟲的基本流程
爬蟲的基本流程,如下所示:
(1)準備工作,通過瀏覽器查看分析目標網頁,學習編程基礎規范。
(2)獲取數據,通過HTTP庫向目標站點發起請求,請求可以包含額外的header等信息,如果服
務器能正常響應,會得到一個Response,便是所要獲取的頁面內容。
(3)解析內容,得到的內容可能是HTML,json等格式,可以使用頁面解析庫、正則表達式等進
行解析
(4)保存數據,保存形式多樣,可以存為文本,也可以保存到數據庫,或者保存特定格式的文
件
1.8 爬蟲的基本手段
破解請求限制
請求頭設置,如將請求頭信息中的useragent屬性設置為有效客戶端。
根據實際情況,控制請求頻率。
IP代理。
簽名/加密參數從HTML/Cookie/JS分析。
破解登錄授權
請求帶上用戶Cookie信息(身份認證信息)。
破解驗證碼
簡單的驗證碼可以使用識圖讀驗證碼第三方庫。
解析數據
HTML的DOM解析。
正則匹配,通過的正則表達式來匹配想要爬取的數據,如:有些數據不是在HTML標簽里,而
是在HTML的標簽的JS變量中。
使用第三方庫解析HTML或DOM,例如使用類jQuery的庫。
數據字符串。
正則匹配(根據情景使用)。
轉成JSON/XML對象進行解析。
1.9 為什么是python
爬蟲可以用各種語言寫, C++, Java都可以, 為什么要Python?
首先用C++搞網絡開發的例子不多。
Java側重于Web開發。
Python這種稍嚴謹而流行庫又非常多的語言, 都大大弱化了針對計算機運行速度而打造的特
性, 強化了為程序員容易思考而打造的特性。所以我們選擇Python。
Python的優勢
Python語法易學,容易上手。
社區活躍,實現方案多可參考。
各種功能包豐富。
少量代碼即可完成強大功能。
總結
- 上一篇: ajax跨域实现
- 下一篇: 数据结构--------------静态