本文实例讲述了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程序设计有所帮助。