PYTHON3反爬虫(cookie限制)对策问题

发布于 2022-09-05 19:53:51 字数 2716 浏览 12 评论 0

爬虫新手,想要爬取下列网站的数据。求教该网站的反爬虫对策。
http://www.homes.co.jp/mansio...

■试过的方法
分别用过模拟浏览器webdriver.chrome和request的方法,代码和结果在最下。

■怀疑的反爬虫策略
模拟浏览器法头一次程序进去后能打开网站。但是再进时,被检测到使用ROBOTS程序后重定向至下述网址。之后能用Safari,或正常的chrome打开,没有被禁IP。
结合网址的描述,怀疑该网站是通过cookie限制来反爬虫的。
【webdriver.chrome时候的重定向】
http://www.homes.co.jp/distil...

■代码
【模拟浏览器法】

from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument('user-agent=ozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36')
driver = webdriver.Chrome(chrome_options=options)
driver.implicitly_wait(30)
driver.get('http://www.homes.co.jp/mansion/chuko/list/')
cookies=driver.get_cookies()
print(cookies)

【模拟浏览器法结果】
第一次能进去,之后被重定向。返回的cookie为空。

【request法】

import requests

header={'user-agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36'}
conn = requests.session()
conn.get('http://www.homes.co.jp/mansion/chuko/list/',headers=header)
resp = conn.get('http://www.homes.co.jp/mansion/chuko/list/',headers=header)
print(resp.text)

【request结果】

<!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_blocked.html?requestId=5d14e8ab-934c-469f-850b-fe5114ba592d&httpReferrer=%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="/nxtgrpdstl.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}#yfvqbuaatrrwufvvxqccss{display:none!important}</style></head>
<body>
<div id="distilIdentificationBlock">&nbsp;</div>
</body>
</html>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文