防止爬虫爬取的机制(教你如何防止爬虫爬抓取数据)

最近很多用户在找关于防止爬虫爬取的机制(教你如何防止爬虫爬抓取数据)的解答,今天小编为大家汇总几条解答来给大家解读! 有97%新玩家认为壁咚是什么意思(防止爬虫爬取的机制(教你如何防止爬虫爬抓取数据))值得一读!

事情是这样的

亚马逊是全球最大的购物平台

很多商品信息、用户评价等等都是最丰富的。

今天,手把手带大家,越过亚马逊的反爬虫机制

爬取你想要的商品、评论等等有用信息

「爬虫实战」一起一步步分析亚马逊的反爬虫机制​

反爬虫机制

但是,我们想用爬虫来爬取相关的数据信息时

像亚马逊、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模块,我们可以成功的越过

亚马逊的反爬虫机制。

今天的文章就写到这里,感谢大家的阅读,如果能对大家有所帮助,大家可以留言交流下心得,互相分享下收获,谢谢。

暂无评论

发表评论

您的电子邮件地址不会被公开,必填项已用*标注。

相关推荐

破壁机出现e1是怎么回事

破壁机出现e1可能是食材切块过大、或者食材与水配比不当、或者感温杯故障、也可能是杯底有水的痕迹、机器的主板坏了 ...