問題タブ [wikipedia]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
objective-c - ウィキペディアのページのスクレイピングと解析
このようにフォーマットされたページをスクレイピングできる、Objective-C 内または Objective-C からアクセス可能な既存のライブラリがあるかどうか疑問に思っています。具体的には、すべての日付と、各日付の横にあるすべてのテキストです。そうでない場合、これを行うための最良の方法は何ですか? 正規表現?NSStringこのためのメソッドがすでに組み込まれている可能性があると聞きました。これは本当ですか?
XML ファイルや API など、スクレイピングに代わるものがないか探し回っていました。私は API を見つけましたが、利用可能な唯一のクライアントは他の言語であり、コンテンツをページに投稿することはできますが、コンテンツを取得することはできないようです。
編集:したがって、これらのリンクでAPIに関する詳細情報を見つけました:
そして、HTML でエンコードされたテキストを返すこのリクエストを思いつくことができました(形式は XML ですが、ページのテキストなども含まれます»a href=。そうでない場合でも、これを解析するための推奨事項はありますか?
編集 2 :このドキュメント ページのおかげで、データを取得することができた最も簡単でクリーンな方法は、関連するセクションの生データ (ウィキ マークアップ内)を返すこの構築されたリンクを使用することです。ただし、それを解析する必要があると思いますが、それが実際に当てはまる場合は、記事全体よりもはるかに簡単になるはずです.
Objective-C での次のような wiki マークアップの解析に関する推奨事項はありますか?
私が最終的に持ちたいのはNSDictionary、日付とそれに付随する情報のスニペットを格納する、または同様のコレクションだと思います。ありがとう!
database - ウィキペディアは重複エントリをどのように回避していますか?
ウィキペディアのような大規模なウェブサイトでは、重複したエントリをどのように分類できるでしょうか?
ユーザーが重複したエントリなどを作成した瞬間からの正確な手順を知る必要があります。わからないけど方法を知っている方は送ってください。
- - アップデート - -
wikipedia.com/horse があり、後で誰かが wikipedia.com/the_horse を作成したとします。これは重複したエントリです! 削除するか、元のページにリダイレクトする必要があります。
security - ブラックリスト IP データベース
Web のブラックリスト IP の公開データベースはありますか? ご存知のように、多くのパブリック Web プロキシでは、ウィキペディアのグローバル ブロッキングで使用されるブラックリストなどがあります。
c# - ウィキペディアのページからすべてのタグを取り除く方法、またはページを読みやすくする方法
すべてのタグを削除したい、ウィキペディアから[show] [Hide]のものを削除したい、またはページをより読みやすい形式にするWebサイトがあります。
ウィキペディアの印刷可能なバージョンを知っていますが、他の用途があるので、その中にタグは必要ありません。したがって、Webページからタグを削除するためのphp / C#のWebサイト、Webサービス、またはコードスニペットについては、元の質問にのみ回答してください。
また、Firefoxからリストをコピーする<li>と、*に置き換えられます。Firefoxに何かを設定して、ある種のような他の読み取り不可能な文字を返すことは可能ですか。
wikipedia - ウィキペディアの抄録へのリンク (Google Earth と同じ方法)
ウィキペディアのページを自分のアプリに埋め込んでいます。Google Earth で表示されるのと同じ簡略化された要約を表示したいと考えています。(最初のいくつかの段落と完全なコンテンツへのリンクを提供しますが、深刻なレイアウトはありません。)
printable=true オプションについては知っていますが、それは私が探しているものではありません。
mediawiki - ウィキペディアの「リンク先」はどのように機能しますか?
私は最近、ウィキペディアの「リンク先」機能 (エントリの左メニューの「ツールボックス」要素の下にあります) を使用しましたが、この機能が実際にどのように機能するのか疑問に思い始めました。
リンクの後にすべての記事エントリを検索するのはあまり効果的ではないと推測していますが、すべてのリンクは別のデータベースに保存されているのでしょうか? もしそうなら、これは記事が編集されたとき、または別のときに更新されますか?
ありがとう。
python - Python経由で中括弧で囲まれたブロックを削除する方法
サンプル テキスト:文字列-> rev タグ内のコンテンツ (lxml 経由)。
テキスト内の {{BLOCKS}} を削除しようとしています。
次の正規表現を使用して、単純な 1 行のブロックを削除しました。
ただし、これは、コンテンツの先頭にある最初の複数行の括弧で囲まれたセクションを削除しません。複数行の中かっこで囲まれたブロックを削除するにはどうすればよいですか?
編集:
回答からの解決策:
python - 多数の (すべてではない) ウィキペディアのページを取得する
私のNLPプロジェクトでは、ウィキペディアから多数のページ (たとえば 10000) をランダムにダウンロードしたいと考えています。XML ダンプ全体をダウンロードしなくても、次のように考えることができます。
- ウィキペディアのページを開く
- リンクの HTML を幅優先検索方式で解析し、各ページを開く
- 2で取得したページのリンクを再帰的に開く
ステップ 2 と 3 で、必要なページ数に達したら終了します。
どのようにしますか?あなたが考えるより良いアイデアを提案してください。
答え: これは私の Python コードです:
language-agnostic - スプレー ツリーの挿入
バイナリ ツリーのスキルを磨くためにいくつかの演習を行った結果、ウィキペディア: スプレー ツリーで概説されているように、スプレー ツリーを実装することにしました。
私が得ていないことの1つは、挿入に関する部分です。
それは言います:
まず、splay ツリーで x を検索します。x がまだ存在しない場合、それは見つかりませんが、その親ノード y は見つかりません。次に、y に対してスプレイ操作を実行し、y をスプレイ ツリーのルートに移動します。3 番目に、適切な方法で新しいノード x をルートとして挿入します。このように、y は新しいルート x の左または右の子になります。
私の質問は次のとおりです。上記のテキストは、記事の他の例に比べて非常に簡潔に見えますが、それはなぜですか? ここにはいくつかの落とし穴が残っているようです。たとえば、y ノードをルートまで展開した後、やみくもにルートを x に置き換えて、y を左または右の子として x に追加することはできません。
値がツリーにまだ存在していないと仮定しましょう。
私はこの木を持っています:
8 を挿入します。上記の説明で、6 ノードを見つけます。通常のバイナリ ツリーでは、6 ノードの右の子として 8 が追加されますが、ここではまず、ルートまでの 6 ノード:
次に、これら2つのいずれかが明らかに間違っています。
最初にスプレイを行い、次にルートとして新しい値を正しく追加する唯一の方法は、次の基準をチェックする必要があることを意味するように思えます(スプレイされたノードを新しいルートの左の子として追加するため):
- ルートに展開したノードは、新しいルートよりも小さい (6 < 8)
- ルートに展開したノードの右端の子も、新しいルート (20 8) より小さいです。
ただし、展開したノードを分割する場合、適切な子を取得して新しいノードの適切な子として追加すると、次のようになります。
しかし、この単純な変更で常に正しいツリーが得られるのでしょうか? 例を思いつくのに苦労していますが、これは次のようになる可能性があります。
- 追加したい新しい値は、一時ルート (ルートに展開したノード) よりも高いですが、一時ルートの右側の子の左端の子よりも高いですか?
すなわち。広げた後、基本的にこのように見えるツリーですが、ルートを置き換える前は?
13 を追加すると、新しいツリーは次のようになります。
または、これは決して起こり得ませんか?
私の 2 番目の質問は次のとおりです。操作を次のように書き直す方がはるかに簡単ではないでしょうか。
まず、splay ツリーで x を検索します。x がまだ存在しない場合、それは見つかりませんが、その親ノード y は見つかりません。次に、新しいノードを親ノードの左または右の子として追加します。3 番目に、追加したノードでスプレイ操作を実行し、新しい値をスプレイ ツリーのルートに移動します。
私が変更したものを示すために私のものを強調してください。
iphone - iPhone 用の MediaWiki スタイリング
iPhone で en.wikipedia.org にアクセスすると、デバイス用に美しくフォーマットされた en.m.wikipedia.org に転送されます。私は自分のサーバーに MediaWiki を持っています。iPhone で自分のサイトにアクセスしたときに、このフォーマットを利用できるようにしたいと思っています。これを有効にする簡単な方法はありますか? www.mediawiki.org/wiki/Manual:$wgHandheldForIPhone とhttp://www.mediawiki.org/wiki/Extension:MobileSkinまで取得しましたが、何も飛び出していません。