Copy codeThe Code is as follows:
<? Php
// Contains the PHP Simple html Dom class library file
Include_once ('./simplehtmldom/simple_html_dom.php ');
// Collect html
Function getwebcontent ($ url ){
$ Ch = curl_init ();
$ Timeout = 10;
Curl_setopt ($ ch, CURLOPT_URL, $ url );
Curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, 1 );
Curl_setopt ($ ch, CURLOPT_CONNECTTIMEOUT, $ timeout );
Curl_setopt ($ ch, CURLOPT_FOLLOWLOCATION, 1 );
$ Contents = trim (curl_exec ($ ch ));
Curl_close ($ ch );
Return $ contents;
}
// Obtain the title and url
$ String =
Getwebcontent ('HTTP: // www.babytree.com/learn/zhunbeihuaiyun/jijibeiyun/2 ');
// Regular expression match <li> get the title and address
Preg_match_all ("/<li> <a href = \" \/learn \/article \/(. *) \ "> (. *) <\/a> /",
$ String, $ out, PREG_SET_ORDER );
Foreach ($ out as $ key => $ value ){
$ Article ['title'] [] = $ out [$ key] [2];
$ Article ['link'] [] = "http://www.babytree.com/learn/article/". $ out [$ key] [1];
}
// Obtain the document content based on the url
Foreach ($ article ['link'] as $ key => $ value ){
$ Html = file_get_html ($ value );
$ Div = $ html-> find ('div [id = pagenum_0] ');
$ Article [content] [] = $ div [0]-> innertext;
}
// Title transcoding-this step is not required for real use-because we would have used utf8
// It cannot be saved as a file without transcoding.
Foreach ($ article [title] as $ key => $ value ){
$ Article [title] [$ key] = iconv ('utf-8', 'gbk', $ value); // Transcoding
}
// Save the file
$ Num = count ($ article ['title']);
For ($ I = 0; $ I <$ num; $ I ++ ){
File_put_contents ("registry.article=title={ I }.txt", $ article ['content'] [$ I]);
}
/* It was originally intended to be sent before .. But let's take a look. It's all half past three... Even yesterday's
It is best to use regular expressions to obtain the content of an article, and the speed is also the fastest,
But regular expressions are good, but regular expressions are really difficult! So I checked it,
There are also many people using PHP Simple Dom on the Internet, although the efficiency is slow, but the effect is still good
From the file containing the class library to the txt file, it may take about 7/8 seconds for further optimization, especially the regular expression used to get the content of the article, which is too disgusting.
You can try it out */
?>