大家好,我是Lex 喜歡欺負超人那個Lex
擅長領域:python開發、網路安全滲透、Windows域控Exchange架構
今日重點:一步步分析and越過亞馬遜的反爬蟲機制
事情是這樣的
亞馬遜是全球最大的購物平臺
很多商品資訊、用戶評價等等都是最豐富的,
今天,手把手帶大家,越過亞馬遜的反爬蟲機制
爬取你想要的商品、評論等等有用資訊

反爬蟲機制
但是,我們想用爬蟲來爬取相關的資料資訊時
像亞馬遜、TBao、JD這些大型的購物商城
他們為了保護自己的資料資訊,都是有一套完善的反爬蟲機制的
先試試亞馬遜的反爬機制
我們用不同的幾個python爬蟲模塊,來一步步試探
最終,成功越過反爬機制,
一、urllib模塊
代碼如下:
# -*- coding:utf-8 -*-
import urllib.request
req = urllib.request.urlopen('https://www.amazon.com')
print(req.code)
回傳結果:狀態碼:503,
分析:亞馬遜將你的請求,識別為了爬蟲,拒絕提供服務,

本著科學嚴謹的態度,我們拿萬人上的百度試一下,
回傳結果:狀態碼 200
分析:正常訪問

那說明,urllib模塊的請求,被亞馬遜識別為爬蟲,并拒絕提供服務
二、requests模塊
1、requests直接爬蟲訪問
效果如下 ↓ ↓ ↓

代碼如下 ↓ ↓ ↓
import requests
url='https://www.amazon.com/KAVU-Rope-Bag-Denim-Size/product-reviews/xxxxxx'
r = requests.get(url)
print(r.status_code)
回傳結果:狀態碼:503,
分析:亞馬遜同樣拒絕了requsets模塊的請求
將其識別為了爬蟲,拒絕提供服務,
2、我們給requests加上cookie
加上請求cookie等相關資訊
效果如下 ↓ ↓ ↓

代碼如下 ↓ ↓ ↓
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模塊,我們可以成功的越過
亞馬遜的反爬蟲機制,
下一篇:我們繼續介紹,如何來爬取亞馬遜的數十萬商品資訊及評論,
【有問題,請留言~~~】
推薦閱讀
python實戰
【python實戰】前女友婚禮,python破解婚禮現場的WIFI,把名稱改成了
【python實戰】前女友發來加密的 “520快樂.pdf“,我用python破解開之后,卻發現
【python實戰】昨晚,我用python幫隔壁小姐姐P證件照 自拍,然后發現...
【python實戰】女友半夜加班發自拍 python男友用30行代碼發現驚天秘密
【python實戰】python你TM太皮了——區區30行代碼就能記錄鍵盤的一舉一動
【python實戰】女神相冊密碼忘記了,我只用Python寫了20行代碼~~~
pygame系列文章【訂閱專欄,獲取完整原始碼】
一起來學pygame吧 游戲開發30例(二)——塔防游戲
一起來學pygame吧 游戲開發30例(四)——俄羅斯方塊小游戲
滲透測驗實戰專欄
Windows AD/Exchange管理專欄
Linux高性能服務器搭建
PowerShell自動化專欄
CSDN官方學習推薦 ↓ ↓ ↓
CSDN出的Python全堆疊知識圖譜,太強了,推薦給大家!
?
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/287962.html
標籤:python
上一篇:3天學完10套Python頂級教程,端午節技術人消失之謎
下一篇:初識 C 語言
