Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
こんにちは。 初投稿になります。Web・iOSアプリエンジニアの三浦です。 エンジニアとしてある程度経験を積んで余裕ができてきたので(あとGWが予想以上に暇になったので)、せっかくだからと思いQiitaを始めてみました。 よろしくお願いします! はじめに さて、今回はタイトルにもある通り、 Docker や docker-compose 、 puppeteer を使ったスクレイピングについての話になります。 なぜこんな内容になったかといいますと、会社でこんなやり取りがあったんです(なお、内容は脚色しています)。 (上司) < 競合分析って重要だよね…。スクレイピングとかで、検索結果からいろいろと情報欲しいな。 (僕) < そうですね〜(スクレイピングやったことないけど) (上司) < だよねだよね!まあスクレイピングくらい、Webエンジニアなら学生時代とかにもやったことあるだろうしね。じゃ
【1】画面外の文字がクリックできない。 FormをSubmitしたいのだが、画面外にありクリックできない。 以下のようなエラーが出る。 selenium.common.exceptions.ElementClickInterceptedException: Message: element click intercepted: Element is not clickable at point (392, 687) 試したこと 1.画面外へスクロール Selenium利用時のトラブルシューティング方法[クリック編] seleniumにてButtonがクリックできない時の対処法 画面上には表示されているが、スクロールしないと見えない状態の時ですので、スクロールしてクリックすればOKです。 と書かれているが、そもそもスクロールすらできなかった。 2.submit メソッドを利用する pytho
Pythonでスクレイピングというネタはすでに世の中にもQiitaにもたくさん溢れていますが、なんとなくpyqueryが使いやすいという情報が多い気がします。個人的にはBeautiful Soupの良さも知ってもらいたいと思うのでここではBeautiful Soupを使っていきたいと思います。 ちなみにこのエントリーはほとんどの部分がBeautiful Soup4のドキュメントの要約です。もっと詳しい情報が知りたい場合はドキュメントをご覧ください。 英語 http://www.crummy.com/software/BeautifulSoup/bs4/doc/ 日本語 http://kondou.com/BS4/ よくある勘違い pyqueryはjQueryのようにcssセレクタを使ってHTMLを扱うことができる点がBeautiful Soupよりも使い易いという意見がありますが、それBe
前回の復習 Pythonでseleniumを試してみる(HTML要素の検証)では、selenium で web ブラウザの HTML 要素を取得し、その中に期待された値が存在するかのテストを行った。 今日はその続きからはじめようと思う。 画面遷移のテスト Web ブラウザのテストでは、画面に設置されたボタンや Link をクリックして、 期待された画面にちゃんと遷移するか確認するテストが多いのではないだろうか。 selenium がなければ、このようなテストは、長い時間をかけて一つ一つ手動で 行う必要がある。 そして、UI の仕様変更が発生するたびに 今までのテストを全てやりなおす という事件?が世界中で起こっていたんだと思う。 (仕様変更等でコードを変更したら今までテストした分もやりなおすことが多い) でも selenium を知りテストの自動化に踏み切った今、再テストのストレスから 解
スクレイピングを勉強しようと思い立って、Selenium を使ってでブラウザを操作してみたので、軽くまとめておこうと思います。 使用したもの Selenium 自動でブラウザを操作する為のライブラリ Chrome ブラウザ ブラウザに合わせたドライバーを用意する ブラウザを操作するには、各ブラウザに合わせてドライバーを用意する必要があります。 今回は Chrome を使用するので 公式サイトから ChromeDriver をダウンロードします。 Selenium をインストール pip で selenium を インストール pip install selenium webページを開いてみる ブラウザを開く webdriver.Chrome(driver_path) webページを開く driver.get(URL) webページを閉じる driver.close() ブラウザを終了 (全
何年も前、SeleniumやWebDriverの話で盛り上がった記憶があります。ただ、その当時はまだRailsなどバックエンド中心の文脈でした。今、フロントエンドに軸足が移る中、ブラウザテストの状況はどうなったのでしょう? 不思議なことに、フロントエンド界隈でそれほど話題に上がって来ないですよね (私の周りだけ?)。結構大事なのに。実は皆さん、「Seleniumアレルギー」なんじゃないですか? 公式サイトに漂う ゼロ年代感(下図)。Javaへの躊躇、「めんどくさい」と聞かされ続けた過去、無意識に避けてしまうのがSeleniumです。 ただ、フロントエンドの文脈でこそ、ブラウザテストは重要度を増しています。そこで「Selenium触りたくない病」の筆者が、 四苦八苦した背景 と、2016年だからこそ 見えてきた落とし所 を書いてみたいと思います。 註: 思ったより長文になってしまいました。先
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 私は主にJavaを使って大量のサイトからクロールとスクレイピングをしています。 作っているサイトは happyou.info です。上場企業と官公庁と地方自治体とその他1万サイトくらいスクレイピングしています。 このエントリでは、技術的なこと特にめんどうくさかった点を書き残しておきたいと思います。基本的なことかもしれませんが、私自身忘れそうなところもあるので。 1.上場企業は企業が入れ替わる 上場企業は毎日企業が入れ替わります。新規上場、上場廃止、合併、分社化、企業名変更は毎日のことです。この変化にキャッチアップするのが難しかったです。
Webページのスクレイピングと分析・可視化で使用したPython製WebクローラScrapyについて覚えたことについて記載する。 本記事はメモ程度の内容であり、情報の正確性については保証しない。必ず公式ドキュメントを参照すること。 サンプルコード サンプルコード1 import scrapy class QiitaCalendarSpider(scrapy.Spider): name = "qiita_calendar" allowed_domains = ["qiita.com"] start_urls = ["http://qiita.com/advent-calendar/2016/calendars"] custom_settings = { "DOWNLOAD_DELAY": 1, } def parse(self, response): for href in response
先日、2016年アドベントカレンダーのはてブ数の分析というブログ記事を投稿した。このデータの可視化には様々な技術が使われている。本記事では、どのような技術を活用して作成したのかについて説明する。 ソースコードはこちら。 概要 このVizは、QiitaとAdventarに投稿された、全アドベントカレンダー及びそこに登録された記事のはてなブックマーク数を元に、どのカレンダーや記事が人気なのか、あるいはQiitaとAdventarのどちらが人気なのかを視覚化することを目的として作成された。データソースは、Qiita及びAdventarに登録された、アドベントカレンダー2016の全カレンダーページである。カレンダーには記事のメタデータが含まれている。記事そのもののページやユーザページのクロールはしていない。 システムの概要 データの収集→ETL→BIという流れで処理を行った。 データ収集 Webク
BeutifulSoup4でWEBスクレイピング BeautifulSoup4でWEBスクレイピング(連番ページ)に引き続き、階層化されているページのためのコードを書いたのでメモ ポイント カテゴリ→ページ→欲しいファイルと順にリストを作成、処理していくと途中で中断しても再開しやすい コード # -*- coding: utf-8 -*- from __future__ import absolute_import from __future__ import division from __future__ import print_function try: # Python 3 from urllib import request except ImportError: # Python 2 import urllib2 as request from bs4 import Beau
Webページからちょっとデータ抜き出したいときありますよね。 1回だけしか行わず、わざわざプログラム組むほどでもないならVimでやるのがおすすめです。 例:はてぶのページからリンクを取得する vimを開いて4コマンドでリンクを抜き出します。 しかもエディタ上なのでその後の加工や連続スクレイピングなどもスムーズに行えます。 # 最初の行以外はどのサイトでも共通的に使えるはず :e http://b.hatena.ne.jp/ctop/it :%s/></>\r</g | filetype indent on | setf xml | normal gg=G :%v/<a/d :%s/^.*href="\([^"]*\)"[^>]*.*$/\1/ # 完全URLにしたいなら :%s/^\//http:\/\/b.hatena.ne.jp\//
[2020/09/09追記] 本記事の内容は著作権法改正より前に記載されたものです。 最新の情報をご確認下さい。 著作権法の一部を改正する法律(平成30年法律第30号)について | 文化庁 令和2年通常国会 著作権法改正について | 文化庁 上記に関連して、次の記事を記載致しました。 【2020年度版】個人用クローラーの開発手順とその注意点 - Qiita #はじめに Webスクレイピングで誰も嫌な思いをしなくて済むように、注意事項一覧を作りました。 ただ、法律の専門家による解釈ではないので責任は取れません。 この記事は、クリエイティブ・コモンズのCC-BYで公開致しますので、ご自由にご改修下さい。 #注意事項一覧 ##データをダウンロードする時 ###目的は下記のものに限る。 * 個人や家族間で使用する * Web検索サービスを提供する * 情報解析をする ※参考:著作権法第30条・著作
※随時追加中 ブログの過去記事全てのタイトルとURLを取得したいのですが、RSSでは最新記事数件しか取得できないので、Webスクレイピングしてしてみます。 今回はRubyでスクレイピングする際の定番ライブラリである「Nokogiri」を使います。まず初めに以下のブログ記事を読む事をおすすめします。 Nokogiri の基本(翻訳版) - ENGINE YARD BLOG 実際に記事一覧を取得する流れは、 (1)htmlを取得 → (2)nokogiriでパース → (3)タイトル/URL取得 → (4)次ページがあれば(1)へ戻る みたいな感じです。 今回はあくまでタイトルとURL一覧を作りたいので、各記事の本文取得までは行っていません。 実際にスクレイピングする時は、以下の記事に目を通す事をおすすめします。 Webスクレイピングの注意事項一覧 - Qiita 記事一覧ページまとめ 各種ブ
簡単なサンプルと解説を書いてみました. Yasuriでお手軽スクレイピング よろしければ使ってみてください>< Yasuri とは Yasuri (鑢) は簡単にWebスクレイピングを行うための、"Mechanize" をサポートするライブラリです. Yasuriは、スクレイピングにおける、よくある処理を簡単に記述することができます. 例えば、 ページ内の複数のリンクを開いて、各ページをスクレイピングした結果をHashで取得する ページ内の複数のテキストをスクレイピングし、名前をつけてHashにする ページ内に繰り返し出現するテーブルをそれぞれスクレイピングして、配列として取得する ページネーションで提供される各ページのうち、上位3つだけを順にスクレイピングする これらを簡単に実装することができます. 例 require 'yasuri' require 'mechanize' # Nod
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く