网站块Python的爬虫。 搜索理念,以避免(Website blocks Python cra

2019-10-28 12:41发布

我想从抓取从Object-网站数据https://www.fewo-direkt.de (美国https://www.homeaway.com/ )是这样的: https://www.fewo-direkt.de/这Ferienwohnung-度假别墅/ p8735326但如果履带尝试启动页面,我会用下面的代码只得到一个网页。 我认为FEWO块履带式,但我不知道该怎么和wheter有一个pssible避免。 有任何人的想法?

Python和要求,BeautifulSoup - 与其他网站正常工作。

<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>

Answer 1:

有大量的方法,网站可以使用机器人检测。 我们可以将它们下一个列表:

  1. 头验证。 这是最普遍的基层验证其检查HTTP请求头的存在,不存在,默认情况下,伪造或损坏的值。

    例如,默认User-Agent在Python请求从开始python-requests/ ,可以很容易地检查了后台,因此您的客户端将被标记为BOT,并得到“错误”的回应。

    解决方案:尝试嗅出从浏览器相同的请求(你可以使用小提琴手 )和浏览器克隆头。 在蟒蛇的请求也可以通过下面的代码来完成:

     headers = { "User-Agent": "Some User-Agent" } response = requests.get(url, headers=headers) 
  2. 饼干验证。 是的, Cookie也是HTTP标头,但验证方法从以前的不同。 该方法的想法是检查Cookie报头,并验证每个cookie。

    解:

    1)嗅探浏览器完成的所有要求;

    2)你想重复,并采取一看检查请求Cookie头;

    3)在以前的请求每个Cookie的搜索值;

    4)重复该设置的cookie(-s)主请求之前收集所有必需的cookie每个请求。

    在蟒蛇请求你不需要刮人工,只需使用session

     http_session = requests.Session() http_session.get(url_to_get_cookie) # cookies will be stored inside "http_session" object response = http_session.get(final_url) 
  3. IP地址或提供确认。 网站可以查询IP地址和提供商的垃圾邮件数据库不会列出。 它如果你使用公共代理/ VPN是可能的。

    解决方案:尝试使用其他代理或更改VPN。

当然,它的过于简单化指南,其中不包括关于JavaScript代头/令牌,“控制”的要求,可将WebSocket等信息,但是,在我看来,它可以作为入门级的指南,可以指向一个人在哪里有帮助寻找。



文章来源: Website blocks Python crawler. Searching for Idea to avoid