有关于crawler:pc的json接口详细介绍文档

分三个方向来介绍

一,json配置文件的详细情况

二,有关于抓取函数的情况.

三,关于crawler:pc抓取入口的一些情况.

一,json配置文件的详细情况

1, 一般json的配置文件如下

``

``

{

"cate\_parent": "懂美味",

"cate\_name": "99健康食谱",

"cate\_name\_en": "99\_jiankang\_shipu",

"category\_path": "/shipu/",

"find\_max\_page\_url": "/shipu/",

"find\_max\_page\_func": "crawl\_get\_max\_page\_shipu",

"page\_list\_path\_template": "<a href="http://ys.99.com.cn/shipu/">http://ys.99.com.cn/shipu/</a>{page\_html}",

"get\_page\_details\_func": "crawl\_get\_page\_details\_shipu",

"get\_detail\_func": "crawl\_get\_detail\_shipu",

"get\_page\_url\_func": "crawl\_get\_page\_url\_ys\_yuer"

}

``

这其中 get\_page\_url\_func是一个

可选的参数

当这个配置文件存在的时候,爬虫的入口脚本会认为你要自己配置抓取回来的page的详细情况 默认抓取回来的page最大页是一个整数. 如果get\_page\_url\_func这个配置存在 那么拼接的page\_list\_path\_template会被爬虫入口无视,爬虫会默认调用你返回的参数情况。 cate\_parent

必选参数

你提取的文章会存在一个分类中 指向的上一级分类名字 这里必须给出 否则会报错。 cate\_name

必选参数

当前等级分类的名字 cate\_name\_en

必选参数

当前分类的英文名字 如果没有 可手动给定一个。 category\_path

必选参数

分类的path可能会和find\_max\_page\_url是一个参数 find\_max\_page\_url

必选参数

这里会提取一个分页的最大翻页值 这里必须给定 这个最大翻页值存在的url。 find\_max\_page\_func

必选参数

提取最大翻页page的业务逻辑的函数,这里必须给定,否则程序会报致命错误. page\_list\_path\_template 前面介绍过 在get\_page\_url\_func

不存在的情况下是一个必选的参数

,如果存在该配置的函数,那么这个配置不会再起作用,因为你已经要自己给定了. get\_page\_details\_func

必选参数

抓取文章详细页url的一个函数,这里返回的是一个纯url组成的数组,如何抓取文章详细页面的urf的业务逻辑就写在此处. get\_page\_url\_func

必选参数

此函数下 已经在文章的界面里 提取文章内数据的业务逻辑就在写在此处, 2,其他情况的json

``

``

{

"meta": {

"cate\_parent": "常用方剂"

},

"cate\_parent": "",

"cate\_name": "病因",

"cate\_name\_en": "zhongyao\_fangji\_bingyin",

"category\_path": "/tcm/zyxx/bz/bingyin/",

"find\_max\_page\_url": "/tcm/zyxx/bz/bingyin/",

"find\_max\_page\_func": "crawl\_get\_max\_page\_zyy",

"page\_list\_path\_template": "/tcm/zyxx/bz/bingyin/index{page}.html",

"get\_page\_details\_func": "crawl\_get\_page\_details\_zyy",

"detail\_url\_relative\_path": "/tcm/zyxx/cyfj/jiebiao/",

"get\_detail\_func": "crawl\_get\_detail\_zyc",

"fix\_import\_data\_func": "crawl\_fix\_import\_zyy"

}

``

这里出现了新的配置fix\_import\_data\_funcfix\_import\_data\_func 可选参数 这个配置的目的是fix一些数据,这里开放的是一个fix数据的接口,方便操作,必须给定处理的函数,

"meta": {

"cate\_parent": "常用方剂"

},

这里的meta 实际上也是开放一个接口, 当我们页面情况特别复杂的时候需要提取许多一级 二级 已经三级分类,此参数可开放一个填写的接口来完成这些操作. 二,抓取函数的情况. 抓取函数一般情况下有三个存在,必须写在Helpers的全局函数下面 下面给出默认情况下函数的情况.

``

function crawl\_get\_max\_page\_zyc($crawler)

{

//$crawler->filter('')

return 4;

}

function crawl\_get\_page\_details\_zyc($crawler)

{

// crawler filter ... each ...

return \['/tcm/zyxx/cyfj/jiebiao/1125/', '<a href="http://www.pharmnet.com.cn/tcm/zyxx/cyfj/jiebiao/1124/">http://www.pharmnet.com.cn/tcm/zyxx/cyfj/jiebiao/1124/</a>'\];

}

function crawl\_get\_detail\_zyc($crawler)

{

$data = \[\];

$data\['title'\] = "葱白七味饮";

// $data\['body'\] = " 测试的 ...";

//Image::make ...

//$data\['image\_url'\] = " /saved/image/path ...";

//$data\['keywords'\] = ''; // "关键词1 关键词2 关键词3"

//$other\_data = \[\];

//$data\['json'\] = json\_encode($other\_data); // 如果有的话...

return $data;

}

其中的注释也很明白的写出了一些变量该怎么存 该如何操作,这里只谈返回的值的类型crawl_get_max_page_zyc这个函数返回的是一个整数类型的翻页最大值

一般情况下如果存在get_page_url_func这个配置 那么这个函数就不会起任何的作用了.请根据实际情况选择.

crawl_get_page_details_zyc这个函数提取的是一个分页下面所有文章内容的url.返回的一定是一个数据 或者是只存在单个数据的数组

.function crawl_get_detail_zyc 这一部返回的data是一个数组 会被直接存入数据库如何获取各字段的数据 以及详细操作 .如上实例的注释中已经详细给出,请仔细阅读.

三,关于crawler:pc抓取入口的一些情况.crawler:pc 这个爬虫会在各个抓取阶段检测抓取数据,异常分为以下几种

1,dd出来告诉你xx数据并未获得.这样的一般情况下是你没有给必选的参数,或者参数给的不对,程序直接停止执行了.

2,红色error错误,此异常属于较为严重的类型,数据上的异常,必须检查传入数据的情况.

3,最严重的致命异常,此异常较为严重,如果出现致命异常,说明爬虫自身排错都没排出来,此时建议详细分析错误原因并上报此错误,可以增加爬虫代码的健壮程度,增强爬虫自身排错能力.

日记本

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

赞赏支持
被以下专题收入,发现更多相似内容