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
Sometimes in my work I should use selenium for scraping the different websites, but this tool is too slow. This life hack is blowing in the wind, but for the last two years I have worked with many scrapers, written by others, and I never saw anyone using it. As you may know, the main reason why the selenium works slow is nasty parser, so the first thing that comes to mind is to change parser in se
今回は memory_profiler というモジュールを使ってプログラムのメモリ使用量を調べる方法について紹介する。 pypi.python.org このブログでは、以前に Python のプロファイラとして profile/cProfile や line_profiler について書いたことがある。 これまでに紹介したこれらのプロファイラは、主に時間計算量の調査が目的となる。 それに対して memory_profiler では、調べる対象は空間計算量となる。 blog.amedama.jp blog.amedama.jp 使った環境は以下の通り。 $ sw_vers ProductName: Mac OS X ProductVersion: 10.12.6 BuildVersion: 16G1212 $ python --version Python 3.6.4 下準備 まずは mem
「一生懸命稼いで得たお金を持っていかれてたまるか」と、会社の「節税対策」に苦心している経営者は多いだろう。 しかし、もしそれらの節税策が逆に会社の首を絞めているとするならば、本末転倒だ。 ■税金対策の9割は逆効果? 税理士の松波竜太氏が執筆した『その節税が会社を殺す』(すばる舎刊)によれば、結論から言って、 世の「定説」「定番」といわれている節税のほぼすべてが「無駄、無意味」なのだという。 無意味ならまだ良い。むしろ逆効果ということもある。 そして著者は、「節税以前にやることがある」と述べ、大事なのは「お金」であると指摘する。 そもそも会社は、売上が増えればお金が増えるというわけではなく、むしろ減ることが多い。 「売上が増える」と「お金を集める」は別物であり、大事なのは「お金を集めること」だ。 なぜなら、売上を増やすためにはお金が必要だからである。 ビジネスなのだから、どんなことをするにし
前回の復習 Pythonでseleniumを試してみる(HTML要素の検証)では、selenium で web ブラウザの HTML 要素を取得し、その中に期待された値が存在するかのテストを行った。 今日はその続きからはじめようと思う。 画面遷移のテスト Web ブラウザのテストでは、画面に設置されたボタンや Link をクリックして、 期待された画面にちゃんと遷移するか確認するテストが多いのではないだろうか。 selenium がなければ、このようなテストは、長い時間をかけて一つ一つ手動で 行う必要がある。 そして、UI の仕様変更が発生するたびに 今までのテストを全てやりなおす という事件?が世界中で起こっていたんだと思う。 (仕様変更等でコードを変更したら今までテストした分もやりなおすことが多い) でも selenium を知りテストの自動化に踏み切った今、再テストのストレスから 解
7.1. 例外¶ すべてのwebdriverコードで発生する可能性のある例外。 exception selenium.common.exceptions.ElementNotInteractableException(msg=None, screen=None, stacktrace=None)¶ ベースクラス: selenium.common.exceptions.InvalidElementStateException Thrown when an element is present in the DOM but interactions with that element will hit another element do to paint order exception selenium.common.exceptions.ElementNotSelectableExcept
Note This is not an official documentation. Official API documentation is available here. This chapter covers all the interfaces of Selenium WebDriver. Recommended Import Style The API definitions in this chapter show the absolute location of classes. However, the recommended import style is as given below: webdriver.Firefox webdriver.FirefoxProfile webdriver.FirefoxOptions webdriver.FirefoxServic
スクレイピングを勉強しようと思い立って、Selenium を使ってでブラウザを操作してみたので、軽くまとめておこうと思います。 使用したもの Selenium 自動でブラウザを操作する為のライブラリ Chrome ブラウザ ブラウザに合わせたドライバーを用意する ブラウザを操作するには、各ブラウザに合わせてドライバーを用意する必要があります。 今回は Chrome を使用するので 公式サイトから ChromeDriver をダウンロードします。 Selenium をインストール pip で selenium を インストール pip install selenium webページを開いてみる ブラウザを開く webdriver.Chrome(driver_path) webページを開く driver.get(URL) webページを閉じる driver.close() ブラウザを終了 (全
Google Chrome 59より実装されたヘッドレスモード(--headless)を利用したSeleniumの環境をCentOS7上に構築する。 環境 CentOS 7.3 yum install epel-releaseをしておく。 Google Chrome 60以上 ChromeDriver 2.29 ChromeDriverのインストール EPELに登録されているバージョンが2.27なので、Downloads - Chrome Driver - WebDriver for Chromeよりダウンロードして展開する。 展開先はPATHが通っているとやりやすい。 wget https://chromedriver.storage.googleapis.com/2.29/chromedriver_linux64.zip unzip chromedriver_linux64.zip s
首都圏では近年、常にどこかのエリアでタワマンが建っており、湾岸エリアにいたっては、どこを見ても大規模な建設現場という状況だ。しかし、今、タワマンの供給過剰が叫ばれ、中国人投資家も投げ売りし始めたという噂も聞こえてくる。一方、住人たちも購入前は予測だにできなかった数々の問題に直面していた――悲劇の現場を徹底リポート! 朝7時45分――。JR武蔵小杉駅の新南改札の外には、すでに200mほどの行列ができていた。彼らが目指す横須賀線ホームへと続くエスカレーターに乗るには、5つの自動改札のうち、左端の1台をくぐらなくてはならない。 この10年、雨後の筍のようにタワーマンションが建設されている神奈川県川崎市の武蔵小杉周辺では、人口が予想以上に増大しており、通勤ラッシュ時の駅のキャパオーバーが問題となっている。神奈川県の県勢要覧によれば、同駅(JRのみ)の1日の平均乗車人員は6年間で3割増となっているが
2018年5月6日: Headless ChromeがStableになった後の現状に合わせた新しい記事を書きました。こちらもご参照ください。 先日PhantomJSのVitalyさんがメンテナーを引退するという話が話題になっていました。ヘッドレスなブラウザーを気軽に使う手段としてPhantomJSにはお世話になりました。今後はHeadless Chromeを使って欲しいとのことなので、試してみました。 Node.jsを使うサンプルは多く見つかりますが、諸事情でPythonを使いたかったので、ここではSelenium経由でHeadless Chromeを使います。 Headless Chromeとは Google Chrome 59から使えるようになる予定の、画面を表示せずに動作するモードです。自動テストやWebスクレイピングなどに役立ちます。 2017年4月28日現在、Mac版とLinux
何年も前、SeleniumやWebDriverの話で盛り上がった記憶があります。ただ、その当時はまだRailsなどバックエンド中心の文脈でした。今、フロントエンドに軸足が移る中、ブラウザテストの状況はどうなったのでしょう? 不思議なことに、フロントエンド界隈でそれほど話題に上がって来ないですよね (私の周りだけ?)。結構大事なのに。実は皆さん、「Seleniumアレルギー」なんじゃないですか? 公式サイトに漂う ゼロ年代感(下図)。Javaへの躊躇、「めんどくさい」と聞かされ続けた過去、無意識に避けてしまうのがSeleniumです。 ただ、フロントエンドの文脈でこそ、ブラウザテストは重要度を増しています。そこで「Selenium触りたくない病」の筆者が、 四苦八苦した背景 と、2016年だからこそ 見えてきた落とし所 を書いてみたいと思います。 註: 思ったより長文になってしまいました。先
TL;DR Headless Chrome is shipping in Chrome 59. It's a way to run the Chrome browser in a headless environment. Essentially, running Chrome without chrome! It brings all modern web platform features provided by Chromium and the Blink rendering engine to the command line. Why is that useful? A headless browser is a great tool for automated testing and server environments where you don't need a visi
夏野剛さん、落合陽一さんと英語でディスカッション 英語の必要性をめぐる議論は、一回りも二回りもした感がある。 いわゆる「グローバル人材」の必須の能力として「英語」が取り上げられていたのは、一昔前の話。その頃、英語は確かに「キラキラ」とした、特別のものというイメージがあった。 時代が変わって、今や英語はできて当たり前、空気のようなもの、というふうになってきている。英語ができるからといって別に大したことはないけれども、かといってできないのはとてもマズイ、という感覚になってきている。 先日、面白いことがあった。 ある宇宙開発関係のフォーラム。当日現場に行くまでは、使用言語が何なのか今ひとつはっきりしなかった。外国からのパネリストも複数名参加されていたけれども、聴衆のほとんどは日本人だったので、日本語でやって同時通訳で外国のパネリストに伝える形式なのかなとも思ったのである。 それが、当日MCをされ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く