php抓取网站图片源码

<?php

/*完成网页内容捕获功能*/

function get_img_url($site_name){

$site_fd = fopen($site_name, "r");

$site_content = "";

while (!feof($site_fd)) {

$site_content .= fread($site_fd, 1024);

}

/*利用正则表达式得到图片链接*/

$reg_tag = ‘/<img.*?\"([^\"]*(jpg|bmp|jpeg|gif)).*?>/‘;

$ret = preg_match_all($reg_tag, $site_content, $match_result);

fclose($site_fd);

return $match_result[1];

}

/* 对图片链接进行修正 */

function revise_site($site_list, $base_site){

foreach($site_list as $site_item) {

if (preg_match(‘/^http/‘, $site_item)) {

$return_list[] = $site_item;

}else{

$return_list[] = $base_site."/".$site_item;

}

}

return $return_list;

}

/*得到图片名字,并将其保存在指定位置*/

function get_pic_file($pic_url_array, $pos){

$reg_tag = ‘/.*\/(.*?)$/‘;

$count = 0;

foreach($pic_url_array as $pic_item){

$ret = preg_match_all($reg_tag,$pic_item,$t_pic_name);

$pic_name = $pos.$t_pic_name[1][0];

$pic_url = $pic_item;

print("Downloading ".$pic_url." ");

$img_read_fd = fopen($pic_url,"r");

$img_write_fd = fopen($pic_name,"w");

$img_content = "";

while(!feof($img_read_fd)){

$img_content .= fread($img_read_fd,1024);

}

fwrite($img_write_fd,$img_content);

fclose($img_read_fd);

fclose($img_write_fd);

print("[OK] ");

}

return 0;

}

function main(){

/* 待抓取图片的网页地址 */

$site_name = "http://uuhy.com/html/26785.html";

$img_url = get_img_url($site_name);

$img_url_revised = revise_site($img_url, $site_name);

$img_url_unique = array_unique($img_url_revised); //unique array

get_pic_file($img_url_unique,"./");

}

main();

?>

来自为知笔记(Wiz)

时间: 2024-11-09 02:48:47

php抓取网站图片源码的相关文章

PHP curl模拟浏览器抓取网站信息

curl是一个利用URL语法在命令行方式下工作的文件传输工具. 官方解释 curl是一个利用URL语法在命令行方式下工作的文件传输工具.curl是一个利用URL语法在命令行方式下工作的文件传输工具.它支持很多协议:FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP.curl同样支持HTTPS认证,HTTP POST方法, HTTP PUT方法, FTP上传, kerberos认证, HTTP上传, 代理服务器, cookies,

抓取网站数据不再是难事了,Fizzler(So Easy)全能搞定

首先从标题说起,为啥说抓取网站数据不再难(其实抓取网站数据有一定难度),SO EASY!!!使用Fizzler全搞定,我相信大多数人或公司应该都有抓取别人网站数据的经历,比如说我们博客园每次发表完文章都会被其他网站给抓取去了,不信你们看看就知道了.还有人抓取别人网站上的邮箱.电话号码.QQ等等有用信息,这些信息抓取下来肯定可以卖钱或者干其他事情,我们每天都会时不时接到垃圾短信或邮件,可能就这么回事了,有同感吧,O(∩_∩)O哈哈~. 本人前段时间了写了两个程序,一个程序是抓取某彩票网站的数据(双

Fizzler(So Easy)关于抓取网站数据,不再困难

首先从标题说起,为啥说抓取网站数据不再难(其实抓取网站数据有一定难度),SO EASY!!!使用Fizzler全搞定,我相信大多数人或公司应该都有抓取别人网站数据的经历,比如说我们博客园每次发表完文章都会被其他网站给抓取去了,不信你们看看就知道了.还有人抓取别人网站上的邮箱.电话号码.QQ等等有用信息,这些信息抓取下来肯定可以卖钱或者干其他事情,我们每天都会时不时接到垃圾短信或邮件,可能就这么回事了,有同感吧,O(∩_∩)O哈哈~. 本人前段时间了写了两个程序,一个程序是抓取某彩票网站的数据(双

Java导出Highcharts生成的图表为图片源码

本文转载自:http://blog.csdn.net/dengsilinming/article/details/7352054 需要的jar包: 需要的js文件:(可以通过http://www.highcharts.com/download下载highcharts对应的js文件) 下面是一些主要部分 web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5&

java GUI 返回图片源码

返回图片源码,重开一个类粘贴即可 package cn.littlepage.game; import java.awt.Image; import java.awt.image.BufferedImage; import java.io.IOException; import java.net.URL; import javax.imageio.ImageIO; public class GameUtil { // 工具类最好将构造器私有化. /* * 加载图片代码 * 返回指定图片的图片对象

爬虫,可用于增加访问量和抓取网站全页内容

爬虫,可用于增加访问量和抓取网站全页内容 爬虫道德规范: 1.不让爬的咱不爬 2.让爬的咱不能一直爬 使用爬虫提高文章访客说明: 1.本爬虫使用代理IP 2.伪装浏览器 3.粘贴地址即可使用 4.原文件 github 地址:https://github.com/xpwi/py/blob/master/py%E7%88%AC%E8%99%AB/eyes.py 5.下载原文件:https://xpwi.github.io/py/py%E7%88%AC%E8%99%AB/eyes.py # codin

剑走偏锋,robots.txt快速抓取网站的小窍门

在我抓取网站遇到瓶颈,想剑走偏锋去解决时,常常会先去看下该网站的robots.txt文件,有时会给你打开另一扇抓取之门. 写爬虫有很多苦恼的事情,比如: 1.访问频次太高被限制: 2.如何大量发现该网站的URL: 3.如何抓取一个网站新产生的URL,等等: 这些问题都困扰着爬虫选手,如果有大量离散IP和账号,这些都不是问题,但是绝大部分公司都不具备这个条件的. 我们在工作中写的爬虫大多是一次性和临时性的任务,需要你快速完成工作就好,当遇到上面情况,试着看下robots.txt文件. 举个栗子:

用curl抓取网站数据,仿造IP、防屏蔽终极强悍解决方式

最近在做一些抓取其它网站数据的工作,当然别人不会乖乖免费给你抓数据的,有各种防抓取的方法.不过道高一尺,魔高一丈,通过研究都是有漏洞可以钻的.下面的例子都是用PHP写的,不会用PHP来curl的孩纸先学习一下这块再往下看,可以参考这篇文章:http://blog.csdn.net/linglongwunv/article/details/8020845 下面言归正传,先说一种常见的方式,伪造来源IP,这也是好多刷票朋友常用的方法: 1.简单一点的可以在header伪造X-FORWARDED-FO

SPI方式读取外部FLASH抓取时序图

使用STM32的SPI控制器,对外部的W25X16 FLASH(2M字节)芯片进行操作.以下为逻辑分析仪抓取的时序. 以下是该FLASH芯片的命令表. 1.          1.读取器件ID. 先拉低片选信号CS,再发送命令0XAB,再发送三个字节的dummy.读取第四个字节数据,数据就是device ID.最后拉高CS,结束一次操作. 以下是发送命令0XAB放大的图.可以看出CLK空闲状态是高电平(CPOL = 1),偶数边沿为采样时刻(CPHA = 1). 2.          2.读取