教你如何防止爬蟲爬抓取數據「防止爬蟲爬取的機制」

事情是這樣的

亞馬遜是全球最大的購物平台

很多商品信息、用戶評價等等都是最豐富的。

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

爬取你想要的商品、評論等等有用信息

「爬蟲實戰」一起一步步分析亞馬遜的反爬蟲機制​

反爬蟲機制

但是,我們想用爬蟲來爬取相關的數據信息時

像亞馬遜、TBao、JD這些大型的購物商城

他們為了保護自己的數據信息,都是有一套完善的反爬蟲機制的

先試試亞馬遜的反爬機制

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

最終,成功越過反爬機制。

一、urllib模塊

代碼如下:

# -*- coding:utf-8 -*-
import urllib.request
req = urllib.request.urlopen('https://www.amazon.com')
print(req.code)
複製代碼

返回結果:狀態碼:503。

分析:亞馬遜將你的請求,識別為了爬蟲,拒絕提供服務。

「爬蟲實戰」一起一步步分析亞馬遜的反爬蟲機制​

本着科學嚴謹的態度,我們拿萬人上的百度試一下。

返回結果:狀態碼 200

「爬蟲實戰」一起一步步分析亞馬遜的反爬蟲機制​

分析:正常訪問

本着科學嚴謹的態度,我們拿萬人上的百度試一下。

返回結果:狀態碼 200

分析:正常訪問

「爬蟲實戰」一起一步步分析亞馬遜的反爬蟲機制​

代碼如下 ↓ ↓ ↓

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)
複製代碼

返回結果:狀態碼:200

分析:返回狀態碼是200了,正常了,有點爬蟲那味了。

3、檢查返回頁面

我們通過requests+cookie的方法,得到的狀態碼為200

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

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

「爬蟲實戰」一起一步步分析亞馬遜的反爬蟲機制​

我踏馬…返回狀態是正常了,但返回的是一個反爬蟲的驗證碼頁面。

還是 被亞馬遜給擋住了。

三、selenium自動化模塊

相關selenium模塊的安裝

pip install selenium
複製代碼

代碼中引入selenium,並設置相關參數

import os
from requests.api import options
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

#selenium配置參數
options = Options()
#配置無頭參數,即不打開瀏覽器
options.add_argument('--headless')
#配置Chrome瀏覽器的selenium驅動 
chromedriver="C:/Users/pacer/AppData/Local/Google/Chrome/Application/chromedriver.exe"
os.environ["webdriver.chrome.driver"] = chromedriver
#將參數設置+瀏覽器驅動組合
browser = webdriver.Chrome(chromedriver,chrome_options=options)
複製代碼

測試訪問

url = "https://www.amazon.com"
print(url)
#通過selenium來訪問亞馬遜
browser.get(url)
複製代碼

返回結果:狀態碼:200

分析:返回狀態碼是200了,訪問狀態正常,我們再看看爬到的網頁信息。

將網頁源碼保存到本地

#將爬取到的網頁信息,寫入到本地文件
fw=open('E:/amzon.html','w',encoding='utf-8')
fw.write(str(browser.page_source))
browser.close()
fw.close()
複製代碼

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

我們已經成功越過了反爬蟲機制,進入到了Amazon的首頁

「爬蟲實戰」一起一步步分析亞馬遜的反爬蟲機制​

結局

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

亞馬遜的反爬蟲機制。

下一篇:我們繼續介紹,如何來爬取亞馬遜的數十萬商品信息及評論。

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/284463.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-22 15:07
下一篇 2024-12-22 15:07

相關推薦

發表回復

登錄後才能評論