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

基于Python的網絡爬蟲與反爬蟲技術的研究

2021-03-16 10:08:22江西科技師范大學張寶剛
電子世界 2021年4期
關鍵詞:程序用戶信息

江西科技師范大學 張寶剛

隨著互聯網的快速發展,網絡中的信息量也變得越來越巨大。如何從龐大的互聯網中快速準確的收集到我們需要的信息,成為了一個巨大的挑戰。因此,網絡爬蟲技術應運而生,相比較于傳統的人工搜集,網絡爬蟲可以快速的持續的準確的搜集到我們需要的信息。但對于網站內容提供者而言,并不希望自己的數據信息被別人搜集到,且爬蟲程序的大量請求,也會對服務器造成一定的壓力,因此就出現了反爬蟲技術。本文將通過一個案例系統的介紹網絡爬蟲的原理,并指出一些有效的反爬蟲技術。

圖1 目標網頁源碼分析

互聯網中蘊含著大量的信息,如何有效的獲取這些信息并利用這些龐大的信息就變成了一個不小的挑戰。傳統的人工收集信息的方式效率低、易出錯,因此就出現了網絡爬蟲程序,它是一種根據事先制定好的規則主動的搜集萬維網中的數據的一種程序。我們上網用的搜索引擎采用的就是爬蟲技術,用無數個爬蟲每天爬取各種各樣的網站,并把這些網站放到數據庫中,等著我們去搜索。網絡爬蟲根據其實現架構大致可分為深層網絡爬蟲(Deep Web Crawler)、通用網絡爬蟲(General Purpose Web Crawler)、聚焦網絡爬蟲(Focused Web Crawler)、增量式網絡爬蟲(Incremental Web Crawler)等。本研究主要通過爬取全國高校官網排名情況來介紹爬蟲技術的使用,并介紹一些有效的反爬蟲技術。

1 爬蟲程序的開發

1.1 請求網絡數據

開發爬蟲程序的第一步是請求網絡數據,首先我們要找到要爬取數據的目標網頁的url地址,然后利用Requests請求,獲取目標html頁面的源碼。本研究以爬取站長之家的高等院校網站排行榜里的數據為例,該頁面地址:https://top.chinaz.com/hangye/index_jiaoyu_daxue.html,我們通過Requests請求該頁面就可以拿到該目標網頁的源代碼了。

1.2 html頁面解析

通過上一個步驟后,我們已經獲取到了目標網頁的源代碼,下面我們就可以通過解析源代碼獲取我們想要得到的數據了。在解析前,我們還要先分析網頁源代碼,然后才能解析。通過Google Chrome瀏覽器的開發者模式,我們可以看到整個網頁的源碼,在這里我們可以清晰的看到,我們需要的數據在源碼里的什么地方,如圖1所示。

圖2 代碼實現圖

由圖1可以看出,我們需要的的信息,都在class=listCentent的

    標簽里,
      標簽里以列表的形式放著各個學校的排名信息放在
    • 標簽里,因此我們在解析時只需要獲取到這個ul標簽的所有SS信息,并遍歷里面的
    • 標簽就可以獲取到所有的高校的網站排名信息了。其代碼實現如圖2所示。

      在解析的過程中主要使用的是BeautifulSoup庫。 BeautifulSoup默認使用Python標準庫里的HTML解釋器,它還可以支持一些其他的第三方解釋器,比如lxml、html5lib等,這里我們使用的是lxml解釋器,它具有速度快,文檔容錯能力強的特點。在解析時,我們先用BeautifulSoup的find函數將標簽名和樣式名傳入進去,這樣就可以得到我們要爬取的信息所在的

        標簽所有的
      • 標簽列表了,通過對網頁的分析我們可以發現,每個
      • 標簽對應著一條高校網站排名信息數據,因此,我們只需要遍歷
      • 標簽就可以獲取所有的高校網站的具體排名信息了。每一條數據,我們只獲取名稱、鏈接、alexa、bd_weight、反鏈數、網站簡介這幾個數據。

        2 數據的存儲

        通過以上的操作,我們已經成功的獲取到了我們想要的信息。接下來,我們要做的就是將我們獲取到的信息保存下來,避免反復爬取浪費資源。本研究將數據保存在MySQL數據庫,MySQL是一種開源的、關系型數據庫,它使用結構化查詢語言SQL進行數據庫管理。在使用MySQL存儲數據前,我們要先建立一張表,用來存放我們解析到的數據。建表語句如圖3所示。

        圖3 建表語句圖

        我們設置id為主鍵,并且其是自動遞增的,用id作為每一條數據的唯一識別碼。name代表高校的名稱,link為高校官網的網頁鏈接,chain_num為反鏈接數,info為高校簡介。創建完數據表后,我們就可以往表里插入我們解析到的數據了。

        3 反爬蟲技術

        網絡爬蟲不僅可以輕松的“竊取”別人發布到網上的資源,更會給服務器帶來額外的壓力。因為網絡爬蟲會無休止的訪問目標服務器,其帶來的傷害相當于DDOS攻擊,消耗目標服務器的帶寬、內存、磁盤和cpu等資源,導致正常用戶的網絡請求異常。因此,我們需要反爬蟲程序來幫助我們抵御爬蟲程序。

        3.1 User-Agent控制請求

        User-Agent中可以攜帶一串用戶設備信息的字符串,包括瀏覽器、操作系統、cpu等信息。我們可以通過在服務器設置user-agent白名單,只有符合條件的user-agent才能訪問服務器。它的缺點就是很容易被爬蟲程序偽造頭部信息,進而被破解掉。

        3.2 IP限制

        我們知道爬蟲程序請求服務器速度是特別快的,并且訪問量也特別大,正常用戶不可能在短時間里有這么大的訪問量,通過這個特點,我們可以在服務器設置一個閾值,將短時間內訪問量大的IP地址加入黑名單,禁止其訪問,以達到反爬蟲的目的。其缺點也很明顯,容易誤傷正常訪問的用戶,而且爬蟲程序也可以利用IP代理實現換IP的目的,避免其IP被加入黑名單。

        3.3 session訪問限制

        session是用戶請求服務器的憑證,網絡爬蟲往往通過攜帶正常用戶session信息的方式,模擬正常用戶請求服務器。因此,我們同樣可以根據短時間內的訪問量的大小判斷是否為爬蟲程序,將疑似爬蟲程序的用戶的session加入黑名單。此方法缺點就是爬蟲程序可以注冊多個賬號,用多個session輪流進行請求,避免被加入黑名單。

        3.4 蜘蛛陷阱

        蜘蛛陷阱通過引導爬蟲程序陷入無限循環的陷阱,消耗爬蟲程序的資源,導致其崩潰而無法繼續爬取數據。此方法的缺點就是會新增許多浪費資源的文件和目錄,而且對正常網站排名有影響,會造成搜索引擎的爬蟲程序也無法爬取信息,進而導致在搜索引擎的網站排名靠后。

        3.5 驗證碼

        在用戶登錄或訪問某些重要信息時可以使用驗證碼來阻擋爬蟲程序。驗證碼分為圖片驗證碼、短信驗證碼、數值計算驗證碼、滑動驗證碼、圖案標記驗證碼等。這些驗證碼都可以有效的阻擋爬蟲程序,區分機器和正常用戶,使用戶可以正常訪問服務器,而爬蟲程序因識別不了驗證碼,所以爬蟲程序不能進一步訪問服務器,以達到反爬蟲的目的。驗證碼的缺點是影響用戶體驗。

        3.6 動態加載數據

        前面介紹的通過Python的Requests函數庫請求網頁,只能獲取到靜態網頁的數據。如果我們的網頁通過js動態的加載數據,爬蟲程序要爬取我們的數據就沒有那么簡單了。但是,爬蟲程序可以通過抓包的形式得到url請求鏈接,然后模擬url請求進行數據抓取。

        3.7 數據加密

        前端請求服務器前,將請求參數、user-agent、cookie等參數進行加密,用加密后的數據請求服務器,這樣的話網絡爬蟲程序不知道我們的加密規則,就無法進行模擬請求我們的服務器。但是,這種方式的加密算法是寫在js代碼里的,很容易被用戶找到并且破解。

        以上的反爬蟲技術,都可以在一定程度上實現反爬蟲的目的,給爬蟲程序增加一定的困難。在實際應用中,如果能將以上技術組合起來使用,反爬蟲的效果會更佳。當然現在還沒有任何一種通用的反爬蟲技術可以抵御所有的爬蟲,開發人員應該根據實際情況選擇合適的反爬蟲技術。

        結語:使用Python語言編寫爬蟲程序是一種人工智能大數據時代下進行數據采集與分析的重要方式。本文以爬取站長之家中的全國高校網站排名信息為例,介紹了簡單Python爬蟲程序的爬蟲原理,以及一些反爬蟲的技術和它的優缺點。爬蟲技術和反爬蟲技術,天生的相生相克、相輔相成,它們之間并沒有誰對誰錯、誰好誰壞,主要看使用他們的人是出于什么目的。

        猜你喜歡
        程序用戶信息
        試論我國未決羈押程序的立法完善
        人大建設(2019年12期)2019-05-21 02:55:44
        “程序猿”的生活什么樣
        訂閱信息
        中華手工(2017年2期)2017-06-06 23:00:31
        英國與歐盟正式啟動“離婚”程序程序
        環球時報(2017-03-30)2017-03-30 06:44:45
        關注用戶
        商用汽車(2016年11期)2016-12-19 01:20:16
        關注用戶
        商用汽車(2016年6期)2016-06-29 09:18:54
        關注用戶
        商用汽車(2016年4期)2016-05-09 01:23:12
        創衛暗訪程序有待改進
        中國衛生(2015年3期)2015-11-19 02:53:32
        如何獲取一億海外用戶
        創業家(2015年5期)2015-02-27 07:53:25
        展會信息
        中外會展(2014年4期)2014-11-27 07:46:46
主站蜘蛛池模板: 26uuu国产精品视频| 免费在线观看av| 欧美精品高清| 日韩在线2020专区| 久久久精品久久久久三级| 久久精品最新免费国产成人| 国产主播喷水| 午夜天堂视频| 九色91在线视频| 久久综合一个色综合网| 2020国产精品视频| 四虎国产精品永久在线网址| 成人亚洲国产| 99视频在线看| 99久久国产综合精品女同| 久无码久无码av无码| 亚洲性影院| 亚洲精品中文字幕无乱码| 男人的天堂久久精品激情| 国产日韩精品欧美一区喷| 一本大道在线一本久道| 五月婷婷激情四射| 日本在线国产| 成人日韩视频| 911亚洲精品| 凹凸国产熟女精品视频| 无码精品福利一区二区三区| 国产无码精品在线播放| 凹凸精品免费精品视频| 国产香蕉一区二区在线网站| 91在线播放免费不卡无毒| 爆乳熟妇一区二区三区| 黄色不卡视频| 91小视频版在线观看www| 91在线精品麻豆欧美在线| 亚洲欧洲日产国码无码av喷潮| 亚洲欧洲日产无码AV| 黑色丝袜高跟国产在线91| 精品夜恋影院亚洲欧洲| 欧美成人看片一区二区三区| 一本大道AV人久久综合| 精品一区二区三区波多野结衣 | 一级爆乳无码av| 国产欧美精品一区二区| 青青草一区| 亚洲一级毛片在线观播放| 欧美啪啪一区| 免费一级毛片在线观看| 亚洲一区二区在线无码| 精品国产成人a在线观看| 一本一道波多野结衣一区二区| 国产三级毛片| 欧美国产中文| 亚洲视频黄| 亚洲免费黄色网| 国产麻豆另类AV| 久久免费观看视频| 国产精品永久在线| 国产亚洲精品yxsp| 成人福利在线视频| 美女被操黄色视频网站| 亚洲成人一区在线| 大香网伊人久久综合网2020| 亚洲国产精品无码AV| 91丝袜乱伦| 亚洲黄色成人| 久久国产V一级毛多内射| 久久国产精品麻豆系列| 99热这里只有精品5| 日韩欧美视频第一区在线观看| 欧美午夜在线播放| 亚洲大学生视频在线播放| 亚洲精品国产成人7777| 久久青草热| 久久婷婷五月综合色一区二区| 亚洲第一色网站| 久久婷婷国产综合尤物精品| 四虎永久在线视频| 狠狠色噜噜狠狠狠狠色综合久| 熟女视频91| 国产第三区| 欧美天堂在线|