网址为http://www.specks-exotica.com...,
爬取文字部分毫无障碍,获取的链接也可以在浏览器打开图片,从浏览器也可以下载到图片,但是用urllib.request.Request下载图片就始终失败,但是也不报错。
网址为http://www.specks-exotica.com...,
爬取文字部分毫无障碍,获取的链接也可以在浏览器打开图片,从浏览器也可以下载到图片,但是用urllib.request.Request下载图片就始终失败,但是也不报错。
通过postman
直接调用图片链接,返回如下 html
,
<html><head>
<meta charset="utf-8">
<style type="text/css">
html, body, #partner, iframe {
height:100%;
width:100%;
margin:0;
padding:0;
border:0;
outline:0;
font-size:100%;
vertical-align:baseline;
background:transparent;
}
body {
overflow:hidden;
}
</style>
<meta content="NOW" name="expires">
<meta content="index, follow, all" name="GOOGLEBOT">
<meta content="index, follow, all" name="robots">
<!-- Following Meta-Tag fixes scaling-issues on mobile devices -->
<meta content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;" name="viewport">
</head>
<body>
<div id="partner"></div>
<script type="text/javascript">
document.write(
'<script type="text/javascript" language="JavaScript"'
+ 'src="//sedoparking.com/frmpark/'
+ window.location.host + '/'
+ 'IONOSParkingDE'
+ '/park.js">'
+ '<\/script>'
);
</script><script type="text/javascript" language="JavaScript" src="//sedoparking.com/frmpark/www.specks-exotica.com/IONOSParkingDE/park.js"></script>
</body></html>
可以看到里面有 document.write
,生成的 javascript
如下
</script><script type="text/javascript" language="JavaScript" src="//sedoparking.com/frmpark/www.specks-exotica.com/IONOSParkingDE/park.js"></script>
这里回去加载一个 park.js
的文件,内容如下
var google_afd_request = {
"client": "ca-dp-sedo89_3ph",
"drid": "as-drid-2244365169148097",
"domain_name": "www.specks-exotica.com",
"session_token": "create"
};
var setup = {
domain: 'www.specks-exotica.com',
registrar: 'IONOSParkingDE',
};
function google_afd_ad_request_done(google_afd_response) {
if (typeof (google_afd_response.session_token) == 'undefined') {
google_afd_response.session_token = '';
}
loadContentFrame(google_afd_response.session_token);
}
document.write(
'<script type="text/javascript" language="JavaScript" ' +
'src="http://pagead2.googlesyndication.com/apps/domainpark/show_afd_ads.js"><\/script>');
function loadContentFrame(session_token) {
var contentFrame = document.createElement('iframe');
contentFrame.setAttribute('src',
'http://sedoparking.com/search/registrar.php' +
'?domain=' + setup.domain +
'&rpv=2' +
'®istrar=' + setup.registrar +
'&gst=' + session_token +
'&ref=' + document.referrer +
''
);
contentFrame.setAttribute('name', 'regpark');
contentFrame.setAttribute('frameBorder', '0');
var contentContainer = document.getElementById("partner");
if (typeof (contentContainer) == 'undefined') {
contentContainer = document.createElement('div');
contentContainer.setAttribute('id', 'partner');
}
contentContainer.appendChild(contentFrame);
}
这个文件的功能:
1、添加 Google 的不知道是广告还是统计功能
2、创建网页的内容,并且添加了 document.referrer
和 session_token
校验
1、当判断到你不是浏览器访问的时候,对你进行 referrer
、session_token
等校验,防止爬虫等自动化工具
2、获取图片的时候你需要构造图片链接的 request header
,模拟在浏览器中的 request header
4 回答4.4k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
1 回答4.4k 阅读✓ 已解决
1 回答3.8k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
2 回答2k 阅读✓ 已解决
下载图片失败, 首先你要弄明白怎么失败了.