本文实例讲述了CodeIgniter实现从网站抓取图片并自动下载到文件夹里的方法。分享给大家供大家参考。具体如下:
因为某网站看图比较坑爹,要一页一页的翻页。。。。所以。。。。就写了这么个东西
(我是产品不是程序员)运行速度简直无法忍受,而且经常会有错误发生,所以希望大家帮忙改进(PHP)。
当然也欢迎看到PYTHON,GOLANG的版本~~^_^
1. controllers:
1
2
3
|
$this ->load->helper( 'date' ); $this ->load->helper( 'phpQuery' ); //我是把phpQuery单文件放到helper里了 |
2. view:
这里只是为了快速出产品,所以直接在VIEW里写的代码,请无视变量名。。。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
<?php $imageslist = phpQuery::newDocumentFile( 'http://g.e-hentai.org/g/xxxxx/xxxxxxx/' ); //首页 $pn = 1; //页数 $ps = $imageslist ->find( '.ptt td a' ); //从首页抓页面导航 //从页面导航开始获取页面内容 foreach ( $ps as $p ) { echo '第' . $pn ++. '页:<a href="' .pq( $p )->attr("href ").'" /></br>'; $imagesnow = phpQuery::newDocumentFile(pq( $p )->attr( "href" )); //单页内容 $images = $imagesnow ->find( '#gdt a' ); //抓取图片页列表 foreach ( $images as $image ) { echo '<a href="' .pq( $image , $imagesnow )->attr("href ").'" /></br>'; $imagebigs = phpQuery::newDocumentFile(pq( $image , $imagesnow )->attr( "href" )); //获取单图片页地址 echo '<img src="' . $imagebigs ->find( '#i3 img' )->attr( 'src' ). '"></br>' ; //输出图片 ob_start(); readfile( $imagebigs ->find( '#i3 img' )->attr( 'src' )); $img = ob_get_contents(); ob_end_clean(); $filename = 'img/' .now(). '.jpg' ; $f = fopen ( $filename , 'a' ); fwrite( $f , $img ); fclose( $f ); } } ?> |
希望本文所述对大家基于CodeIgniter的php程序设计有所帮助。