首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用Python绕过In荚膜

如何用Python绕过In荚膜
EN

Stack Overflow用户
提问于 2018-04-10 10:20:05
回答 2查看 18K关注 0票数 18

我使用刮痕,我试着刮掉使用in荚膜本站

代码语言:javascript
复制
<meta name="robots" content="noindex,nofollow">
<script src="/_Incapsula_Resource?SWJIYLWA=719d34d31c8e3a6e6fffd425f7e032f3">
</script>

两年前,我就这个问题问过一个问题,但是这个方法(内囊破碎机)已经不再起作用了。

我试着理解In荚膜是如何工作的,我试着绕过它

代码语言:javascript
复制
def start_requests(self):
    yield Request('https://courses-en-ligne.carrefour.fr',  cookies={'store': 92}, dont_filter=True, callback = self.init_shop)
def init_shop(self,response) :
    result_content      = response.body
    RE_ENCODED_FUNCTION = re.compile('var b="(.*?)"', re.DOTALL)
    RE_INCAPSULA        = re.compile('(_Incapsula_Resource\?SWHANEDL=.*?)"')
    INCAPSULA_URL       = 'https://courses-en-ligne.carrefour.fr/%s'
    encoded_func        = RE_ENCODED_FUNCTION.search(result_content).group(1)
    decoded_func        = ''.join([chr(int(encoded_func[i:i+2], 16)) for i in xrange(0, len(encoded_func), 2)])
    incapsula_params    = RE_INCAPSULA.search(decoded_func).group(1)
    incap_url           = INCAPSULA_URL % incapsula_params
    yield Request(incap_url)
def parse(self):
    print response.body 

但我被重定向到再来一页

代码语言:javascript
复制
<html style="height:100%">
<head>
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
<meta name="format-detection" content="telephone=no">
<meta name="viewport" content="initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
</head>
<body style="margin:0px;height:100%">
<iframe src="/_Incapsula_Resource?CWUDNSAI=27&xinfo=3-10784678-0%200NNN%20RT%281523525225370%20394%29%20q%280%20-1%20-1%20-1%29%20r%280%20-1%29%20B12%284%2c316%2c0%29%20U10000&incident_id=459000960022408474-41333502566401539&edet=12&cinfo=04000000" frameborder=0 width="100%" height="100%" marginheight="0px" marginwidth="0px">Request unsuccessful. Incapsula incident ID: 459000960022408474-41333502566401539
</iframe>
</body>
</html>
EN

回答 2

Stack Overflow用户

发布于 2018-04-17 13:56:44

因此,首先,没有解决这些问题的解决办法。作为一个实际的用户,我不得不在StackOverflow上回答时解决captcha问题。这就意味着机器人肯定会获得上限。

现在,我试图遵循的规则很少,以减少卡普查的机会。

  • 永远不要在这样的项目中使用共享代理。使用TOR是一个很大的NO
  • 使用Chrome + Selenium + Proxy
  • existing profile一起使用Chrome。我更喜欢有浏览历史的个人资料与不同的网站,曲奇从许多其他网站和跟踪器,并回到前一个月。您不知道如何评估用户/机器人之间的差异。所以你想看起来更像一个真正的用户
  • 不要以最快的速度刮擦,尽量使用尽可能多的延迟和尽可能的随机延迟。
  • 始终使用可见浏览器并继续监视captcha,在captcha外观上手动解决captcha问题,或者使用DeathByCaptcha或类似的服务。不要中止captcha页面,因为它可能会将bot概率检查提高到更高的级别。

这是一个猫和老鼠的游戏,你不知道对方有什么作为辩护。所以你试着表现得很好

票数 12
EN

Stack Overflow用户

发布于 2018-04-16 19:15:52

这不是最好的答案,但只是给出一些要点,以了解为什么不那么容易做网络刮擦,主要是当有一个CDN在前面。

首先,也许最好检查一下您将要面对的是什么,WAF & Bot减缓

为了获得更多的想法,这是一个很好的谈话:攻击者如何绕过CDN攻击Attack

现在,这并不意味着它不可能进行web抓取,这里的问题现在减少到时间/速度,你越快地尝试高的东西是你触发上限的改变,在最坏的情况下甚至被完全阻塞。

有多种方法,比如对每个请求使用不同的IP:使用Python发出请求、更改用户代理等等,但大多数方法都绑定到您可能需要找到的一组定义的超时和查询模式。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49751135

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档