如何通过Shell+Curl抓取远程页面中的链接并存入文本

如何通过Shell+Curl抓取远程页面中的链接并存入文本,第1张

1、要用程序抓取网页自动保存到本地,就要会用socket编程,或者学习使用libcurl库,不做网页抓取的时候,这些知识依然非常有用。而且,不同的网页,内容不同,规律可能也不同。2、网页分析,本质是字符串处理和分析。所以需要掌握正则表达式和字符串处理相关的函数,以及函数库,比如tidy库等。正则表达式是用来匹配一类字符串的,方便找规律,也方便处理。而且,正则表达式跟语言无关,什么语言都能用得到。标准C库中没有正则表达式相关的函数,一般来说C中使用两种正则表达式库,一为POSIX C正则库,二为perl正则库PCRE。相比较而言PCRE要强大些,POSIX C正则库就足够使用。
3、例程,将下载下来的网页源代码处理成没有标签的纯文字文本。

如果某个域名对应多个ip,即有多台服务器。如何通过curl来访问指定一天服务器的url信息了。我们知道一般使用curl获取url信息的代码如下
<php
$url=">设置保存路径
define('IMAGE_DIR', 'c:\\xampp\\htdocs\\scraper\\image\\');
保存函数。
$imageUrl = 你要的的url
$imageType = 你要的保存的格式
saveImage($imageUrl, $imageType = 'IMAGETYPE_GIF') {
if (!file_exists(IMAGE_DIR)) {
mkdir(IMAGE_DIR, 0777, true);
}

if( $imageType === IMAGETYPE_JPEG ) {
$fileExt = 'jpg';
} elseif ( $imageType === IMAGETYPE_GIF ) {
$fileExt = 'gif';
} elseif ( $imageType === IMAGETYPE_PNG ) {
$fileExt = 'png';
}

$newImageName = md5($imageUrl) '' $fileExt;
$image = new Image();
$image->load($imageUrl);
$image->resizeToWidth(100);
$image->save( IMAGE_DIR $newImageName, $imageType );
return $newImageName;
}

这是我的类,保存前可转换格式,大小。
<php

class Image {
private $_image;
private $_imageFormat;

public function load($imageFile) {
$imageInfo = getImageSize($imageFile);
$this->_imageFormat = $imageInfo[2];
if( $this->_imageFormat === IMAGETYPE_JPEG ) {
$this->_image = imagecreatefromjpeg($imageFile);
} elseif( $this->_imageFormat === IMAGETYPE_GIF ) {
$this->_image = imagecreatefromgif($imageFile);
} elseif( $this->_imageFormat === IMAGETYPE_PNG ) {
$this->_image = imagecreatefrompng($imageFile);
}
}

public function save($imageFile, $_imageFormat=IMAGETYPE_JPEG, $compression=75, $permissions=null) {
if( $_imageFormat == IMAGETYPE_JPEG ) {
imagejpeg($this->_image,$imageFile,$compression);
} elseif ( $_imageFormat == IMAGETYPE_GIF ) {
imagegif($this->_image,$imageFile);
} elseif ( $_imageFormat == IMAGETYPE_PNG ) {
imagepng($this->_image,$imageFile);
}
if( $permissions != null) {
chmod($imageFile,$permissions);
}
}
public function getWidth() {
return imagesx($this->_image);
}

public function getHeight() {
return imagesy($this->_image);
}

public function resizeToHeight($height) {
$ratio = $height / $this->getHeight();
$width = $this->getWidth() $ratio;
$this->resize($width,$height);
}

public function resizeToWidth($width) {
$ratio = $width / $this->getWidth();
$height = $this->getheight() $ratio;
$this->resize($width,$height);
}

public function scale($scale) {
$width = $this->getWidth() $scale/100;
$height = $this->getheight() $scale/100;
$this->resize($width,$height);
}

private function resize($width, $height) {
$newImage = imagecreatetruecolor($width, $height);
imagecopyresampled($newImage, $this->_image, 0, 0, 0, 0, $width, $height, $this->getWidth(), $this->getHeight());
$this->_image = $newImage;
}

}

>


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10696517.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存