搜索引擎如何抓取網(wǎng)頁(yè)api的api主要分為兩大類(lèi)
優(yōu)采云 發(fā)布時(shí)間: 2022-08-09 07:02搜索引擎如何抓取網(wǎng)頁(yè)api的api主要分為兩大類(lèi)
搜索引擎如何抓取網(wǎng)頁(yè)api的api主要分為兩大類(lèi):1.基于協(xié)議的抓取,抓取url的參數來(lái)進(jìn)行搜索引擎爬蟲(chóng)的抓取,這種方式需要對網(wǎng)站對代碼重新進(jìn)行編碼,對網(wǎng)站就有很高的要求,另外針對可抓取的站點(diǎn)和url數量有限,找了下知乎的回答:知乎抓取頁(yè)面是怎么抓取的?有什么相關(guān)api?-知乎這個(gè)問(wèn)題的回答,大體上,他的回答也是基于協(xié)議進(jìn)行抓取方式的。
2.從網(wǎng)頁(yè)提供方的反爬蟲(chóng)程序抓取網(wǎng)頁(yè)這類(lèi)都不用寫(xiě)爬蟲(chóng)了,直接去要給他們一個(gè)頁(yè)面,他們會(huì )抓取,用反爬蟲(chóng)的工具,直接獲取整個(gè)頁(yè)面的url和參數,返回給我們,然后把下載的圖片啥的返回給我們。很可惜,這個(gè)找不到實(shí)際代碼,基本是沒(méi)有辦法抓取的。
上面的回答說(shuō)的沒(méi)錯,就是google-encrypt,有些基于本地ssl/tls協(xié)議,
有文章說(shuō)了一部分,同意@陳文文。網(wǎng)頁(yè)都有指向服務(wù)器的js,而在瀏覽器會(huì )有一個(gè)headlesscookie來(lái)起作用。它們代表什么意思呢?就是說(shuō)你的瀏覽器怎么會(huì )知道這些內容呢?同理,像收聽(tīng)小說(shuō),電臺這些也不需要讓瀏覽器知道這些東西。爬蟲(chóng)抓取網(wǎng)頁(yè)時(shí),是從服務(wù)器上獲取這些你需要獲取的數據,包括有pageurl這種。
那么怎么從獲取服務(wù)器獲取呢?那就是另外一個(gè)方面了,會(huì )涉及到瀏覽器api,需要提供資源才可以抓取。如何抓取呢?問(wèn)答網(wǎng)站上一般有幾個(gè)數據來(lái)源:一個(gè)是從別人(網(wǎng)站管理員或者投資人)注冊的帳號里獲??;另外一個(gè)是直接訪(fǎng)問(wèn)服務(wù)器。這些東西都是外界不可能看到的,服務(wù)器上保存了這些內容。那么當你從一個(gè)網(wǎng)站上下載時(shí),實(shí)際上你是從服務(wù)器從網(wǎng)頁(yè)提供方獲取到pageurl的。
換句話(huà)說(shuō),你從別人那里買(mǎi)了一個(gè)帳號,就等于獲取到了服務(wù)器的內容。那么想要爬取別人提供的服務(wù)器上的數據,就得提供有資源才可以。網(wǎng)站管理員或者投資人,這就是所謂的知識產(chǎn)權,他需要提供這些內容給你供你爬取,那怎么實(shí)現呢?如果你抓取過(guò),應該也知道在服務(wù)器端每天產(chǎn)生著(zhù)很多url,有個(gè)叫做cookie,用來(lái)記錄,有哪些用戶(hù)發(fā)過(guò)這些網(wǎng)址。
而記錄這些的載體就是你的requesturl。那你沒(méi)有request是抓取不到這些資源的。requesturl里包含的cookie就是你看不到的,你抓取到以后,怎么使用呢?以你的url發(fā)送的pageurl為例,它包含一個(gè)hashcode,把這個(gè)hashcode傳給你的瀏覽器,就可以傳給你一個(gè)以特定cookie為key的值,把那個(gè)值作為你要抓取的資源的參數。
拿這個(gè)作為encryptionkey就可以解密,傳給服務(wù)器獲取。拿到這個(gè)數據后,拿去用就行了。解密了過(guò)來(lái),