首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >网站阻止Python爬虫。寻找要避免的想法

网站阻止Python爬虫。寻找要避免的想法
EN

Stack Overflow用户
提问于 2018-12-28 16:02:16
回答 1查看 1.4K关注 0票数 1

我想从https://www.fewo-direkt.de (在美国https://www.homeaway.com/中)的对象站点抓取数据,比如:https://www.fewo-direkt.de/ferienwohnung-ferienhaus/p8735326,但是如果爬虫试图启动页面,我只会得到下面的代码。我想几个小块爬虫,但我不知道如何和轮有一个可避免的方法。有什么主意吗?

Python、请求、BeautifulSoup --与其他网站相比,它工作得很好。

代码语言:javascript
复制
<html style="height:100%">
   <head>
      <meta content="NOINDEX, NOFOLLOW" name="ROBOTS"/>
      <meta content="telephone=no" name="format-detection"/>
      <meta content="initial-scale=1.0" name="viewport"/>
      <meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible"/>
      <script src="/_Incapsula_Resource?SWJIYLWA=719d34d31c8e3a6e6fffd425f7e032f3" type="text/javascript"></script>
   </head>
   <body style="margin:0px;height:100%"><iframe frameborder="0" height="100%" marginheight="0px" marginwidth="0px" src="/_Incapsula_Resource?CWUDNSAI=20&amp;xinfo=5-259174360-0%200NNN%20RT%281546012021046%20144%29%20q%280%20-1%20-1%20-1%29%20r%280%20-1%29%20B15%283%2c901868%2c0%29%20U5&amp;incident_id=877000750783982903-1038286134589588661&amp;edet=15&amp;cinfo=03000000" width="100%">Request unsuccessful. Incapsula incident ID: 877000750783982903-1038286134589588661</iframe></body>
</html>
EN

回答 1

Stack Overflow用户

发布于 2018-12-28 16:58:35

对于bot的检测,网站可以使用的方法很多。我们可以将它们分组到下一个列表中:

  1. 标头验证。是最普遍的基本级别验证,它检查HTTP请求标头是否存在、不存在、缺省值、假值或损坏值。 例如,python请求中的默认User-Agentpython-requests/开始,这可以很容易地在后端进行检查,因此您的客户端将被标记为bot并得到"error“响应。 解决方案:试图从浏览器中嗅探相同的请求(您可以使用费德勒),并从浏览器克隆标题。在python请求中,可以在下一段代码中完成: headers ={“用户代理”:“一些用户代理”} response = requests.get(url,headers=headers)
  2. 曲奇饼 验证。是的,Cookie也是header,但是验证方法不同于以前的方法。这种方法的思想是检查Cookie头并验证每个cookie。 解决方案: 1)嗅探所有通过浏览器完成的请求; 2)检查您正在尝试重复的请求,并查看Cookie头; 3)在以前的请求中搜索每个cookie的值; 4)在主请求之前重复设置cookie(-s)的每个请求,以收集所有所需的cookie。 在python请求中,不需要手动抓取,只需使用session: http_session = requests.Session() http_session.get(url_to_get_cookie) #cookie将存储在"http_session“对象响应= http_session.get(final_url)中。
  3. IP地址或提供者验证。网站可以检查IP地址和提供程序,以避免在垃圾邮件数据库中列出。如果您使用的是公共代理/VPN,这是可能的。 解决方案:尝试使用其他代理或更改VPN。

当然,它是过于简化的指南,它不包括关于JavaScript生成头/标记、“控制”请求、WebSocket等的信息。但是,在我看来,它作为入门级指南是有帮助的,它可以指向某个人要查找的位置。

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

https://stackoverflow.com/questions/53961188

复制
相关文章

相似问题

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