有关于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,最严重的致命异常,此异常较为严重,如果出现致命异常,说明爬虫自身排错都没排出来,此时建议详细分析错误原因并上报此错误,可以增加爬虫代码的健壮程度,增强爬虫自身排错能力.
这个人暂时没有 freestyle