概要:なし技術的な内容、ちょうどそれを記録
問題:1、生成およびCPとして
ページ要求リストは埋め込みとCPとして生成方法、2、
3、返されたコンテンツの書式設定
まず:したがって、これら2つのパラメータを構築する必要があるリストとコンテンツページのステッチの必要性、要求後のコンテンツ、およびCP引数必須として見ることができ、
1 、ページフォーマットのリスト: HTTPS:// m.toutiao.com/list/?tag=news_sports&ac=wap&count=20&format=json_raw&max_behot_time=0&as=A165EE21707908E &CP = 5E1009A0D8AE0E1 2 、コンテンツページフォーマット: HTTPS:// www.toutiao.com / i11111111111111111111 /?チャネル= news_sports& W2atIF = 1
CPおよび実装する必要性など一覧ページには、ここでは、オンラインでのコードを借りました。
<?PHPの 関数getAsCp() { として$ '' =。$ CP = '' ; $時間 = 時間(); $キー = strtoupper(dechex($時間)); $ md5Key = strtoupper(MD5($時間)); もし(!8 == strlenを($キー)){ $として = '479BB4B7254C150' ; $ CP = '7E0AC8874BB0985' ; } 他{ $ md5KeyAsc5 = SUBSTR($ md5Key、0、5 )。 $ md5KeyDesc5 = SUBSTR($ md5Key、-5 )。 $として '' =; $ CP = '' ; 用($ iは、0 = $ I ; <5 $ I ++ ){ $として。= $ md5KeyAsc5 [ $ I ]。$キー [ $ I ]; $ cpは。= $キー [ $ I + 3]。$ md5KeyDesc5 [ $ I]; } として$ = 'A1'。ドル。SUBSTR($キー、-3 ); $ CP = SUBSTR($キー、0、3)。$ cpは。「E1」。 } 戻り 配列(として$、$ CP )。 } $ T = getAsCp()。 エコー $ T [0]。 ""。$ T [1];
解決の難しさ2は、リストページでは、CP、建設本物のフォーマットリストページとして要求する第1およびローカルファイルによって得られました。
Unicodeは、コンテンツは、エンコードされた変換の必要性、コンテンツの処理を処理#コード実装するCコール、困難を解決されて返さ3
使用したシステムを、 使用System.Collections.Genericを、 使用SpiderInterface; 使用System.Text.RegularExpressionsを、 クラスLocoyCode { /// <まとめ> /// 実行メソッド、クラス及びメソッド名を変更することはできません。 /// </要約> /// ます。<param name = "コンテンツ"> タグの内容</ param>の /// <PARAM NAME = "レスポンス"> URLを含むページ応答、HTML形式のオリジナルの属性</ param>の /// <リターン> 返品ラベル処理されたコンテンツ</リターン> 公共 文字列ファイル名を指定して実行(文字列の内容、 新しい正規表現(@ " \\ U([0-9A-F] {4})"、RegexOptions.IgnoreCase | RegexOptions.Compiled).Replace( コンテンツ、X => 列 .Empty + Convert.ToChar(Convert.ToUInt16( x.Result(" $ 1 ")、16 ))); // 戻り値の内容。 } }
または古いルールは 、グループQQ 623607229内の技術交流へようこそ、その後、自由時間には、プロジェクトを維持するため、開発します