|      1ZOwl      2015-03-12 00:14:18 +08:00 抓取父节点,再遍历不行吗 | 
|  |      2ljcarsenal      2015-03-12 00:15:57 +08:00 BeautifulSoup pyquery | 
|  |      3ericls      2015-03-12 00:20:50 +08:00 via Android 简单粗暴的办法 每探测到一个图片 就保存 并且在tree中替换为本地地址 再获取文字内容… 遍历nth-of-type也是可以的 但是用数据库去维护图片和文章的关系就没必要了 | 
|  |      4gkiwi      2015-03-12 00:40:13 +08:00 如果网站不太大,而且是静态网站的话,参考这个: ============================================= wget -c -r -np -k -p http://vuejs.org/api/ 其中 -c:继续下载已下载了一部份的档案 -r:表示循环下载 -np:不进入上层的目录(也就不会下载其他网站的js等等) -k:将下载后的 HTML 的链结转换為本地档案(so smart) -p:下载所有显示网页所需的档案,例如图片等 另外几个常用的参数: -A jpg,png,gif 如此仅仅下载后缀为jpg,png,gif的文件 -I /static,/content 只下载/static,/content路径下的文件 -e robots=off 因为有时候robot有disallow规则,让你不能爬某些文件夹/文件,显然你可以忽略它! 再举个栗子: wget -A png,jpg,gif,jpeg -I /static -e robots=off -c -r -np -k -p http://www.gzxzwk.cn/ =============================================END 当然具体还得看需求啦~~ 我经常用它来扒拉文档做离线用~~ | 
|      5zhkzyth OP @ZOwl 也想过这样做,先把要抓取的html整个解析成一个树,再用深度优先,遍历这棵树,遇到不同类型的节点,就做不同的处理,这样确实能保证顺序。但是不知道具体如何下手.=。= @ljcarsenal pyquery没用过,我去了解下.... @ericls 是个好方法,哈哈~~ @gkiwi 原来wget也可以这么强大,不过还是选择用scrapy来写,以后扩展也方便点~~ |