999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

淺析Python網絡爬蟲

2020-12-14 04:08:57陳超
科學與財富 2020年30期

摘 要:網絡爬蟲(Web Spider)又稱網絡蜘蛛、網絡機器人,是一段用來自動化采集網站數據的程序。如果把互聯網比喻成一個蜘蛛網,那么Spider就是在網上爬來爬去的蜘蛛。Python適用于網站、桌面應用開發,自動化腳本,復雜計算系統,科學計算,生命支持管理系統,物聯網,游戲,機器人,自然語言處理等很多方面。本文簡要介紹對于定向信息采集所需了解基本知識和相關技術,以及python中與此相關的庫,同時提供對與數據抓取有關庫的封裝實現。

一、應用場景

爬蟲技術在科學研究、Web安全、產品研發、輿情監控等領域可以做很多事情。如:在數據挖掘、機器學習、圖像處理等科學研究領域,如果沒有數據,則可以通過爬蟲從網上抓取;在Web安全方面,使用爬蟲可以對網站是否存在某一漏洞進行批量驗證、利用;在產品研發方面,可以采集各個商城物品價格,為用戶提供市場最低價;在輿情監控方面,可以抓取、分析微博的數據,從而識別出某用戶是否為水軍。

二、運行流程

對于定向信息的爬取,爬蟲主要包括數據抓取、數據解析、數據入庫等操作流程。其中:(1)數據抓?。喊l送構造的HTTP請求,獲得包含所需數據的HTTP響應;

(2)數據解析:對HTTP響應的原始數據進行分析、清洗以提取出需要的數據;

(3)數據入庫:將數據進一步保存到數據庫(或文本文件),構建知識庫。

三、相關技術

爬蟲的相關技術包括:

(1)數據抓取:了解HTTP請求和響應中各字段的含義;了解相關的網絡分析工具,主要用于分析網絡流量,如:burpsuit等。一般情況,使用瀏覽器的開發者模式即可;

(2)數據解析:了解HTML結構、JSON和XML數據格式,CSS選擇器、Xpath路徑表達式、正則表達式等,目的是從響應中提取出所需的數據;

(3)數據入庫:MySQL,SQLite、Redis等數據庫,便于數據的存儲;

以上是學習爬蟲的基本要求,在實際的應用中,也應考慮如何使用多線程提高效率、如何做任務調度、如何應對反爬蟲,如何實現分布式爬蟲等等。

四、python相關庫

在爬蟲實現上,除了scrapy框架之外,python有許多與此相關的庫可供使用。其中,在數據抓取方面包括:urllib2(urllib3)、requests、mechanize、selenium、splinter;在數據解析方包括:lxml、beautifulsoup4、re、pyquery。

對于數據抓取,涉及的過程主要是模擬瀏覽器向服務器發送構造好的http請求,常見類型有:get/post。其中,urllib2(urllib3)、requests、mechanize用來獲取URL對應的原始響應內容;而selenium、splinter通過加載瀏覽器驅動,獲取瀏覽器渲染之后的響應內容,模擬程度更高。

具體選擇哪種類庫,應根據實際需求決定,如考慮效率、對方的反爬蟲手段等。通常,能使用urllib2(urllib3)、requests、mechanize等解決的盡量不用selenium、splinter,因為后者因需要加載瀏覽器而導致效率較低。

對于數據解析,主要是從響應頁面里提取所需的數據,常用方法有:xpath路徑表達式、CSS選擇器、正則表達式等。其中,xpath路徑表達式、CSS選擇器主要用于提取結構化的數據,而正則表達式主要用于提取非結構化的數據。相應的庫有lxml、beautifulsoup4、re、pyquery。

五、反爬蟲

1. 基本的反爬蟲手段,主要是檢測請求頭中的字段,比如:User-Agent、referer等。針對這種情況,只要在請求中帶上對應的字段即可。所構造http請求的各個字段最好跟在瀏覽器中發送的完全一樣,但也不是必須。

2. 基于用戶行為的反爬蟲手段,主要是在后臺對訪問的IP(或User-Agent)進行統計,當超過某一設定的閾值,給予封鎖。針對這種情況,可通過使用代理服務器解決,每隔幾次請求,切換一下所用代理的IP地址(或通過使用User-Agent列表解決,每次從列表里隨機選擇一個使用)。這樣的反爬蟲方法可能會誤傷用戶。

3. 希望抓取的數據是如果通過ajax請求得到的,假如通過網絡分析能夠找到該ajax請求,也能分析出請求所需的具體參數,則直接模擬相應的http請求,即可從響應中得到對應的數據。這種情況,跟普通的請求沒有什么區別。

4. 基于JavaScript的反爬蟲手段,主要是在響應數據頁面之前,先返回一段帶有JavaScript代碼的頁面,用于驗證訪問者有無JavaScript的執行環境,以確定使用的是不是瀏覽器。

六、結論

網絡爬蟲不僅能夠為搜索引擎采集網絡信息,而且還可以作為定向信息采集器,定向采集某些網站下的特定信息。而隨著近幾年來的發展,python的受歡迎度也越來越高,而它的運用的領域也是越來越多,比如人工智能和大數據等領域,python都是在其中扮演者重要的角色。

參考文獻:

[1] 《Python程序設計與算法基礎教程》. 江紅,余青松 主編. 清華大學出版社. 2018.

[2] 《Python成型設計案例教程——從入門到機器學習》. 張思民 編著. 清華大學出版社. 2018.

[3] 基于Python的網絡爬蟲技術[J]. 錢程,陽小蘭.黑龍江科技信息. 2016,36:273.

[4] 基于Python的專業網絡爬蟲的設計與實現[J].姜杉彪,黃凱林. 企業科技與發展. 2016,08.

[5] 基于Python的網絡爬蟲技術研究[J]. 王碧瑤. 數字技術與應用. 2018.05.

[6] 網絡爬蟲技術研究[J]. 于成龍. 東莞理工學院學報. 2011.06.

[7] 《網絡爬蟲-Python和數據分析》.王澎. 中國科技大學. 2018.06 .

作者簡介:

陳超,性別:男,出生年月:1981.07,籍貫:重慶,單位:攀枝花學院,職稱:講師,學歷:碩士,研究方向:數據分析和挖掘。

主站蜘蛛池模板: 亚洲日韩精品无码专区97| 三级欧美在线| 啊嗯不日本网站| 精品综合久久久久久97超人该| 欧美午夜网| 精品无码人妻一区二区| 亚洲人成网站在线观看播放不卡| www.91中文字幕| 国产又大又粗又猛又爽的视频| 国产欧美视频在线观看| 国产丝袜91| www亚洲天堂| 91亚洲免费| 97视频在线观看免费视频| 欧美影院久久| 亚洲天堂视频在线免费观看| 在线日韩一区二区| 国产成人亚洲毛片| 亚洲成肉网| 亚洲精品手机在线| 中文字幕永久在线看| 精品91在线| 国产亚洲精品自在久久不卡 | 72种姿势欧美久久久大黄蕉| 久久国产精品嫖妓| 午夜老司机永久免费看片| 人妻丰满熟妇AV无码区| 亚洲男人的天堂在线观看| 青青草国产免费国产| 国产免费a级片| 亚洲一区二区三区在线视频| 天天躁夜夜躁狠狠躁躁88| 国产 日韩 欧美 第二页| 精品久久久久久中文字幕女| 永久免费无码成人网站| 亚洲最新网址| 麻豆国产在线观看一区二区| 免费中文字幕一级毛片| 亚洲精品中文字幕无乱码| 草逼视频国产| 91人人妻人人做人人爽男同| 成人国产精品网站在线看| 日韩一级毛一欧美一国产| 国产精品视频猛进猛出| 国产好痛疼轻点好爽的视频| 波多野结衣国产精品| 亚洲欧美一区二区三区蜜芽| 57pao国产成视频免费播放| 亚洲成A人V欧美综合| 在线观看热码亚洲av每日更新| 色婷婷综合在线| 欧美视频在线播放观看免费福利资源| 就去色综合| 欧美午夜理伦三级在线观看 | 亚洲精品国产自在现线最新| 成人精品在线观看| 精品久久蜜桃| a国产精品| 国产地址二永久伊甸园| 国产免费好大好硬视频| 欧美a级在线| 四虎永久免费地址| 色综合天天综合中文网| 国产理论一区| 99国产精品一区二区| 欧美国产日韩另类| 亚洲水蜜桃久久综合网站| 国产精品网拍在线| 91蜜芽尤物福利在线观看| 欧美啪啪一区| 久青草免费视频| 国产精品99久久久| 国产亚洲成AⅤ人片在线观看| 欧洲熟妇精品视频| 国产精品免费p区| 在线网站18禁| 精品伊人久久久香线蕉 | A级毛片无码久久精品免费| 成人福利在线视频| 亚洲无码视频图片| jijzzizz老师出水喷水喷出| 精品91视频|