Python 如何知道你是否因为网页抓取而被网站屏蔽?

Python 如何知道你是否因为网页抓取而被网站屏蔽?,python,web-scraping,Python,Web Scraping,我在一个网站上使用了这个beautifulsoup代码: headers = ({'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36'}) funda = "https://www.funda.nl/koop/amsterdam/" response = get(funda,

我在一个网站上使用了这个beautifulsoup代码:

headers = ({'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36'})
funda = "https://www.funda.nl/koop/amsterdam/"
response = get(funda, headers=headers)
print(response)
html_soup = BeautifulSoup(response.text, 'html.parser')

print(response.text)
我收到了这个回复。回复短信:

<Response [200]>
<!DOCTYPE html>
<html>

<head>
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
<meta http-equiv="cache-control" content="max-age=0" />
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="expires" content="0" />
<meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT" />
<meta http-equiv="pragma" content="no-cache" />
<meta http-equiv="refresh" content="10; url=/distil_r_captcha.html?requestId=01fe7635-8c6e-404f-b905-fd8d854fa40c&httpReferrer=%2Fkoop%2Famsterdam%2F" />
<script type="text/javascript">
    (function(window){
        try {
            if (typeof sessionStorage !== 'undefined'){
                sessionStorage.setItem('distil_referrer', document.referrer);
            }
        } catch (e){}
    })(window);
</script>
<script type="text/javascript" src="/fundadst.rvezxdcvwbzdewcsbar.js" defer></script><style type="text/css">#d__fFH{position:absolute;top:-5000px;left:-5000px}#d__fF{font-family:serif;font-size:200px;visibility:hidden}#suuazwruefzeaa{display:none!important}</style></head>
<body>
<div id="distilIdentificationBlock">&nbsp;</div>
</body>
</html>

(功能(窗口){
试一试{
if(会话存储的类型!==“未定义”){
sessionStorage.setItem('distil_referer',document.referer);
}
}捕获(e){}
})(窗口);
#位置:绝对;顶部:-5000px;左侧:-5000px}字体系列:serif;字体大小:200px;可见性:隐藏}suuazwruefzeaa{显示:无!重要}
我被封锁了吗?这个街区是永久性的吗?我能做点什么吗


谢谢

看起来您正试图使用python请求库刮取一个javascript呈现的站点?这个库只能抓取静态站点,这就是为什么您在响应中收到JS块的原因

你应该考虑切换到下面的一个包:

  • (带无头浏览器)
  • (使用蜘蛛在网上爬行)
还有一些其他的库包装了一个chrome驱动程序,但维护的库并不多

以下是关于使用硒进行刮除的中级教程:

以下是使用网络爬虫进行抓取的中级教程:


希望这能有所帮助。

看起来像是一个特定的反机器人服务,一些讨论中有很多技巧可以使用爬行。您可能需要尝试不同的用户代理、不同的IP地址等。有些站点只是阻止任何自动操作(请检查robots.txt文件),有时是站点的所有者,有时是站点的主机。你可以随时给公司发电子邮件。大多数公司都想被炒作,因为这会推动流量。但是主机通常不希望他们的客户站点被屏蔽(只需要花费带宽钱)。您没有被屏蔽您遇到了臭名昭著的
distil\u r\u captcha
,而且它是永久性的。解决方案是尝试不同的用户代理和/或头。我知道至少有一个有效,但我不能在这里列出,因为如果我这样做,distil可能会阻止它。这是你必须自己去发现的东西。非常感谢!我会试试看,如果街区消失了,我会告诉你的。在这个论坛中,前面提到的selenium很快就被JS标记出来了,但我还没有尝试过personallyNo问题。让我知道一切进展如何。