网页内容抓取 php(php抓取代码的一个方法:代码中$就是要抓取的网页代码)
优采云 发布时间: 2021-09-11 02:12网页内容抓取 php(php抓取代码的一个方法:代码中$就是要抓取的网页代码)
PHP 抓取网页轻而易举,只需几行代码。但是,如果你疏忽了,程序写得不够严谨,就会出现一些网页爬取成功但有些页面无法爬取的问题。
先来看看php抓取代码的一种方法:
代码中的$data为要抓取的网页的html代码。
但是如果用这个程序来抓取网页文件,无疑是非常脆弱的。这对于抓取大多数网页来说可能没有问题,但是对于某些网页,您将无法捕获目标文件,而是会捕获意外的网页代码。这是什么原因?
其实curl_setopt()的一些可选参数是非常重要的。在抓取网页的部分,有一个参数是我们必须要考虑的,那就是UserAgent。什么是用户代理? UserAgent 缩写 (UA) 是一个只读字符串,用于声明浏览器用于 HTTP 请求的用户代理标头的值。简单来说就是“声明使用什么浏览器打开目标网页”。
说到这里,有些人可能会意识到不同的UserAgents会得到不同的网页请求。例如,移动浏览器和 PC 浏览器将获得不同的 Web 文件。比如打开PC浏览器和手机浏览器,会得到不同的结果页面,其实就是UserAgent的不同结果。
好的,到这里,我想大家都明白上面的代码应该怎么修改了。
正确的措辞应该是这样的:
以上代码声明使用 Internet Explorer 打开网页。当然也可以声明使用Firefox的UserAgent打开网页,代码如下:
您也可以声明使用其他用户代理打开网页。这是IE8的UserAgent:
IE8 on Windows Vista (兼容浏览)
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Trident/4.0)
IE8 on Windows Vista
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0)
IE8 on Windows 7
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0)
64-bit IE on 64-bit Windows 7:
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Win64; x64; Trident/4.0)
32-bit IE on 64-bit Windows 7:
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0)
Firefox 的用户代理:
Chrome 的用户代理:
导航器的用户代理:
Safari 用户代理:
Mozilla/5.0 (Windows; U; Windows NT 5.2) AppleWebKit/525.13 (KHTML, like Gecko) Version/3.1 Safari/525.13
Mozilla/5.0 (iPhone; U; CPU like Mac OS X) AppleWebKit/420.1 (KHTML, like Gecko) Version/3.0 Mobile/4A93 Safari/419.3
Opera 的用户代理:
Opera/9.27 (Windows NT 5.2; U; zh-cn)
Opera/8.0 (Macintosh; PPC Mac OS X; U; en)
Mozilla/5.0 (Macintosh; PPC Mac OS X; U; en) Opera 8.0
通过设置UserAgent,可以避免部分网页由于UA不同而返回不同http请求的错误,使您的网络爬虫程序更加完整和严格。