0

次のようなメンバー リスト ページからユーザー名を収集したい: http://www.marksdailyapple.com/forum/memberslist/

すべてのページからすべてのユーザー名を取得したいのですが、

これをLinuxでbashを使ってやりたい

どこから始めればいいですか、誰かヒントを教えてください。

4

4 に答える 4

7

これが、私のXidelが作成された目的です。

xidel http://www.marksdailyapple.com/forum/memberslist/ -e 'a.username'  -f '(//a[@rel="Next"])[1]'

その単純な行で、適切なhtmlパーサーでページを解析し、cssセレクターを使用して名前付きのすべてのリンクを見つけ、xpathを使用して次のページを見つけ、すべてのページが処理されるまでそれを繰り返します

CSS セレクターのみを使用して記述することもできます。

xidel http://www.marksdailyapple.com/forum/memberslist/ -e 'a.username'  -f 'div#pagination_top span.prev_next a'

またはパターンマッチング。基本的には、検索したい html 要素をページ ソースからコピーし、テキスト コンテンツを{.}次のように置き換えます。

xidel http://www.marksdailyapple.com/forum/memberslist/ -e '<a class="username">{.}</a>*'  -f '<a rel="next">{.}</a>'
于 2013-10-26T23:08:06.663 に答える
2

まずwget、すべてのユーザー名ページを取得するために使用する必要があります。wget適切なリンクをたどるようにするには、いくつかのオプションを使用する必要があります (のマニュアル ページを確認してください)。

次に、 Stackoverflow が HTML の解析に正規表現を使用しないように指示しているにもかかわらず、正規表現を使用して HTML を解析する必要があります。

宿題でない場合は、その仕事に最適なツールを選択していません。

于 2013-10-26T19:15:34.623 に答える