PHP simple_html_dom.php + Regular Expression COLLECTION Article code

Source: Internet
Author: User

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 */
?>

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.