爬虫心得(三)

说完以上这些,就到了修改xml模板的环节了。

目录

一     2种模板的作用

二     app模板的配置

三:template.xml的配置


xml模板的作用

一     2种模板的作用

1.app.xml 是用来配置采集的频道的信息。内容包括频道名称,请求链接,请求方式,请求头等。

2.对返回的新闻列表和返回的详情页的处理。

TemplateParser是模板解析器,会解析模板里的规则。AppCrawler是一个抽象类,具有一个解析器对象,在AppCrawler类里,解析出的规则会被赋值给对应的变量,requestList是请求新闻列表方法,会用到模板规则里的链接。

模板规则解析这部分暂时不会涉及到。

3.要做的就是继承AppCrawler类,根据需要重写requestList,requestDetail,processArticle这三个方法。

4.程序启动后会先解析模板

模板的作用相当于是 数据的初始化。

举个例子: 频道对应的变量就是appChannelInfo


二     app模板的配置

1.app.xml该文件名规定不许更改。其余模板名称可以更改

2.每个频道的http请求都需要配置

3.需要说明一下,在http请求的标签中 heder标签中的key为请求头的名称,value则为相应的值

GET">

4.template.xml文件的配置,在这里先提一下,因为在app.xml的模板中,每个频道最后都要解析到下一级模板中。解析的顺序和源码中编写顺序一致。

5.配置时的详细问题

pageNo=${变量名}

<变量名 from="1" to="3" increment="1" />

6.其余元素名称意义如下表

元素名称

说明

备注

app

配置文件根元素。一个app中可以有多个channel。

 

site

app的站点信息,包含siteName、logo以及app的pc网址。

CDATA中保存着站点网址信息。

siteName必须保持唯一

channel

app的频道信息,包含channelName,以及采集方式、抽取模板等信息。

CDATA中保存着频道的网址信息。

channelName必须保持唯一;

频道网址信息必须存在确切确。

listPage

频道列表页翻页配置

 

next

翻页时,url中的参数变化范围。从from值,以increment值为步进,增加到to值。

max值是最大翻页次数,如果达到此值无条件停止翻页。

 

http

请求发送方式

get和post不区分大小写

header

自定义的http header,key为header名称,value为header值

此值是固定的,每次请求都会有此信息

template

频道信息抽取模板,name可以随便写,parent中写模板的相对于app.xml文件的路径。

一个channel可以有多个template

parent如果不为空,则其指定的抽取模板必须存在

 

将app.xml文件配置代码列出: