作者blc (Anemos)
看板Python
标题Re: [已解决] 网路爬虫 抓不到标签<img>的src属性
时间Mon Nov 12 21:21:02 2018
借你的标题说明一下网页是怎麽生成的。
先不管ssl签章什麽的,浏览器显示网页是用下面的步骤:
client(浏览器) server(网页伺服器)
浏览器传header --------->
包括前一页网址(referer)
post表单内容、cookies、
agent string等
伺服器收到header,
并根据header给内容,
如果有php的话是在这里执行。
<-------- 伺服器回传网页
浏览器收到网页
下载并执行网页里的javascript
javascript通常会修改网页内容,
或是产生图片网址之类的
显示网页
当然javascript不见得只执行一次,
在使用者点击、网页载入完毕,或是定时执行都有可能
(通称为事件 event)
在8comic.com的例子,图片的网址就是javascript产生的,
所以要图片网址有几个方法:
1. 执行javascript
以前还会用seamonkey、v8之类,从浏览独立出来的js引擎做,
目前大家都用Node.js跑,前面eight0推文就有个神器了,建议照这位大大的方法做。
2. headless浏览器
就是一般浏览器拿掉介面,我只知道python Selenium+PhantomJS,
但速度很慢就是了。
3. 自己解javascript
建议不要,除了自己要懂javascript以外,每次解都只能针一个网站,
成果无法累积到下个网站,而且也有很多技术专门用於混淆javascript程式码,
吃力不讨好。
※ 引述《bugbug777 (sil)》之铭言:
: 大家好,小鲁是个网路爬虫新手
: 最近想来写一个下载图片的网路爬虫
: 这里附上简短的程式码
: <img border="0" id="TheImg" name="TheImg"/>
: 似乎抓不到src的这个属性,请问这是为什麽?
: 图示8comic的海贼王924话图片
: https://imgur.com/ccnRjKr
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.229.117.89
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1542028866.A.C5A.html
1F:→ justoncetime: (2)chrome已经支援罗 11/12 22:32
2F:推 Neisseria: PhantomJS 目前开发停滞中,最好先试其他的方案 11/12 22:58
3F:→ s860134: chrome 要加起动一些参数 11/13 00:27
4F:→ s860134: 要加一些启动参数 11/13 00:27
5F:推 bugbug777: (2)firefox也支援了 stack overflow 有人有解说 11/13 01:02
6F:→ bugbug777: (3)我有点好奇 如果真的要解 有什麽文章可以参考嘛? 11/13 01:04
7F:→ bugbug777: 刚好最近都有碰一点QQ 11/13 01:04
8F:→ blc: 就是看懂它,找出必要的部分,自己作同样的处理。 11/13 20:24