Home Backend Development PHP Tutorial Several ways to crawl pages with PHP_PHP tutorial

Several ways to crawl pages with PHP_PHP tutorial

Jul 13, 2016 am 10:38 AM
php generally several kinds exist develop Condition us crawl document Way local network need No

When we develop network programs, we often need to grab non-local files. Generally, we use PHP to simulate browser access, access the URL address through HTTP requests, and then get the HTML source code or XML data. We cannot output the data directly. , it is often necessary to extract the content and then format it to display it in a more friendly way.

Let’s briefly talk about several methods and principles of php crawling pages:


1. The main method of crawling pages with PHP:

1. file() function

2. file_get_contents() function

3. fopen()->fread()->fclose() mode

4.curl method

5. fsockopen() function socket mode

6. Use plug-ins (such as: http://sourceforge.net/projects/snoopy/)


2. The main ways for PHP to parse html or xml code:

1. file() function

? 1 2 3 4 5 6 7 8 9 <?php //定义url $url=&#39;http://t.qq.com&#39;;  //fiel函数读取内容数组 $lines_array=file($url);  //拆分数组为字符串  $lines_string=implode(&#39;&#39;,$lines_array);  //输出内容,嘿嘿,大家也可以保存在自己的服务器上 echo $lines_string; 

2. file_get_contents() function
Using file_get_contents and fopen must enable allow_url_fopen. Method: Edit php.ini and set allow_url_fopen = On. When allow_url_fopen is turned off, neither fopen nor file_get_contents can open remote files.

? 1 2 3 4 5 6 7 <?php //定义url $url=&#39;http://t.qq.com&#39;; //file_get_contents函数远程读取数据 $lines_string=file_get_contents($url); //输出内容,嘿嘿,大家也可以保存在自己的服务器上 echo htmlspecialchars($lines_string);

3. fopen()->fread()->fclose() mode ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 <?php //定义url $url=&#39;http://t.qq.com&#39;; //fopen以二进制方式打开 $handle=fopen($url,"rb"); //变量初始化 $lines_string=""; //循环读取数据 do{ $data=fread($handle,1024); if(strlen($data)==0) { break; } $lines_string.=$data; }while(true); //关闭fopen句柄,释放资源 fclose($handle); //输出内容,嘿嘿,大家也可以保存在自己的服务器上 echo $lines_string;

 

4. curl方式
使用curl必须空间开启curl。方法:windows下修改php.ini,将extension=php_curl.dll前面的分号去掉,而且需 要拷贝ssleay32.dll和libeay32.dll到C:WINDOWSsystem32下;Linux下要安装curl扩展。

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 <?php // 创建一个新cURL资源 $url=&#39;http://t.qq.com&#39;; $ch=curl_init(); $timeout=5; // 设置URL和相应的选项 curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); // 抓取URL $lines_string=curl_exec($ch); // 关闭cURL资源,并且释放系统资源 curl_close($ch); //输出内容,嘿嘿,大家也可以保存在自己的服务器上 echo $lines_string;

5. fsockopen() function socket mode
Whether the socket mode can be executed correctly is also related to the server settings. Specifically, you can use phpinfo to check which communication protocols are enabled on the server.

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 <?php $fp = fsockopen("t.qq.com", 80, $errno, $errstr, 30); if (!$fp) { echo "$errstr ($errno)<br />n"; } else {     $out = "GET / HTTP/1.1rn";     $out .= "Host: t.qq.comrn";     $out .= "Connection: Closernrn";     fwrite($fp, $out);     while (!feof($fp)) {         echo fgets($fp, 128);     }     fclose($fp); }

 

6. snoopy插件,最新版本是Snoopy-1.2.4.zip Last Update: 2013-05-30,推荐大家使用

使用网上非常流行的snoopy来进行采集,这是一个非常强大的采集插件,并且它的使用非常方便,你也可以在里面设置agent来模拟浏览器信息。

? 1 2 3 4 5 6 7 8 9 10 11 12 <?php //引入snoopy的类文件 require(&#39;Snoopy.class.php&#39;); //初始化snoopy类 $snoopy = new Snoopy; $url = "http://t.qq.com"; //开始采集内容 $snoopy->fetch($url);  //保存采集内容到$lines_string $lines_string = $snoopy->results; //输出内容,嘿嘿,大家也可以保存在自己的服务器上 echo $lines_string;

Note: The agent is set in line 45 of the Snoopy.class.php file. Please search for "var $agent" (the content in quotation marks) in the file. Browser content you can use PHP to get,
Use echo $_SERVER['HTTP_USER_AGENT']; to get browser information, and just copy the echo content into the agent.

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/735061.htmlTechArticleWhen we develop network programs, we often need to capture non-local files. Generally, we use PHP to simulate browsing. Access the server, access the url address through http request, and then get the html source code...
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Repo: How To Revive Teammates
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

CakePHP Project Configuration CakePHP Project Configuration Sep 10, 2024 pm 05:25 PM

In this chapter, we will understand the Environment Variables, General Configuration, Database Configuration and Email Configuration in CakePHP.

PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

CakePHP Date and Time CakePHP Date and Time Sep 10, 2024 pm 05:27 PM

To work with date and time in cakephp4, we are going to make use of the available FrozenTime class.

CakePHP File upload CakePHP File upload Sep 10, 2024 pm 05:27 PM

To work on file upload we are going to use the form helper. Here, is an example for file upload.

CakePHP Routing CakePHP Routing Sep 10, 2024 pm 05:25 PM

In this chapter, we are going to learn the following topics related to routing ?

Discuss CakePHP Discuss CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP is an open-source framework for PHP. It is intended to make developing, deploying and maintaining applications much easier. CakePHP is based on a MVC-like architecture that is both powerful and easy to grasp. Models, Views, and Controllers gu

How To Set Up Visual Studio Code (VS Code) for PHP Development How To Set Up Visual Studio Code (VS Code) for PHP Development Dec 20, 2024 am 11:31 AM

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

CakePHP Creating Validators CakePHP Creating Validators Sep 10, 2024 pm 05:26 PM

Validator can be created by adding the following two lines in the controller.

See all articles