1. 河豚號(hào) > 生活百科 >

防止爬蟲爬取的機(jī)制(教你如何防止爬蟲爬抓取數(shù)據(jù))

事情是這樣的

亞馬遜是全球最大的購(gòu)物平臺(tái)

很多商品信息、用戶評(píng)價(jià)等等都是最豐富的。

今天,手把手帶大家,越過亞馬遜的反爬蟲機(jī)制

爬取你想要的商品、評(píng)論等等有用信息

 

「爬蟲實(shí)戰(zhàn)」一起一步步分析亞馬遜的反爬蟲機(jī)制?

 

反爬蟲機(jī)制

但是,我們想用爬蟲來爬取相關(guān)的數(shù)據(jù)信息時(shí)

像亞馬遜、TBao、JD這些大型的購(gòu)物商城

他們?yōu)榱吮Wo(hù)自己的數(shù)據(jù)信息,都是有一套完善的反爬蟲機(jī)制的

先試試亞馬遜的反爬機(jī)制

我們用不同的幾個(gè)python爬蟲模塊,來一步步試探

最終,成功越過反爬機(jī)制。

一、urllib模塊

代碼如下:

# -*- coding:utf-8 -*-

import urllib.request

req = urllib.request.urlopen('https://www.amazon.com')

print(req.code)

復(fù)制代碼

返回結(jié)果:狀態(tài)碼:503。

分析:亞馬遜將你的請(qǐng)求,識(shí)別為了爬蟲,拒絕提供服務(wù)。

 

「爬蟲實(shí)戰(zhàn)」一起一步步分析亞馬遜的反爬蟲機(jī)制?

 

本著科學(xué)嚴(yán)謹(jǐn)?shù)膽B(tài)度,我們拿萬人上的百度試一下。

返回結(jié)果:狀態(tài)碼 200

 

「爬蟲實(shí)戰(zhàn)」一起一步步分析亞馬遜的反爬蟲機(jī)制?

 

分析:正常訪問

本著科學(xué)嚴(yán)謹(jǐn)?shù)膽B(tài)度,我們拿萬人上的百度試一下。

返回結(jié)果:狀態(tài)碼 200

分析:正常訪問

 

「爬蟲實(shí)戰(zhàn)」一起一步步分析亞馬遜的反爬蟲機(jī)制?

 

代碼如下 ↓ ↓ ↓

import requests

url='https://www.amazon.com/KAVU-Rope-Bag-Denim-Size/product-reviews/xxxxxxx'

web_header={

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:88.0) Gecko/20100101 Firefox/88.0',

'Accept': '*/*',

'Accept-Language': 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2',

'Accept-Encoding': 'gzip, deflate, br',

'Connection': 'keep-alive',

'Cookie': '你的cookie值',

'TE': 'Trailers'}

r = requests.get(url,headers=web_header)

print(r.status_code)

復(fù)制代碼

返回結(jié)果:狀態(tài)碼:200

分析:返回狀態(tài)碼是200了,正常了,有點(diǎn)爬蟲那味了。

3、檢查返回頁(yè)面

我們通過requests+cookie的方法,得到的狀態(tài)碼為200

目前至少被亞馬遜的服務(wù)器正常提供服務(wù)了

我們將爬取的頁(yè)面寫入文本中,通過瀏覽器打開。

 

「爬蟲實(shí)戰(zhàn)」一起一步步分析亞馬遜的反爬蟲機(jī)制?

 

我踏馬…返回狀態(tài)是正常了,但返回的是一個(gè)反爬蟲的驗(yàn)證碼頁(yè)面。

還是 被亞馬遜給擋住了。

三、selenium自動(dòng)化模塊

相關(guān)selenium模塊的安裝

pip install selenium

復(fù)制代碼

代碼中引入selenium,并設(shè)置相關(guān)參數(shù)

import os

from requests.api import options

from selenium import webdriver

from selenium.webdriver.chrome.options import Options

#selenium配置參數(shù)

options = Options()

#配置無頭參數(shù),即不打開瀏覽器

options.add_argument('--headless')

#配置Chrome瀏覽器的selenium驅(qū)動(dòng)

chromedriver="C:/Users/pacer/AppData/Local/Google/Chrome/Application/chromedriver.exe"

os.environ["webdriver.chrome.driver"] = chromedriver

#將參數(shù)設(shè)置+瀏覽器驅(qū)動(dòng)組合

browser = webdriver.Chrome(chromedriver,chrome_options=options)

復(fù)制代碼

測(cè)試訪問

url = "https://www.amazon.com"

print(url)

#通過selenium來訪問亞馬遜

browser.get(url)

復(fù)制代碼

返回結(jié)果:狀態(tài)碼:200

分析:返回狀態(tài)碼是200了,訪問狀態(tài)正常,我們?cè)倏纯磁赖降木W(wǎng)頁(yè)信息。

將網(wǎng)頁(yè)源碼保存到本地

#將爬取到的網(wǎng)頁(yè)信息,寫入到本地文件

fw=open('E:/amzon.html','w',encoding='utf-8')

fw.write(str(browser.page_source))

browser.close()

fw.close()

復(fù)制代碼

打開我們爬取的本地文件,查看 ,

我們已經(jīng)成功越過了反爬蟲機(jī)制,進(jìn)入到了Amazon的首頁(yè)

 

「爬蟲實(shí)戰(zhàn)」一起一步步分析亞馬遜的反爬蟲機(jī)制?

 

結(jié)局

通過selenium模塊,我們可以成功的越過

亞馬遜的反爬蟲機(jī)制。

本文由網(wǎng)上采集發(fā)布,不代表我們立場(chǎng),轉(zhuǎn)載聯(lián)系作者并注明出處:http://m.zltfw.cn/shbk/42183.html

聯(lián)系我們

在線咨詢:點(diǎn)擊這里給我發(fā)消息

微信號(hào):15705946153

工作日:9:30-18:30,節(jié)假日休息