タグ

XPathに関するraimon49のブックマーク (21)

  • Weneedfeed

    ウェブページからフィードを生成するweneedfeedというツールをつくった。 使い方 このツールはRubygemとして実装されているので、Rubyがインストールされている環境が必要になる。ツール自体はgem installでインストールできる。 gem install weneedfeed 利用者には、URLとCSSセレクタをweneedfeed.ymlというYAML形式のファイルに書いてもらうことになる。例えばこのウェブサイト、r7kamura.comの新着記事のためのRSSフィードを生成しようとすると、こんな内容になる。 pages: id: r7kamuracom title: r7kamura.com url: https://r7kamura.com/ item_selector: li item_description_selector: p:nth-child(3) ite

    Weneedfeed
  • 普及して欲しくないアンチスクレイピングサービス - happyou.infoのブログ

    スクレイピングとは、ウェブページから情報を取り出す処理を指します。そのためのプログラムやツールが存在します。 さて、ここで立場を変えて、情報を取り出されてしまうウェブサイト側の立場になって考えてみますと、スクレイピングはあまりうれしくない存在であることがわかります。 ニュースサイトは、コストと時間をかけて書いた記事をコピーされ転載されてしまう。 オンラインショップは、ライバルの他社に商品リスト、価格、在庫の変化、顧客の評価等を把握されてしまう。 インターネット広告は、自社が出している/仲介している広告の種類と量をライバルに把握されてしまう。 他社の情報は把握したいが、自社の情報は把握されたくないと考えるのは自然なことのようです。その証拠として、スクレイピングの普及に合わせて、自分のサイトがスクレイピングされることを防ぐための「アンチスクレイピングサービス」なるものが世に広まりつつある点を挙

    普及して欲しくないアンチスクレイピングサービス - happyou.infoのブログ
  • iOSでXMLを読み込む(Libxml2-DOM)

    iOSでXMLをパースするには標準で、 NSXMLParser Libxml2 を使う方法があるようです。外部ライブラリもある様ですが、そのへんは未調査です。 それぞれ一長一短で、NSXMLParserはSAXタイプのパーサです。Libxml2はSAXとDOMタイプの両方を提供しています。 個人的にSAXはフラグを多用するので好きじゃないのとSAXタイプの解析方法は色々と参考に出来るサイトが多々存在したので、Libxml2/DOMでの解析を試してみました。 標準で使えると書きましたが、標準でライブラリは存在するが、標準でライブラリは引きこまれていません。個別に引き込む設定を行う必要があります。 Libxml2ライブラリの引き込み方は以下の方法が一番簡単でした。 プロジェクトを選択して「Build Phases」の設定画面を出します。「Link Binary With Libraries」を

    iOSでXMLを読み込む(Libxml2-DOM)
    raimon49
    raimon49 2014/04/23
    libxml2 Cインタフェース
  • JavaScript デバッグツール で $x で XPath セレクタ使えるのがいつの間にかメジャーになっていた

    最近 Web 開発とかクロスブラウザ対応みたいなことから遠のいているので今更感ありそうだけれど、AutoPagerize の siteinfo を気まぐれに書いてたら $x で XPath セレクタ使えるのが定番化してたのを今知った。調べたのは Windows 7 のみ。 Firefox 13.01 Webコンソール ○ Firebug ○ Opera 12.00 Dragonfly ○ Google Chrom 19 デベロッパーツール ○ Internet Explorer 9 開発者ツール × 対応状況は上のような感じだった。Safari はめんどいので入れてないけど多分使えるんじゃないですかね。調べてみたものの、XPath セレクタは Web 開発にそんな大事というわけでもない(どうなんでしょう)と思うし、色々なブラウザのデバッグツールで使えるといってもその利点も特に大きくなさそう

    raimon49
    raimon49 2012/08/07
    いつの間にかOperaでも使えるのか。
  • UIWebViewでスクレイピングするライブラリの試作版を作った - laiso - iPhoneアプリ開発グループ

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    UIWebViewでスクレイピングするライブラリの試作版を作った - laiso - iPhoneアプリ開発グループ
  • Yahoo! Pipes の XPath Fetch Page でフィードを出力してないサイトからRSS を配信する

    Yahoo! Pipes で、フィードを出力してないサイトから RSS を配信するために、Fetch Page モジュールを利用してきた。Fetch Page モジュールは、指定した URL のウェブページを取得するためのモジュール。 現在では、Fetch Page モジュールは、非推奨 (deprecated) となり、代わりに XPATH Fetch Page モジュール が登場した。 Fetch Page モジュールは、文字列によりフィードにしたいウェブページの対象を指定した。これに対して、XPATH Fetch Page モジュールは、XPath を利用して指定する。 New Module: XPATH Fetch Page | Yahoo! Pipes Blog によると、 To use the XPATH Fetch Page module, first enter the U

  • [開発] yaXPathGraphというサービスを始めました - 高原芳浩のKeep-Alive

    突然ですが、ウェブサイトから何らかの数値をXPathで拾ってきてそれを日次でグラフにするサービスを開始しました。その昔XPathGraphという素晴らしいサービスを、面白法人KAYACさんがやっていたのですが残念ながら閉じてしまったようなので、それではと思い作ってみました(yaというのは"Yet Another"のつもりです)。ツイッターアカウントで手軽に使えますので、もしよろしければ使ってやってください。> http://xpathgraph.herokuapp.com 試しに以下のようなグラフを作ってみました。東京都尖閣諸島寄附金 受付状況ヤフオク【ドリランド】の検索結果数PHPer.jpのユーザ数このように、XPathGraphは時事ネタを引っ掛けるのに便利です。ウイジェットもありますので、このようにページに埋め込むこともできます。(この例はPHPer.jp)インフラはHeroku

  • はてなブログ | 無料ブログを作成しよう

    織田信長 ぼちぼち、元気にやっています。少し薬にも慣れた...んかなぁ。相変わらずべられないけど。朝、指がこわばって文字なんて入力できなかったけど、それはほぼなくなった。関節もどこも痛くない。薬効いてきたんやろな。 で、ブログを書こうと言う気がまた起きてきた。 …

    はてなブログ | 無料ブログを作成しよう
  • 無効なURLです

    無効なURLです。 プログラム設定の反映待ちである可能性があります。 しばらく時間をおいて再度アクセスをお試しください。

    raimon49
    raimon49 2011/07/22
    これはpixiv側のページ構成の変化を追いかけるのが大変そう。
  • 最近の Wedata のこと - xK.memo

    Wedata 落ちてるし、最近投稿された AutoPagerize 用の SITEINFO は腐ったのが多いという話を書く。 自分が把握している限りでは、まず29日の午前12時あたりに jqwerty と vavo という人が、このような感じの SITEINFO を大量に追加していった。正確な件数はちょっとわからないけれど、100件以上はあったと思う。 20c0da7e7383afdd6567306f83b947cf pageElement //div[@id=‘outer-wrapper’]/div[@id='wrap2’] url http://idreamofplum.blogspot.com/* nextLink //div[@class=“blog-pager”]//a[@class=“blog-pager-older-link”] 特徴としては、 - SITEINFO の名称を

    最近の Wedata のこと - xK.memo
    raimon49
    raimon49 2011/03/24
    変なハッシュ値を持つデータの正体。ダメなSITEINFOのアンチパターンとして。
  • 第9回 実践DOMスクリプティング#2:DOMとHTML | gihyo.jp

    こんにちは、太田です。前回はHTMLとテキスト操作を解説しました。今回は、さらにHTMLの操作の実例を中心に解説していきます。 JavaScriptとエスケープ まず、エスケープについて確認しておきましょう。外部から入力されたデータを画面上に表示する際はクロスサイトスクリプティングに注意する必要があることはもはや常識と言ってよいと思います。サーバーサイドのウェブ開発用フレームワークでは、ほとんどの場合HTMLのエスケープ用のメソッドが用意されていて、HTMLのエスケープは適切に行えるはずです。しかし、注意しなければいけないのは、HTMLのエスケープはJavaScriptにそのまま当てはめることはできないという点です。当たり前の話ですが、HTMLJavaScriptではエスケープすべき文字が異なります。また、IEの6、7ではCSSJavaScriptを埋めこむことができるのでCSSにも注

    第9回 実践DOMスクリプティング#2:DOMとHTML | gihyo.jp
  • アイテム: Twitter status - データベース: AutoPagerize - wedata

    //span[contains(concat(" ",normalize-space(@class)," "), " meta ")]/a[contains(text(),"in reply to")]

    raimon49
    raimon49 2010/06/23
    正規表現とXPathのお手本 個々の更新履歴も面白い。
  • 第8回 実践DOMスクリプティング#1:HTMLとテキストの操作 | gihyo.jp

    こんにちは、太田です。前々回、前回でDOMの基礎を簡単に解説しました。今回からは、DOMを使った実用的なスクリプトを解説していきます。特に今回はHTMLの操作、テキストの操作にフォーカスを当てていくつかのサンプルコードを解説していきます。 HTML操作の基 JavaScriptによってHTMLを書き出したり、一部を書き換えたり、削除したりといった方法は実は様々な方法が用意されています。目的に合わせて適切な方法を選ばないと非効率だったり、最悪クロスサイトスクリプティングなどの問題を抱えてしまう危険もあります。 document.writeと同期読み込み JavaScriptHTMLを書き出すというと、最初に学ぶのはこのdocument.writeかもしれません。いわゆるprint文のようにシンプルなAPIなので、入門書の最初のサンプルなどで扱われることも多いようです。しかし、docume

    第8回 実践DOMスクリプティング#1:HTMLとテキストの操作 | gihyo.jp
    raimon49
    raimon49 2010/06/22
    script要素のasync属性は非同期ロード, defer属性はDOMContentLoadedまで実行を遅延。
  • Greasemonkeyスクリプトの開発で役に立ったサイトや本 - Alone Like a Rhinoceros Horn

    Firefox にこんな機能があればいいなあ → ん、Greasemonkey というのでできるらしいぞ → ユーザースクリプトとやらを書けばいいのか → どうやって書くんだ? というところからスタートして、最終的に自作のユーザースクリプトを公開するに至るまでの間、参考にしたサイトやをできるだけ自分の学習順に時系列に沿って列挙してみました。 JavaScript を少々かじったことのある人が Greasemonkeyスクリプトを書いてみようと思い立ったときに、その学習の指針というか、道標のようなものとして役立つリンク集になればいいなと思ってます。 Greasemonkey まずは Greasemonkey ってなんだとか、ユーザースクリプトってどう書くんだというのを調べるところからスタート。(以下小見出しがリンクになっています) Greasemonkeyの開発をまとめてみる ここで Gr

    raimon49
    raimon49 2010/03/31
    GM_configというGUI設定ライブラリがあるのか。
  • XPathからセレクタへの移植は簡単なお仕事です - 2009-04-27 - fublog

    みんなセレクタ登録しようぜ!って書いたのに1件も増えてなかったので現状fub専用のDBなんて俺しかメンテしないんだったらこりゃダメだな、と思ったんだけど更新履歴見たら試行錯誤してた人が1人いたので少し希望があった。 セレクタ書き方講座みたいの書いたら少しは増えるだろうか。MSN産経ニュースは俺が書いちゃったけど。 ステータスバーのアイコンダブルクリッコでuser.jsを無効にすると以後有効にしてもスクリプトエラーになってたので、一応exeだけ差し替えておきました。 http://madchester.s54.xrea.com/archives/test.zip あとユーザースタイルシートの効きが悪い件は認識済みなのですが、IE8のバグだと思うのでちょっと保留中です。(以前のよく効く方式だと全く適用されずに違う方法で適用してます) 最終的に捨てるかもしんないしあれだけど、頭の体操だと思って1

    XPathからセレクタへの移植は簡単なお仕事です - 2009-04-27 - fublog
    raimon49
    raimon49 2010/01/13
    XPathとCSSセレクタの対応。
  • AutoPagerize Wiki: XPath Cookbook

    node()と*の違い //node() //* をそれぞれ実行してみればわかるが、node()はテキストノードなどを含めたすべてのノードを、*はNode.ELEMENT_NODEな要素だけを選択する。この違いはパフォーマンスに影響を与えるので、意識して使い分けるのが良い。 なお、 * はattributeとnamespaceを基準点とした場合はそれぞれattributeとnamespaceを選択する(例://@* は全てのAttrを選択する)。 詳細は仕様書でXML Path Language (XPath) - 2.3 ノードテスト 省略シンタックスと非省略、そして少しの応用 // は /descendant-or-self::node()/ の省略形である。/divは/child::divの省略形で、//div[1]は//div[position()=1]を(さらに)省略した形である

    raimon49
    raimon49 2010/01/12
    実践的なXPathの書き方。
  • 特定のclass属性を持った任意の要素にマッチするXPath | 3.14

    結論特定のclass属性を持った任意の要素にマッチするXPath(hogeは指定したいclass属性名) //*[contains(concat(" ",normalize-space(@class)," "), " hoge ")] 特定の要素にしたい場合は適当に div[contains(concat(" ",normalize-space(@class)," "), " hoge ")] などとする. 概要特定のclass属性を持った任意の要素にマッチするXPathというのはアドオンやUserJavaScriptスクレイピングの際にDOMノードを特定するために良く使いますが,XPathの書き方がマズイ人がたまにいます.普通に考えたらXPathはこうなります. XPath1:: //*[@class="hoge"] class属性は以下の引用部分に書かれているとおり,スタイルシート以

    raimon49
    raimon49 2010/01/11
    //*[contains(concat(" ",normalize-space(@class)," "), " hoge ")] ← 厳密に //*[contains(@class,"hoge")] ← 緩く
  • 自分でAutoPagerize対応のスクリプトを書く簡単な方法 - blooo

    ちょっとアレなタイトルですが、GreasemonkeyでAutoPagerize対応のスクリプトを自作する時の注意点を2つメモ。 自分はひよっこですが、これからGreasemonkeyスクリプト書いてみようかなという人の助けに少しでもなれば嬉しいです。 継ぎ足されたページに適用する方法 AutoPagerizeで継ぎ足された部分に自分のスクリプトを適用する方法あれこれ - 0xFF を参考に、AutoPagerize_DOMNodeInsertedを使うことにする。 以前はaddFilterとかGM_AutoPagerizeLoadedとか出てくる書き方をしていたんだけれど、この方法がやはり簡単・シンプルなので採用させて頂きました。 継ぎ足されたページ「のみに」適用する方法 新しく継ぎ足されたページのみに、スクリプトの内容を適用・反映したい場合。 注意しないと、継ぎ足されたページのみに適用

    自分でAutoPagerize対応のスクリプトを書く簡単な方法 - blooo
  • XPath に文字列を埋め込むときの注意 - IT戦記

    よく、以下のように XPath に文字列を埋め込む事があります document.evaluate('//*[@class="' + text + '"]', document, null, 7, null); まあ、僕もよくこんなコード書くんですけど。 でも、これって text が外部から来るものだったら、意図通りの動作をしないんですよね たとえば、以下のような例です。 var text = '"] | /hoge/fuga/piyo | .["'; document.evaluate('//*[@class="' + text + '"]', document, null, 7, null); というわけで 任意の文字列を XPath の式に変換する JavaScript を書いてみた 以下で試せます http://amachang.sakura.ne.jp/misc/xpath_es

    XPath に文字列を埋め込むときの注意 - IT戦記
    raimon49
    raimon49 2009/09/17
    外部から来る値はメタ文字をエスケープ。
  • Firebugクックブック #1 - bits and bytes

    最近の中学生のはじめてのプログラミング言語がJavaScriptだったりするこの時代、最も使いやすいJavaScriptの実行環境であるFirebugは現代のコマンドラインです。UNIXコマンドラインでgrepやuniqを使って、日常の細々した処理を行うのと同じようにFirebugとjavascriptを使いこなせると、日常作業のちょっとしたことをさくっとこなすことができます。ちょっとした作業だから手作業でやってもいいけど自動でやればミスったりしないし、気分的には楽なので自動でやりたい、という作業がけっこうないでしょうか。例えば、ページの中の特定の部分の文字列をリストにしてテキストファイルに保存したい、とか。 そこで今回は私が普段よくやっている単純作業をFirebug+javascriptでさくっとかたづける方法を2回にわけてご紹介します。 ページの中からテキストや属性の値を拾う ページの

    raimon49
    raimon49 2008/08/24
    Firebugコンソールの小技。$X()XPath, $$()CSSセレクタ, copy()クリップボードにコピー