php抓取网页所有图片(春节快乐PHP模拟浏览器访问url地址及相关源码如下)
优采云 发布时间: 2021-10-07 07:26php抓取网页所有图片(春节快乐PHP模拟浏览器访问url地址及相关源码如下)
春天
节日
快的
快乐的
在PHP中爬取时,通常使用PHP来模拟浏览器访问,通过http请求访问URL地址,然后获取html源代码或者xml数据。我们不能直接输出数据。我们经常需要在继续之前提取内容。格式化,以更友好的方式显示。
一、基本原则
常用的方法有file_get_contents 和curl。区别简述如下:
1. curl 多用于互联网网页之间的爬取,file_get_contents 多用于获取静态页面的内容。
2. file_get_contents 会为每一个请求重新做DNS查询,DNS信息不会被缓存。但是 CURL 会自动缓存 DNS 信息。请求同域名下的网页或图片,只需要进行一次DNS查询。这大大减少了 DNS 查询的数量。所以CURL的性能要比file_get_contents好很多。
3. file_get_contents 在请求 HTTP 时不会保持活动,但 curl 会。这样,在多次请求多个链接时,curl 的效率会更高。
4. curl 支持多种协议,如 FTP、FTPS、HTTP、HTTPS、GOPHER、TELNET、DICT、FILE 和 LDAP。也就是说,它可以做很多file_get_content 做不到的事情。curl可以在PHP中实现远程获取和采集内容;实现PHP网页版的FTP上传下载;实现模拟登录;实现接口对接(API)、数据传输;实现模拟cookie;下载文件断点续传等,功能非常强大。
5. file_get_contents 函数会受到php.ini 文件中allow_url_open 选项配置的影响。如果配置关闭,该功能将无效。并且 curl 不受此配置的影响。
二、图像捕捉
这里我们以file_get_contents为例,抓取国内某新闻网的新闻列表缩略图。
页面及相关html源码如下:
首先我们通过file_get_contents获取页面html的完整源码,并进行正则匹配匹配所有img标签的src属性值,也就是我们要获取的target:
这样上面代码中的$matches就存储了所有匹配到的imgs的src属性值,然后通过循环下载保存到本地:
三、通过PHP调用wget获取
上面的代码已经展示了一个基本的图片抓取方法,但是当目标图片一般比较大(比如壁纸图片)并且网速有限且不稳定时,可以不使用PHP下载,在Linux系统下调用wget命令即可。,具体示例代码如下:
图像抓取只是 PHP 网络爬虫可以完成的一小部分功能。通过PHP网络爬虫,您可以轻松获取互联网上更多的数据,无论是用于数据挖掘、市场调查,甚至是制作搜索引擎。
ymkj_024
每一个有梦想的品牌都值得我们的支持