大家好,我是Lex 喜欢欺负超人那个Lex
擅长领域:python开发、网络安全渗透、Windows域控Exchange架构
今日重点:一步步分析and越过亚马逊的反爬虫机制
事情是这样的
亚马逊是全球最大的购物平台
很多商品信息、用户评价等等都是最丰富的。
今天,手把手带大家,越过亚马逊的反爬虫机制
爬取你想要的商品、评论等等有用信息
)
反爬虫机制
但是,我们想用爬虫来爬取相关的数据信息时
像亚马逊、TBao、JD这些大型的购物商城
他们为了保护自己的数据信息,都是有一套完善的反爬虫机制的
先试试亚马逊的反爬机制
我们用不同的几个python爬虫模块,来一步步试探
最终,成功越过反爬机制。
一、urllib模块
代码如下:
1 | ini复制代码# -*- coding:utf-8 -*- |
返回结果:状态码:503。
分析:亚马逊将你的请求,识别为了爬虫,拒绝提供服务。
)
本着科学严谨的态度,我们拿万人上的百度试一下。
返回结果:状态码 200
分析:正常访问
)
那说明,urllib模块的请求,被亚马逊识别为爬虫,并拒绝提供服务
二、requests模块
1、requests直接爬虫访问
效果如下 ↓ ↓ ↓
)
代码如下 ↓ ↓ ↓
1 | ini复制代码import requests |
返回结果:状态码:503。
分析:亚马逊同样拒绝了requsets模块的请求
将其识别为了爬虫,拒绝提供服务。
2、我们给requests加上cookie
加上请求cookie等相关信息
效果如下 ↓ ↓ ↓
)
代码如下 ↓ ↓ ↓
1 | dart复制代码import requests |
返回结果:状态码:200
分析:返回状态码是200了,正常了,有点爬虫那味了。
3、检查返回页面
我们通过requests+cookie的方法,得到的状态码为200
目前至少被亚马逊的服务器正常提供服务了
我们将爬取的页面写入文本中,通过浏览器打开。
)
我踏马…返回状态是正常了,但返回的是一个反爬虫的验证码页面。
还是 被亚马逊给挡住了。
三、selenium自动化模块
相关selenium模块的安装
1 | 复制代码pip install selenium |
代码中引入selenium,并设置相关参数
1 | python复制代码import os |
测试访问
1 | ini复制代码url = "https://www.amazon.com" |
返回结果:状态码:200
分析:返回状态码是200了,访问状态正常,我们再看看爬到的网页信息。
将网页源码保存到本地
1 | lua复制代码#将爬取到的网页信息,写入到本地文件 |
打开我们爬取的本地文件,查看 ,
我们已经成功越过了反爬虫机制,进入到了Amazon的首页
)
结局
通过selenium模块,我们可以成功的越过
亚马逊的反爬虫机制。
下一篇:我们继续介绍,如何来爬取亚马逊的数十万商品信息及评论。
【有问题,请留言~】
本文转载自: 掘金