PHP-抓取网页时遇到的问题?

PHP-抓取网页时遇到的问题?

瑾兮 发布于 2017-08-13 字数 161 浏览 1264 回复 5

我想抓取某些网站的书籍内容和新闻内容,可有些网站是的内容已被生成图片,我只想抓纯文字页面,我现在的做法是判断页面的汉字数,但不太准确,大家有什么好方法吗?

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

虐人心 2017-10-30 5 楼

看我你的问题,我的理解有两个,

一个是认为内容被生成到以图片为背景的模式,

另一个是内容和图片是一体的,相当于就是ps出的图片内容

如果是第一种情况的话,建议你和上面各位大牛说的一样,直接采用file函数去获取然后正则规律剔除出来就可以,或者是运用curl扩展去获取操作也行,只要正则写对应就没太大问题

但是如果是第二种情况的话,内容文字被ps到了图片上,那这个就有点难获取了吧,以前我用过一个可以获取到ps到图片的标题,内容,关键字的方法,如果是这种的话,建议你参考一下:

<?php
$image_info = array();
$size = getimagesize('图片文件.jpg', $info);
if(isset($info['APP13']))
{
$iptc = iptcparse($info['APP13']);
foreach (array_keys($iptc) as $s)
{
$c = count ($iptc[$s]);
for ($i=0; $i <$c; $i++)
{
@$image_info[$s] .= $iptc[$s][$i];
}
}
}
print_r($image_info);

泛泛之交 2017-10-25 4 楼

1、你可以把那些已经生成图片的网站放到黑名单里面,抓数据时不去抓黑名单里面的数据;
2、一般生成的图片都比较大,可以通过图片大小来判断,如http://www.7788wx.com/files/article/attachment/0/18/1703737/202940.gif就是小说的一个章节图片,很大;
3、图片中的文字可以通过ocr进行提取;

瑾兮 2017-10-10 3 楼

一般采集器的实现方式都是通过先对不同的网站定义不同的抓取规则,比如你要抓标题一般都是class或者id为title、subject等关键字做为正则的匹配符,内容也是一样,然后可以把这些匹配规则放到后台数据库或者是配置文件里,然后只要定时遍历你配置好的这些网站,通过file_get_contents()抓取指定URL的内容,然后根据定义好的规则进行匹配,得到新闻内容,最后入库,大体的实现方式就是这样的。

想挽留 2017-10-09 2 楼

你还可以分析下你要抓取页面的结构,一般都会把内容放在一个div里,div的id一般也都很有规律,比如content、Contents...,你找到他内容的具体位置,再用文字数判断就会更准确了,或者是图片名字有时也会包含content、Attachment字符串或日期什么的。

想挽留 2017-09-05 1 楼

用file_get_contents( $url )先把内容抓下来,然后存到临时文件或变量里,通过正则去掉所有<img>标签内容就可以吧。另外给你推荐一个php写的抓取工具类Snoopy,它可以根据你的需要方便抓取网页的内容、网页的文字(去掉HTML代码)、方便抓取网页的链接等。

Snoopy