2016年 11月 の投稿一覧

【プログラミング】Pythonスクレイピング(Beautiful Soup)+XPathでテキスト文指定でリンク先URLを取得

久しぶりのブログ更新となってしまいました。

ぼちぼちやってきます。

さて、今日はプログラミングの記事です。

 

先日来から勉強中のスクレイピングですが、

XPathとBeautiful Soupを併用してスクレイピングをしてみたので本日の記事に。

 

・テーブル構造でテキストとリンク先URLのセットでスクレイピングしたい(pandasのDataFrameを利用)

・同じテーブル内で複数のa hrefがあり、かつ名前が付与されておらずタグのみで正規表現でもとりにくく、識別しにくい、けど取得したいリンク先URLがだった
→テキスト文章を指定してそのリンク先という指定でとってきたら良さそうだったのでXPathを使うことに
(DataFrameは行数が揃わないとエラーが返ってくるので不要なデータを省いて確実にとりたい)

・Beautiful SoupはXPath使えないけど、lxmlを使えば出来た

続きを読む

【プログラミング】Pythonで色々 スクレイピング(Beautiful Soup+Selenium+PhantomJS)とか形態素解析

かれこれ、平日夜と週末とでPythonプログラミング歴3ヶ月くらいになってきたわけですが、

楽しく引き続きやっています。

 

最近やったことは、

1,形態素解析→名刺絞り込み、ユーザー辞書追加など

・データをMecabに放り込んで、名詞のみで絞り込んで頻度算出、その後ユーザー辞書追加して再度やってみるという流れを掴んでおきたかったのでちょっとやってみた

・すぐに出来たので特に内容は記載しません。。。

 

2,Beautiful Soup+Selenium+PhantomJSでスクレイピング

・テキストや画像など、本当にスクレイピングは関係することが多いので、ある程度勉強したいなと思い書籍から入ってみた

https://www.amazon.co.jp/dp/4873117615

・まずはPython+Beautiful Soupで単ページで構造が分かりやすいものはさくっととれるということがよく分かった

・次いで、JSで出来た生成されてるサイトは上記組み合わせでは難しく、PhantomJS、CasperJSってのがあってJSで書いてスクレイピングすることで、これまたさくっととれるということが分かった

・最後、それら組み合わせ+SeleniumでPythonでもJSのwebサイトからスクレイピングできることが分かった

・とりあえず最後PandasのDataframeでcsv化しようとした時に、UnicodeEncodeErrorが出続けてどうしようかはまりまくったけど、Dataframeでcsv化するところにencodeの指定を入れて解決というなんだかなという結末で、とりあえずやりたいことが実現出来た

続きを読む