検索結果
スクレイピング
- 全てのカテゴリ
- 全ての質問
- プログラミング素人へアドバイスお願いします。
全くプログラミングをやったことがないのですが あがいているのでアドバイスお願いします。 私が利用したい施設は、webで施設の空きを状況の確認、予約できるのですが、 いつも予約で埋まっており、大概キャンセルをみつけて利用しています。 キャンセルはそこそこ出るらしいのですがタイミングが合わないと 全く予約が取れないことがあるので困っています。 そこで自動で空き状況を確認してくれて、空きができたらメール通知をしてくれるプログラムは作れないかと思いました。 予約サイトはjavascriptが使われており、色々条件を選択し検索すると○、×で空きがわかります。 検索でなにかとっかかりを探しました。 ・ruby,php,perl等の言語がおすすめ ・スクレイピングをする ・javascriptが使われているのはめんどう ・画像で空きを判定する ・メールを送信する ・レンタルサーバーを使う このような情報を集めましたが理解できないことなどがありました。 そこで質問させてください。 1.言語はどのようなものを選べばよいのでしょうか? 2.javascriptが使われているサイトだとなにがやっかいなのでしょうか? 3.設計図?というのかわかりませんが、頭の中にまったく完成図が浮かびません。 どのような部分部分が必要か教えてください。 4.関連しておすすめの本やサイトがありましたらお願いします。 (どうやってレンタルサーバーで動かすのか等もわかっておりません) 皆様よろしくお願いします。
- ベストアンサー
- その他([技術者向] コンピューター)
- mohiji
- 回答数4
- Web::Scraperの使い方で
PerllのWeb::Scraperを使って商品の情報を取得するみたいなことをしたいのですが、下のコードでなぜかブランドと製造販売元が取得することができません。 http://www.kenko.com/product/item/itm_6521067072.htmlのソースを見てみると、<div class="ltxt brand">にブランド情報が、<div class="ltxt">に製造販売元の情報が書かれています。それなので、process "div.ltxt", "maker" => "TEXT";とすれば製造販売元の情報(文字列)が取得されるはずなのですが、なぜかブランド情報(process "div.ltxt.brand", "brand" => "TEXT";として得られるはず?)が得られてます。これはなぜでしょうか? またこのスクリプトWeb::Scraperでは基本的にclass="***"のようにクラスの定義がされていないものについては情報を取得できないのでしょうか?例えば、同ページのソースコードにある<div>内容量:250ml</div>や<div itemprop="identifier" content="upc:4987222787413">JANコード: 4987222787413</div>から内容量とJANコードの情報を得ることはできないでしょうか? #!usr/bin/perl use strict; use warnings; use Encode; use Web::Scraper; use URI; use utf8; binmode STDOUT, ":encoding(shiftjis)"; #scraperオブジェクトを作成 my $shinkan = scraper{ #processメソッドで抽出する要素と展開方法を指定 process "div.mainBox","fil_list[]"=> scraper{ #scraperメソッドを渡して,"td.c-table01"要素をさらに展開する process "h1.fn", "goods" => "TEXT"; # 商品名 process "div.ltxt.brand", "brand" => "TEXT"; # ブランド process "div.ltxt", "maker" => "TEXT"; # メーカー process "span.price" => "price" => "TEXT"; # 価格 }; }; #scrapeメソッドでスクレイピングを実行 my $res = $shinkan->scrape(URI->new("http://www.kenko.com/product/item/itm_6521067072.html")); foreach my $dat(@{$res->{fil_list}}){ #undefの場合は、""を代入する。 unless(defined($dat->{goods})) {$dat->{goods} = ""}; unless(defined($dat->{brand})){$dat->{brand} = ""}; unless(defined($dat->{maker})) {$dat->{maker} = ""}; unless(defined($dat->{price})){$dat->{price} = ""}; print "goods = ", $dat->{goods}, "\n"; print "brand = ", $dat->{brand}, "\n"; print "maker = ", $dat->{maker}, "\n"; print "price = ", $dat->{price}, "\n"; };
- Xpathがわからない。
capybaraとXpathを使ってrubyスクレイピングをしようとしています。 まず添付画像を御覧ください。 ゴールは添付画像のurl部分を(文字列として)抽出することです。(末尾がclans/7.pngみたいになってるやつです) 条件として、添付画像のように、親要素の親要素のクラスに "checkedin"を含むこと。 (画像では省略されていますが、本来のソースコードでは添付画像の一番上の要素に類するものがいくつも並んでいます。その中から、画像のように "checkedin" を含むものを抽出しようとしています) 親要素の親要素の条件を指定しない場合は images = session.find_all(:xpath, '//img[contains(@src,"clans")]') puts images[i][:src] といったコードでURLを抽出できたのですが、上述の条件を指定する場合にどのような記述をすれば良いかわかりません。 checkedin = session.find_all(:xpath, 'tr[contains(@class,"checkedin") and .//img[contains(@src,"clans")]]') と書いたり他色々試しましたが、全てエラーです。 上述の条件を指定して記述するにはどうすればいいのでしょうか。。 (先祖要素の条件指定でなく、まず先祖要素の条件を指定してから子要素のurl抽出をするのもあると思いそれっぽい手法を試しましたが、capybaraそのものが良くわかっておらずエラーになります) (ちなみにcapybaraを使っているのは、以前質問した時におすすめされたからです。 詳細URL→https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13198824358 本当はnokogiriでやりたかったのですが、nokogiriですとurl部分が正常に取得できませんでした。 nokogiriでもurl部分を正しく抽出できる方法があれば是非教えてください。capybaraよりnokogiriの方が使いやすいので。。) 質問の回答になっていないそもそも論は禁止でお願いします。(python使え等)
- fputcsv関数でURL内の情報をCSV化
下記のようなページがあります。 【kabu.php】 <html> I101,日経平均,19000<BR> I102,TOPIX,1561<BR> I104,東証2部指数,4653<BR> </html> 上記をCSVファイルに吐き出そうと思い、下記のようなPHPを組みました。 欲しい結果=下記のような3行3列カラムとして書き込み(A1からC3) 「I101」「日経平均」「19000」 「I102」「TOPIX」「1561」 「I104」「東証2部指数」「4653」 【kabu_put.php】 <?PHP $list = file_get_html( 'http://hoge.jp/kabu.php' ); $fp = fopen('kabu.csv', 'w'); foreach ($list as $fields) { fputcsv($fp, $fields); } fclose($fp); ?> 実際の結果 カラムが下記のように横一列に書き込まれる(A1からF1)。カンマ切りは認識しないかつ改行できない 「I101,日経平均,19000」「<BR>」「I102,TOPIX,1561」「<BR>」「I104,東証2部指数,4653」「BR」 次に、kabu.phpの改行部分を<BR>ではなく、\n または \r\n としてみました。 http://hoge.jp/kabu.php <html> I101,日経平均,19000\r\n I102,TOPIX,1561\r\n I104,東証2部指数,4653\r\n </html> 【kabu_put.php】は変わらずです。 <?PHP $list = file_get_html( 'http://hoge.jp/kabu.php' ); $fp = fopen('kabu.csv', 'w'); foreach ($list as $fields) { fputcsv($fp, $fields); } fclose($fp); ?> 結果 下記のように1つめのカラム(A1)に全てが書き込まれる。(\nも\r\nも同様) (改行コードは1スペース化されてしまった。カンマ区切りも認識できない) 「I101,日経平均,19000 I102,TOPIX,1561 I104,東証2部指数,4653 」 【質問】 下記のような3行3列カラムとして書き込みとするためには、どうすればいいでしょうか? 「I101」「日経平均」「19000」 「I102」「TOPIX」「1561」 「I104」「東証2部指数」「4653」 尚、kabu.phpは下記のようなスクレイピングで作っています。 kabu_base.php というリンクサイトがあって、そこでは「URLに株ID」が、「テキスト文字に株名と現在価格がカンマ区切りで記載」されています。 このリンクURLを「URL部分(株価ID)」と「文字部分(株名),株価(数値)」に分解して作成し、株価IDと株名の間にカンマを挿入したのが下記のkabu.phpです。 【質問への補足(依頼)】 kabu.phpの中に直接下記のプログラムを記載することで解決できるのであれば、それでも構いません。 $fp = fopen('kabu.csv', 'w'); foreach ($list as $fields) { fputcsv($fp, $fields); } 【kabu.php】 <?php require_once('simplehtmldom/simple_html_dom.php'); $html2 = file_get_html( 'kabu_base.php' ); foreach($html2->find('a') as $element2){ echo $element2->href; echo ","; echo $element2->innertext; echo "\r\n"; } ?> よろしくお願いいたします。
- サーバサイドでjavascriptをレンダリング
お世話になります。 早速ですが、ご質問させて頂きます。 サーバサイド側だけで外部サイトを読み込み、(javascript実行済みの)htmlをテキストファイルへ書き込むという処理を作成したいと思っています。 PHPだけではできないらしく調べたところ、サーバサイド側でjavascirptをレンダリングできることがわかったのですがそこから手詰まってしまい困っています。 上記を実現するサンプルソースやオススメサイトなど何でも結構です! 何かしら方法の糸口がありましたらご教授のほど宜しくお願い致します! 開発環境: MacOSX10.6.8
- ベストアンサー
- JavaScript
- takachipo
- 回答数3
- 先日のアルゴリズム更新について
5月後半にGoogleのアルゴリズム更新があったようです。 関連性は確かではありませんが、私の運営しているドロップシッピングサイトはトップページがメインキーワードで8位前後から6位に上がりました。 めでたしめでたし…と思っていたら、予想したほどのアクセス増がありません。過去の経験から、もう少しハッキリとアクセスが増えると思っていたため、トップページ以外も少し調べてみました。 すると、商品詳細のページが大幅に順位を下げていました。ほぼ商品名など狙ったキーワードでは10位以内に収めていたのですが、ほとんどのページが圏外クラスの下がり方をしています。 例) ・2位⇒56位 ・6位⇒500位圏外 etc. この落ち方から察するに、「他に優良コンテンツが増えて抜かされた」というナチュラルな変動ではなく、なにかしらの新しい評価方法でどこかを減点をされているのは間違いなさそうだと思っています。一時的である可能性もありますので慌てていじくりまわす気はないのですが、チマチマと試しながら更新してみようと思っています。 明確な答えは無い(難しい)世界ですが、今回のアップデートで似た状態に陥った方がいらしたら情報を共有できないかと思います。よろしくお願いします。
- 締切済み
- SEO
- noname#217950
- 回答数4
- PHPで検索エンジン
入力フォームで「URLのみ」を送信し、「タイトル」と「descriptionの一部」を画面に表示させ、 検索フォームでは「タイトル、description、metaキーワードの3項目」を「検索対象」とすることはできますでしょうか。 ネットで調べてはいるのですが、どれが最善がわからず困っております。 参考になるサンプルがどこからに掲載されていましたらぜひお教えください。
- ベストアンサー
- PHP
- noname#232261
- 回答数2
- アメブロでテーマを指定したRSSの取得
アメブロにはカテゴリといった概念がないようで、その代わりにテーマというものがあるのですが、このテーマごとにRSSを取得したいと思うのですが可能でしょうか? RSSのURLを見ると、全体的な情報しか吐き出しておらず、取得してもテーマを絞った取得を行うことが出来ません・・・。 例としては、以下の様なアメブロが合った場合、イラストというテーマのみを取得するという感じです。 http://ameblo.jp/nakagawa-shoko/ こういった場合には、どのような方法を用いて特定テーマの記事のみを取ることが出来ますでしょうか? お詳しい方、いらっしゃいましたらヒント、アドバイスの程宜しくお願いします。
- VBAでdo内にてWAITを使うとエラーが出る
Do until内の最後に以下のコードを記載しております。 ------------------------------------- Application.Wait DateAdd("s", 5, Now) Loop ------------------------------------- Loopさせる直前に5秒停止してもらいたいだけなのですが、 「コードの実行が中断されました」というエラーが出て終了してしまいます。 waitの指示を除いて時間待ち無しで実行すれば問題なくloopできます。 また、調子の良いとき(?)には問題なく5秒まってさくさくloopしてくれますが、 一度エラーが出ると一切loopしなくなります。 エラーの黄色いマーカーはこのLoopの部分に出ます。 なぜこのような現象が起こるのか全く理解できません、、、 以下のコードに変えても状況は同じです With Application .Wait Now + TimeValue("00:00:05") End With 解決法ご存じの方、ご教示いただければ幸いです よろしくお願いします。
- ベストアンサー
- Visual Basic
- master817199
- 回答数3
- ホットワックスやってみました
こんにちは。岡山に住むボード4年目のものです。 今年は鳥取の大山国際スキー場に住み込みでバイトする計画です。 今回皆さんにお聞きしたいのは自分のやり方は合っていたのか!?ということです。もし間違っていたらおしえてください。 先日初めてホットワックスセット一式〔アイロン・リムーバー・スクレーパー・ベースワックス・滑走ワックス・100均で猪毛ブラシ・ナイロンブラシ〕を購入しました。 使用方法はこのようにやってみました。 実家なんで庭で。リムーバーをまんべんなく吹きかけて、10分放置。キッチンペーパーでふきとり、5分放置。 アイロンでベースワックスを溶かして塗りこみ、10分放置。 スクレーパーで剥ぎ取り、ナイロンブラシでかきだし、猪毛ブラシで静電気除去。 30分後アイロンでベースワックスを塗りこみ、今度はそのまま2日放置。 スクレーパーでそぎ落とし、ナイロンブラシでかきだし、猪毛ブラシで静電気除去。 そして今書き込んでいるこの瞬間です^^ この後は現地について滑走ワックス〔ピンク〕を同じ要領でやるつもりです。 完全に素人で今回初めてやってんで、これでいいのか心配です。 おかしな点がいくつもあると思うんですが、教えてください。 長々と失礼しました。それではよろしくお願いします。
- ベストアンサー
- スキー・スノーボード
- noname#83851
- 回答数4
- 新しいスノーボードの手入れ
新しくスノーボードを購入しました。 ボードの前後をやすりをかけるといいですよ、、といわれました。どこらへんに、どの程度かければいいものなのかわかりません。詳しい説明のあるサイトとかでもいいのでおしえていただけないでしょうか? また、とりあえずワックスをかけることぐらいしかわからないのですが、滑り出す前にほかにやっておいたほうがいいことがあれば教えてください。 よろしくおねがいします。
- ベストアンサー
- スキー・スノーボード
- maple_tree
- 回答数4
- PHPを学ぶおすすめの書籍を教えて下さい
--------------------------------------------------------------------- 【 PHPを学ぶ目的 】 複数の外部サイトから、商品の値段を"一定時間毎に自動的に"DBに取り込み、 自分のウェブサイトに商品別ランキング形式で表示したい。 価格の上下にも即対応出来るようになるのが理想です。 --------------------------------------------------------------------- つい先日サイト作成とPHPに手を出し始めたばかりの初心者です。 ウェブサイトは既に作成ソフトを使って試験的ながら開設済みで、 html、cssについては自分のサイトをあれこれいじっているうちに、 初心者ながら少しだけ理解出来るようになりました。 PHPは、『 いきなりはじめるPHP~ワクワク・ドキドキの入門教室~』 という書籍で、PHPがどういうものかということだけを理解した状態です。 次は目的のサイトを作りながらPHPについて学んでいきたいと思っています。 私の目的に合致した書籍があれば教えて下さい。 よろしくお願いします。
- ベストアンサー
- PHP
- machahiko00
- 回答数1
- ハローワークインターネットサービス上のDB
ハローワークインターネットサービス上のDBにアクセスして求人情報を取得したいのですが、 どうすれば良いでしょうか? 何か知っている人いますでしょうか? ブラウザ上では、以下のURLから「検索」ボタンを押した次のページから実際に検索結果が表示されています。 https://www.hellowork.go.jp/servicef/130020.do?action=initDisp&screenId=130020 シェアソフト等では上記のようなソフトがあるようなのですが、フリーソフトでは上記のような ソフトは無いので開発してみたいなと思ってます。 開発言語は、VB.NETと考えています。
- ベストアンサー
- Visual Basic
- mrs646
- 回答数2
- wordpressを使って他サイトの掲示板を
wordpressを使って他サイトを紹介したいと思うのですが、ブログなどはRSSを使って自分のサイトの新着情報部分に表記させることはできると思うのですが、掲示板などでも似たようなことができるのでしょうか? たとえばhttp://www.add7.net//bbs-ny/manhattan/roommate.htmとかhttp://newyork.vivinavi.com/JA/re/などの情報を新着順などで表示させることは可能なのでしょうか?
- コメント似勝手にサムネがついてる
どこかのブログにコメントを入れたら、コメントの入力には 名前、メールアドレス、本文しかないのに、コメントを送信したあとで みると、自分の使ってるサムネイルが勝手に表示されてる。 とても怖いのですが、これはどういうシステムなのでしょうか? 個人情報が漏出してるのかな? どこかのSNSのサムネが勝手に流用されるのかな? どこかのサイト(SNSなど)が、IPアドレスで自動(正確には無断で勝手に)で表示されるのだろうか? そのサムネイル画像がどこかでつかってたものだけど、いまでも つかってるか、わからないけど、もうつかってないとおもうのだけど? URLは、その人が直接関係ないかもしれないので、ご迷惑になるといけないので控えておきます。
- ベストアンサー
- ブログ
- doumouchan
- 回答数2
- JavaScript実行結果の情報取得方法について
ホームページの特定の情報を取得したい場合には、ページのソースを取得して HTMLを解析するのが一般的ですが、JavaScriptの実行結果によって表示されているようなものは ソース表示では目的の情報が取得できません。 たとえば、食べログの以下のページで地図に左側に表示される店情報を ページから取得するにはどのような方法がありますでしょうか。 http://tabelog.com/rst/rstmap?clon=139.0445462987061&clat=36.275659157181046&lz=5&LstCat=&LstCatD=&LstCatSD=&LstRev=undefined&LstCnt=0&sw=&LstSitu=undefined&LstCosT=0&LstCos=0&RdoCosTp=2&PG=1
- ベストアンサー
- JavaScript
- mmei
- 回答数1
- 他サイト数値を自サイトに反映させるプログラム
他サイトにある数字を認識して自サイトに反映させるプログラムなど実現可能なのでしょうか。 たとえばある統計の結果を数ヶ月に一度更新しているサイトがあるとして、その2000人と書かれた数字が2050人と変わったときに自サイトの数値も2050として数値が変わる仕様です。 やっていることは無料閲覧できるサイト制作者のページを閲覧して数値を確認して、自サイトへ書き込むというアナログの作業が自動化できればなと考えています。 この手動が自動化することについては、やっていることは上記と同じことなので他サイト制作者の認可はもちろん得なくてもよいとは思います。 もしこれが実現されたとなれば他サイト所有者に許可を受けずとも(普通は認可いらないはず)こちらサイトの更新の手間が省けるのですが、このためには相手先のホームページからの行き着いたページのURLのページの位置の画像認識をして数値を割り出し、もしページの数値の位置が変わったときやページごとURLが変わったときなど変化があれば通知されるようなシステムになると思うのですが、こういったことは実現できるのでしょうか。 よろしくお願いいたします。
- ベストアンサー
- その他(プログラミング・開発)
- tutankarmen
- 回答数3
