admin 管理员组

文章数量: 1086019


2024年4月23日发(作者:三相异步电机对照表)

PHP抓取网页内容汇总

/quqiufeng/blog/item/

header("Content-type: text/html; charset=utf-8");

1、

$xhr = new COM("P");

$xhr->open("GET","localhost/?id=2",false);

$xhr->send();

echo $xhr->responseText

2、file_get_contents实现

$url="/pts";

echo file_get_contents( $url );

?>

3、fopen()实现

if ($stream = fopen('', 'r')) {

// print all the page starting at the offset 10

echo stream_get_contents($stream, -1, 10);

fclose($stream);

}

if ($stream = fopen('', 'r')) {

// print the first 5 bytes

echo stream_get_contents($stream, 5);

fclose($stream);

}

?>

②、使用php获取网页内容

/pts/archive/2007/08/26/

简单的做法:

$url="/pts";

echo file_get_contents( $url );

?>

或者:

if ($stream = fopen('', 'r')) {

// print all the page starting at the offset 10

echo stream_get_contents($stream, -1, 10);

fclose($stream);

}

if ($stream = fopen('', 'r')) {

// print the first 5 bytes

echo stream_get_contents($stream, 5);

fclose($stream);

}

?>

③、PHP获取网站内容,保存为TXT文件源码

/u1/44325/showart_

$my_book_url='/files/article/html/4/4550/';

ereg("/files/article/html/[0-9]+/[0-9]+/",$my_book_url,$m

yBook);

$my_book_txt=$myBook[0];

$file_handle = fopen($my_book_url, "r");//读取文件

unlink("");

while (!feof($file_handle)) { //循环到文件结束

$line = fgets($file_handle); //读取一行文件

$line1=ereg("href="[0-9]+.html",$line,$reg); //分析文件内部书的文章页面

$handle = fopen("", 'a');

if ($line1) {

$my_book_txt_url=$reg[0]; //另外赋值,给抓取分析做准备

$my_book_txt_url=str_replace("href="","",$my_book_txt_url);

$my_book_txt_over_url="$my_book_txt$my_book_txt_url"; //转换为抓取地址

echo "$my_book_txt_over_url

"; //显示工作状态

$file_handle_txt = fopen($my_book_txt_over_url, "r"); //读取转换后的抓取地址

while (!feof($file_handle_txt)) {

$line_txt = fgets($file_handle_txt);

$line1=ereg("^ .+",$line_txt,$reg); //根据抓取内容标示抓取

$my_over_txt=$reg[0];

$my_over_txt=str_replace("    "," ",$my_over_txt); //

过滤字符

$my_over_txt=str_replace("
","",$my_over_txt);

$my_over_txt=str_replace("

language="javascript">","",$my_over_txt);

$my_over_txt=str_replace(""","",$my_over_txt);

if ($line1) {

$handle1=fwrite($handle,"$my_over_txtn"); //写入文件

}

}

}

}

fclose($file_handle_txt);

fclose($handle);

fclose($file_handle); //关闭文件

echo "完成

";

?>

下面是比较嚣张的方法。

这里使用一个名叫Snoopy的类。

先是在这里看到的:

PHP中获取网页内容的Snoopy包

//

然后是Snoopy的官网:

/projects/snoopy/

这里有一些简单的说明:

代码收藏-Snoopy类及简单的使用方法

/?action=show&id=274

下载:/projects/snoopy/

今天才发现这个好东西,赶紧去下载了来看看,是用的parse_url

还是比较习惯curl

snoopy是一个php类,用来模仿web浏览器的功能,它能完成获取网页内容和发送表单的任务。

下面是它的一些特征:

1、方便抓取网页的内容

2、方便抓取网页的文字(去掉HTML代码)

3、方便抓取网页的链接

4、支持代理主机

5、支持基本的用户/密码认证模式

6、支持自定义用户agent,referer,cookies和header内容

7、支持浏览器转向,并能控制转向深度

8、能把网页中的链接扩展成高质量的url(默认)

9、方便提交数据并且获取返回值

10、支持跟踪HTML框架(v0.92增加)

11、支持再转向的时候传递cookies

具体使用请看下载文件中的说明。

include““;

$snoopy=newSnoopy;

$snoopy->fetchform(“/happy/?action=login“);

print$snoopy->results;

?>

include““;

$snoopy=newSnoopy;

$submit_url=“/happy/?action=login“;$submit_vars["logi

nmode"]=“normal“;

$submit_vars["styleid"]=“1“;

$submit_vars["cookietime"]=“315360000“;

$submit_vars["loginfield"]=“username“;

$submit_vars["username"]=“********“;//你的用户名

$submit_vars["password"]=“*******“;//你的密码

$submit_vars["questionid"]=“0“;

$submit_vars["answer"]=“”;

$submit_vars["loginsubmit"]=“提   交“;

$snoopy->submit($submit_url,$submit_vars);

print$snoopy->results;

?>


本文标签: 抓取 文件 获取