爬虫類の心得(三)
以上、xmlテンプレートを修正するコーナーに着きました.
目次
2種類のテンプレートの役割
二appテンプレートの構成
三:template.xmlの構成
xmlテンプレートの役割
2種類のテンプレートの役割
1.app.xmlは、収集されたチャネルを構成するための情報です.コンテンツには、チャンネル名、リクエストリンク、リクエスト方式、リクエストヘッダが含まれます.
2.返されたニュースリストと返された詳細ページの処理.
TemplateParserはテンプレート解析器で、テンプレート内のルールを解析します.AppCrawlerは抽象クラスで、解析器オブジェクトを持ち、AppCrawlerクラスでは、解析されたルールが対応する変数に割り当てられます.requestListはニュースリストを要求する方法で、テンプレートルールのリンクに使用されます.
テンプレートルール解析のこの部分は、しばらくは触れません.
3.必要なのはAppCrawlerクラスを継承し、必要に応じてrequestList、requestDetail、processArticleの3つの方法を書き換えることです.
4.プログラム起動後にテンプレートを解析する
テンプレートの役割は、データの初期化に相当します.
例を挙げると、チャンネルに対応する変数がappChannelInfoです
二appテンプレートの構成
1.app.xmlこのファイル名は変更できないことを規定しています.残りのテンプレート名は変更できます
2.各チャンネルのhttpリクエストは構成が必要
3.httpリクエストのラベルでhederラベルのkeyがリクエストヘッダの名前、valueが対応する値であることを説明する必要があります
GET">
4.template.xmlファイルの構成は、app.xmlのテンプレートでは、各チャンネルは最後に次のレベルのテンプレートに解析されます.解析の順序はソースコードの記述順序と一致する.
5.構成時の詳細
PageNo=${変数名}
6.残りの要素名の意味は次の表のとおりです.
要素名
説明
コメント
app
ファイルルート要素を設定します.1つのappには複数のchannelがあります.
site
SiteName、logo、appのpcサイトを含むappのサイト情報.CDATAにはサイトのURL情報が保存されています.
siteNameは一意に保たなければならない
channel
appのチャネル情報は,channelName,収集方式,抽出テンプレートなどの情報を含む.CDATAにはチャンネルのURL情報が保存されています.
channelNameは一意に保たなければならない.チャンネルのウェブサイト情報は正確に存在しなければならない.
listPage
チャンネルリストページをめくる設定
next
ページをめくるとurlのパラメータが範囲を変更します.from値からincrement値をステップとしてto値に増加します.max値は最大ページ数であり、この値に達すると無条件にページを閉じる.
http
リクエスト送信方式
getとpostは大文字と小文字を区別しません
header
カスタムhttpヘッダ、keyはヘッダ名、valueはヘッダ値
この値は固定されており、リクエストのたびにこの情報が表示されます.
template
チャンネル情報抽出テンプレート、nameは任意に書くことができ、parentにテンプレートのappに対して書く.xmlファイルのパス.1つのチャンネルに複数のtemplateを持つことができます
parentが空でない場合は、指定した抽出テンプレートが存在する必要があります.
app.xmlファイル構成コードのリスト:
目次
2種類のテンプレートの役割
二appテンプレートの構成
三:template.xmlの構成
xmlテンプレートの役割
2種類のテンプレートの役割
1.app.xmlは、収集されたチャネルを構成するための情報です.コンテンツには、チャンネル名、リクエストリンク、リクエスト方式、リクエストヘッダが含まれます.
2.返されたニュースリストと返された詳細ページの処理.
TemplateParserはテンプレート解析器で、テンプレート内のルールを解析します.AppCrawlerは抽象クラスで、解析器オブジェクトを持ち、AppCrawlerクラスでは、解析されたルールが対応する変数に割り当てられます.requestListはニュースリストを要求する方法で、テンプレートルールのリンクに使用されます.
テンプレートルール解析のこの部分は、しばらくは触れません.
3.必要なのはAppCrawlerクラスを継承し、必要に応じてrequestList、requestDetail、processArticleの3つの方法を書き換えることです.
4.プログラム起動後にテンプレートを解析する
テンプレートの役割は、データの初期化に相当します.
例を挙げると、チャンネルに対応する変数がappChannelInfoです
二appテンプレートの構成
1.app.xmlこのファイル名は変更できないことを規定しています.残りのテンプレート名は変更できます
2.各チャンネルのhttpリクエストは構成が必要
3.httpリクエストのラベルでhederラベルのkeyがリクエストヘッダの名前、valueが対応する値であることを説明する必要があります
GET">
4.template.xmlファイルの構成は、app.xmlのテンプレートでは、各チャンネルは最後に次のレベルのテンプレートに解析されます.解析の順序はソースコードの記述順序と一致する.
5.構成時の詳細
PageNo=${変数名}
6.残りの要素名の意味は次の表のとおりです.
要素名
説明
コメント
app
ファイルルート要素を設定します.1つのappには複数のchannelがあります.
site
SiteName、logo、appのpcサイトを含むappのサイト情報.CDATAにはサイトのURL情報が保存されています.
siteNameは一意に保たなければならない
channel
appのチャネル情報は,channelName,収集方式,抽出テンプレートなどの情報を含む.CDATAにはチャンネルのURL情報が保存されています.
channelNameは一意に保たなければならない.チャンネルのウェブサイト情報は正確に存在しなければならない.
listPage
チャンネルリストページをめくる設定
next
ページをめくるとurlのパラメータが範囲を変更します.from値からincrement値をステップとしてto値に増加します.max値は最大ページ数であり、この値に達すると無条件にページを閉じる.
http
リクエスト送信方式
getとpostは大文字と小文字を区別しません
header
カスタムhttpヘッダ、keyはヘッダ名、valueはヘッダ値
この値は固定されており、リクエストのたびにこの情報が表示されます.
template
チャンネル情報抽出テンプレート、nameは任意に書くことができ、parentにテンプレートのappに対して書く.xmlファイルのパス.1つのチャンネルに複数のtemplateを持つことができます
parentが空でない場合は、指定した抽出テンプレートが存在する必要があります.
app.xmlファイル構成コードのリスト:
:template.xml
postman json, jsonpath xpath, 。
, .
jsonpath :https://blog.csdn.net/myself8202/article/details/80724968
xpath : https://blog.csdn.net/u013332124/article/details/80621638
jsonpath :http://jsonpath.com/
: