国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

1.爬蟲(chóng)介紹

2020-06-29 10:09 作者:自學(xué)Python的小姐姐呀  | 我要投稿


1. 什么是爬蟲(chóng)?

網(wǎng)絡(luò)爬蟲(chóng)也叫網(wǎng)絡(luò)蜘蛛,如果把互聯(lián)網(wǎng)比喻成一個(gè)蜘蛛網(wǎng),那么蜘蛛就是在網(wǎng)上爬來(lái)爬去的蜘蛛,爬蟲(chóng)程序通過(guò)請(qǐng)求url地址,根據(jù)響應(yīng)的內(nèi)容進(jìn)行解析采集數(shù)據(jù),比如:如果響應(yīng)內(nèi)容是html,分析dom結(jié)構(gòu),進(jìn)行dom解析、或者正則匹配,如果響應(yīng)內(nèi)容是xml/json數(shù)據(jù),就可以轉(zhuǎn)數(shù)據(jù)對(duì)象,然后對(duì)數(shù)據(jù)進(jìn)行解析。


2. 有什么作用?

通過(guò)有效的爬蟲(chóng)手段批量采集數(shù)據(jù),可以降低人工成本,提高有效數(shù)據(jù)量,給予運(yùn)營(yíng)/銷(xiāo)售的數(shù)據(jù)支撐,加快產(chǎn)品發(fā)展。

image

3. 業(yè)界的情況

目前互聯(lián)網(wǎng)產(chǎn)品競(jìng)爭(zhēng)激烈,業(yè)界大部分都會(huì)使用爬蟲(chóng)技術(shù)對(duì)競(jìng)品產(chǎn)品的數(shù)據(jù)進(jìn)行挖掘、采集、大數(shù)據(jù)分析,這是必備手段,并且很多公司都設(shè)立了爬蟲(chóng)工程師的崗位

4. 合法性 ?

爬蟲(chóng)是利用程序進(jìn)行批量爬取網(wǎng)頁(yè)上的公開(kāi)信息,也就是前端顯示的數(shù)據(jù)信息。因?yàn)樾畔⑹峭耆_(kāi)的,所以是合法的。其實(shí)就像瀏覽器一樣,瀏覽器解析響應(yīng)內(nèi)容并渲染為頁(yè)面,而爬蟲(chóng)解析響應(yīng)內(nèi)容采集想要的數(shù)據(jù)進(jìn)行存儲(chǔ)。

5. 反爬蟲(chóng)

爬蟲(chóng)很難完全的制止,道高一尺魔高一丈,這是一場(chǎng)沒(méi)有硝煙的戰(zhàn)爭(zhēng),碼農(nóng)VS碼農(nóng) ?反爬蟲(chóng)一些手段:

  • 合法檢測(cè):請(qǐng)求校驗(yàn)(useragent,referer,接口加簽名,等)

  • 小黑屋:IP/用戶限制請(qǐng)求頻率,或者直接攔截

  • 投毒:反爬蟲(chóng)高境界可以不用攔截,攔截是一時(shí)的,投毒返回虛假數(shù)據(jù),可以誤導(dǎo)競(jìng)品決策

  • ... ...

6. 選擇一門(mén)語(yǔ)言

爬蟲(chóng)可以用各種語(yǔ)言寫(xiě), C++, Java都可以, 為什么要Python?

首先用C++搞網(wǎng)絡(luò)開(kāi)發(fā)的例子不多(可能是我見(jiàn)得太少)然后由于Oracle收購(gòu)了Sun, Java目前雖然在Android開(kāi)發(fā)上很重要, 但是如果Google官司進(jìn)展不順利, 那么很有可能用Go語(yǔ)言替代掉Java來(lái)做Android開(kāi)發(fā). 在這計(jì)算機(jī)速度高速增長(zhǎng)的年代里, 選語(yǔ)言都要看他爹的業(yè)績(jī), 真是稍不注意就落后于時(shí)代. 隨著計(jì)算機(jī)速度的高速發(fā)展, 某種語(yǔ)言開(kāi)發(fā)的軟件運(yùn)行的時(shí)間復(fù)雜度的常數(shù)系數(shù)已經(jīng)不像以前那么重要, 我們可以越來(lái)越偏愛(ài)為程序員打造的而不是為計(jì)算機(jī)打造的語(yǔ)言. 比如Ruby這種傳說(shuō)中的純種而又飄逸的的OOP語(yǔ)言, 或者Python這種稍嚴(yán)謹(jǐn)而流行庫(kù)又非常多的語(yǔ)言, 都大大弱化了針對(duì)計(jì)算機(jī)運(yùn)行速度而打造的特性, 強(qiáng)化了為程序員容易思考而打造的特性. 所以我選擇Python

7. 選擇Python版本

有2和3兩個(gè)版本, 3比較新, 聽(tīng)說(shuō)改動(dòng)大. 根據(jù)我在知乎上搜集的觀點(diǎn)來(lái)看, 我還是傾向于使用”在趨勢(shì)中將會(huì)越來(lái)越火”的版本, 而非”目前已經(jīng)很穩(wěn)定而且很成熟”的版本. 這是個(gè)人喜好, 而且預(yù)測(cè)不一定準(zhǔn)確. 但是如果Python3無(wú)法像Python2那么火, 那么整個(gè)Python語(yǔ)言就不可避免的隨著時(shí)間的推移越來(lái)越落后, 因此我想其實(shí)選哪個(gè)的最壞風(fēng)險(xiǎn)都一樣, 但是最好回報(bào)卻是Python3的大. 其實(shí)兩者區(qū)別也可以說(shuō)大也可以說(shuō)不大, 最終都不是什么大問(wèn)題. 我選擇的是Python 3

8. 爬蟲(chóng)基本套路

  • 基本流程

    • 目標(biāo)數(shù)據(jù)

    • 來(lái)源地址

    • 結(jié)構(gòu)分析

    • 實(shí)現(xiàn)構(gòu)思

    • 操刀編碼

  • 基本手段

    • 簡(jiǎn)單的驗(yàn)證碼可以使用識(shí)圖讀驗(yàn)證碼第三方庫(kù)

    • 請(qǐng)求帶上用戶cookie信息

    • 請(qǐng)求頭設(shè)置,如:useragant為有效客戶端

    • 控制請(qǐng)求頻率(根據(jù)實(shí)際情景)

    • IP代理

    • 簽名/加密參數(shù)從html/cookie/js分析

    • 破解請(qǐng)求限制

    • 破解登錄授權(quán)

    • 破解驗(yàn)證碼

  • 解析數(shù)據(jù)

    • 正則匹配(根據(jù)情景使用)

    • 轉(zhuǎn) JSON/XML 對(duì)象進(jìn)行解析

    • 正則匹配,通過(guò)的正則表達(dá)式來(lái)匹配想要爬取的數(shù)據(jù),如:有些數(shù)據(jù)不是在html 標(biāo)簽里,而是在html的script 標(biāo)簽的js變量中

    • 使用第三方庫(kù)解析html dom,比較喜歡類(lèi)jquery的庫(kù)

    • HTML Dom解析

    • 數(shù)據(jù)字符串


9. python爬蟲(chóng)

  • python寫(xiě)爬蟲(chóng)的優(yōu)勢(shì)

    • python語(yǔ)法易學(xué),容易上手

    • 社區(qū)活躍,實(shí)現(xiàn)方案多可參考

    • 各種功能包豐富

    • 少量代碼即可完成強(qiáng)大功能

  • 涉及模塊包

    • selenium

    • xpath

    • beautiful soup

    • json

    • re

    • threading

    • urllib

    • requests

    • 請(qǐng)求

    • 多線程

    • 正則

    • json解析

    • html dom解析

    • lxml

    • 操作瀏覽器


1.爬蟲(chóng)介紹的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
余姚市| 台中县| 正阳县| 开原市| 鹿泉市| 泾源县| 虹口区| 潍坊市| 民丰县| 贵州省| 乐业县| 阳新县| 东山县| 句容市| 沁水县| 阿勒泰市| 清水县| 日土县| 金沙县| 会东县| 宜昌市| 中宁县| 宝清县| 手游| 织金县| 文安县| 纳雍县| 双江| 东方市| 塔河县| 石柱| 新田县| 二连浩特市| 宣威市| 南靖县| 岚皋县| 华安县| 禹城市| 敦煌市| 仙游县| 普格县|