使用python爬取网页,获取不到图片地址
想要获取图1的p/p0997/2.png,可是最后可以得到他的一整行代码,就src是空的,在审查元素中是可以看到地址,并且切换图片时,还会实时变化,js方面不是很懂,请问...
想要获取图1的p/p0997/2.png,可是最后可以得到他的一整行代码,就src是空的,在审查元素中是可以看到地址,并且切换图片时,还会实时变化,js方面不是很懂,请问应该怎么解决呢?谢谢!这是网址 http://pictogram2.com/?p=2315,需要的是点开小图后的大图图片地址
展开
1个回答
展开全部
这个大图片是在点击之后用 JS 控制加载的。
你可以看看 js/js.js 这个文件,253 行:
function changeImg(){
jQuery("#bitImg").attr('src','p/p'+pictID+'/'+indexNum+'.'+jpgPng);
}
其实大图的规律很好找, 下面缩略图列表的 src 可以用 #variContent > li > img 取到,可以在源码中的 107 行找到:
view-source:http://pictogram2.com/?p=2315
缩略图列表地址长这样:
/p/p0997/tn/1.jpg
/p/p0997/tn/2.jpg
/p/p0997/tn/3.jpg
...
如果要获取大图,只要去掉“tn”这一段就可以:
/p/p0997/1.jpg
/p/p0997/2.jpg
/p/p0997/3.jpg
...
然后拼接域名在前面,GET 下来就是大图,比如第一个大图链接:
不过,你如果仅仅只是想要抓那个站的全部素材,穷举“p0997”这一段的序号(比如改成“p0098”,这个应该是图集的 ID),并且遍历最后一段的图片序号,扩展名可能是 jpg 也可能是 png,从 1 开始(“1.jpg”,“2.jpg”...)直到返回 404 停止。
思路大概是这么个思路,不过话说回来,你这么爬人家素材真的道德吗?
更多追问追答
追问
规律的话,其实直接看审查元素也可以找到,穷举是一个方法,但是不想用,主要是因为我是拿来练手用的,爬取这些素材并没有什么商业用途。在网上看到貌似可以使用phantomjs,但是没有学过
追答
PhantomJS 用来抓前端逻辑比较复杂的页面合适,性能略低,因为它模拟页面渲染过程,就是个浏览器。
你这个例子其实用静态页面分析,找规律抓 dom 就可以,因为这个网站的技术稍微滞后了点,很容易从代码中分析出逻辑。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询