「スクレイピング」を含む日記 RSS

はてなキーワード: スクレイピングとは

2017-10-28

anond:20171027101309

タデプログラミングやってみた

実行環境は、Windows 10はてなAPIは知らない

1)URL規則性を見つける

増田場合

https://anond.hatelabo.jp/?mode=top&page=1

page=1、page=1001、・・・

2)各ページの日記規則性を見つけて、投稿時刻の取得方法検討する

増田で、先頭の日記場合

<div class="section">
<h3>
<a href="/20171010162108"> ← (雑だが)ここらへんを取ればよさそう
<span class="sanchor">■</span>
</a>
<a href="/20171010161641">anond:20171010161641</a>
</h3>
~~~
</div>

3)定数、関数の雛形、ループURLを生成・出力するだけのソースをとりあえず作成・実行

実行すると、↓が出力されるだけ

https://anond.hatelabo.jp/?mode=top&page=1

https://anond.hatelabo.jp/?mode=top&page=1001

https://anond.hatelabo.jp/?mode=top&page=2001

・・・

4)「ruby web 取得(スクレイピング)」あたりでネット検索、内容を理解せずにコピペする

4-1) 標準のopen-uriを使うと取得できるよ等見つかる

open-uriを実行すると、謎のエラー発生

C:/Ruby23-x64/lib/ruby/2.3.0/net/http.rb:933:in `connect_nonblock': SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (OpenSSL::SSL::SSLError)

4-2)エラーメッセージ検索、内容を理解せずにコピペする

OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE

 

ここまでで、任意URLWebページ取得ができるようになる

5)Webページの内容を解析(パース)し、ページの先頭の日記のYYYY/MM/DD HH:MM:SSを取得

5-1)

HTMLはある程度構造化されているので、今回の場合だと、↓のようなとり方がいいと思う

「divタグ sectionセクション」直下の「最初のh3タグ直下の「最初のaタグhref

5-2)

思うけど、今回は、構造検索じゃなくて、単純に文字列検索だけで済ます

5-3)※

取得対象構造が変化する場合も多々あるが、構造が変化した場合でも、

構造的な取得方法を作っておけば、変化にもある程度対応やすい(パラメータの「1」を「2」にするとか)

文字列を解析的なやり方だと、取得対象の書式が変化した場合に、対処しにくいことが多い

ここらへんを、TODO:あとでやる、なんてするんだけど、もちろんあとでやらなくて不具合の温床になる

これ豆な

6)結果を出力

printコマンドプロンプトへ出力

 

例えばだが出力には、ファイルへ保存、メール送信クラウドへアップ、増田投稿 とかもある

 

ここまでで、page=1の処理ができた

7)繰り返しに注意

page=1ができればあとは繰り返すだけ

繰り返すだけなんだが、取得ごとに10秒待つことにする

あんまが~~ってやると、怒られるので

 

愚直なまでの単純な繰り返しは、PCプログラム) > 人の操作 の最たるものだと思う

 

はいえ、ほんとうに愚直で、

タイムアウトしたらどうなるのか?

・古いページは構造が異なるかもしれないのでは?

・最終ページはどこ?

・・・などなど。これらの忖度AIでも解決しにくい・・・と思う。

8)余談1 プログラム関係ネット検索すると、はてな結構ひっかかる

なにかうれしいセロry

9)余談2 スクレイピングってなんだよ

的な英単語IT用語解説よりも、英和辞典を引くとスって理解できることがある

scraping ・・・ こすること、削ること、削り落としたもの、かきくず

・・・

rubyソース

require 'open-uri'
require 'openssl'

# なんかエラーが出る暫定対処
OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE

BASE_URL = 'https://anond.hatelabo.jp/?mode=top&page='
PAGE_INCR = 1000

# 4) 指定URLのページを取得
def get_page(url)
    open(url).read
end

# 5) 年月日時分秒を取得
#012345678901234567890123456789012345678901234567890
#<div class="section"><h3><a href="/20171010162108">
def get_ymdhms(page)
    pos = page.index("<div class=\"section\"><h3><a href=")
    #p pos
    #p page[(pos+35)..(pos+35+13)] # YYYYMMDDHHMMSS 14
    aa = page[(pos+35)..(pos+35+13)]
    sprintf("%s/%s/%s %s:%s:%s", aa[0..3], aa[4..5], aa[6..7], aa[8..9], aa[10..11], aa[12..13])
end

# 6) 結果を出力
def print_dat(inc, ymdhms)
    puts sprintf("%06d, %s", inc, ymdhms)
end


# メイン
def main
    inc = 1
    for i in 1..10
        sleep 10 unless i == 1 # 7)初回以外は10秒待つ
        url = BASE_URL + inc.to_s
        page = get_page(url)   # 4)webページ取得
        ymdhms = get_ymdhms(page) # 5)投稿年月日取得
        print_dat(inc, ymdhms) # 6)結果出力
        inc += PAGE_INCR
    end
end

# 実行
main

 

ソース記法で書くと文字化けするので、スーパーpreで)

実行結果

ano_his.rb:67: warning: already initialized constant OpenSSL::SSL::VERIFY_PEER
000001, 2017/10/28 15:04:51
001001, 2017/10/10 17:08:08
002001, 2017/09/19 17:22:26
003001, 2017/08/24 10:23:53
004001, 2017/07/27 11:57:49
005001, 2017/06/27 17:42:17
006001, 2017/05/28 22:57:26
007001, 2017/04/28 10:26:18
008001, 2017/03/21 10:10:38
009001, 2017/02/10 15:01:32

2017-10-16

家計簿アプリを入れてみた

Amazon連携ができて買った内容が明細で見れるらしかったのですごいなーと思って連携ボタン押したら生パスワード要求された

これはあれですか

Amazon連携APIがないから直接パスワードを使ってログインしてスクレイピングするあれですか

そして継続して連携するためにはパスワードハッシュするわけにもいかいから生パスワードか復号できるように暗号化したあれをDBにあれするあれですか

DBの閲覧権限がある人間はその気になれば他人アカウントAmazonにあれできてしまうあれですか

あっ

頭が…

うわーこのAmazon連携ってやつは買った内容が全部出てきて便利だー

便利すぎるー

今まで買ったものが月ごとに全部わかってしまうー

2017-10-15

anond:20171015014103

http://oreero.x.fc2.com/

まず、自分web製作会社に勤めてる身なので、一通りの制作手順は知ってる。

で、なんでこのサイトを作ったかというと、

まあ、副収入がほしかったんだ。


そして、アダルトアフィリエイトサイトなるものを教えてもらった。


ちょうどその頃、仕事以外で勉強しているものがあったが

なんせ金にならん。(※webクリエイターは金など気にせずシコシコ勉強するのが大事


で、まずはアダルトサイトを作るにはサーバを借りねばならん。

といっても、お金はかけたくない。

できれば無料で。


そして、色々調べた結果、

やはり、アダルトサイトokFC2が一番しっくりきた。

いい評判はあんまり聞かないが割と普通に動いてる。


まあ、無料なだけあって、色々縛りはつくんだよね。

最初スクレイピングで、ほぼ自動化したサイト作ればいいんじゃね!

的なことを考えていたけど、FC2無料サーバだと致命的なことに、DBサーバサイド言語が使えない。


なんだろ、webも知らない人に伝えやすく言うと、

飛車角抜きで将棋しろとか、コンバイン使わず田植えしろとか言われてるようなもんかな。


なので、フロントエンド技術(html / css/ js)だけで、RSSとかの情報取得したりしてねー的なことをしないといけなくなった。

うーん、要はドラクエで言うなら、簡単呪文は使えるけど、ほぼ素手でたたかえって言われてるようなもんかな。


とりあえず、サイト体裁を整えるためにまずは、bootstrapサンプルを改変してベースを作った。

bootstrap便利。http://getbootstrap.com/


あとは、幾つかのアフィリエイトサイト登録してパーツを配置。

動画著作権アダルト動画を載せる際の調査をして、一通りの知識を得る。


あとは、どんなサイトにするか。


ぱっと思いついたのは、普通エロサイトよりもページ遷移を無くして、

どんどん動画を見やすいようにすれば、いろんなページから探し出す手間を省けるのではと思った。


なので、構成としては、クリックしてモーダルウィンドウの中で、動画再生する形に統一

動画採取場所DMM無料サンプルとXVIDEOSおk


サイトベースは一通り完成した。


で、1ヶ月運用してみると、シングルページの弱点を身を持って体験した。

SEOにクソ弱すぎる。



どうしよう流行りのシングルページ(なんちゃって)にしたのに・・・どんどん検索順位が下る。

そこで起用したのがpushState。

jsURLを書き換える技術。ただ書き換えるだけじゃなく、履歴のもの作成してくれる。


これをすると、グーグルさんのクローラシングルページのサイトでもうまいこと動いて順位があがった。

(若干iframeとの挙動問題はあるが、ないよりまし。まあいける・・・。うん。)

てな感じです。


収益化はまだ全然できてないけど、仕事サイト作るよりも自由だし、

変更もその場で思いついたこと試せるから面白い


後半眠くて、技術よりの話になった・・・

Webエンジニアはだまって、アフィリエイトしてみるのも面白いかもね。


という感じでした。。おそまつおそまつ


最近収益どうこうより、自分が作ったサイトに人が訪問してくれるだけで嬉しくて、

淡々と息を潜めるように更新してやす


↓まあ抜いていってくだせえ。

http://oreero.x.fc2.com/

2017-10-12

Googleにデコイを食わせろ!

「よろしい、ならば戦争だ」

Google検索と戦う方法を紹介します。

デコイ

デコイ(英: decoy)は、狩猟で囮に使う鳥の模型。これが元来の意味である

デコイ英語: decoy、Military dummy、囮とも)は、敵を欺瞞して本物の目標と誤認させる目的で展開する装備の総称

ネガティブSEO

リバースSEO」や「ネガティブSEO」とも呼ばれる逆SEO

逆SEOとは、特定サイト検索順位を下落させること

Matt Cutts氏が指摘するように、順位を下げるために付けたリンクが、期待とは正反対順位を上げる手助けをしてしまうこともあり得なくはありませんね。

リンクされているサイトではなく、リンク元サイトスパムかどうか判断していることをGoogleゲイリー・イリェーシュ氏がMarketing Landポッドキャストで明らかにしています

この説明にもネガティブSEOの具体例をあげて解説していることからペンギンアップデートネガティブSEO対策に力を入れていることがうかがえます

方針

  1. ネガティブSEOではなく、ポジティブSEO採用する。
  2. ポジティブSEOデコイを大量に投下する。

あなたプログラマーではない場合(手動)

  1. あなた名前を付けたブログTwitterアカウントを作る。(例:はてな次郎のダイエット日記
  2. 質の良い情報必要なので、趣味や特技を活かしたテーマ記事を書く。(例:スムージーオリジナルレシピを紹介)
  3. 業界有名人積極的メッセージを送る。(例:料理家・平野レミさんのちくわストローで飲むティスムージーレシピ感想を送る) https://twitter.com/Remi_Hirano/status/759208574694359044

 

目的は「はてな次郎」の文字列自分管理して、インターネット上に増やすこと。

 

  1. ブログ記事動画にして、YouTubeにアップする。(YouTuberビデオブログ
  2. ブログ記事書籍にする。(例:Amazon KindleAmazonオンデマンド印刷本)
  3. 書籍オーディオブックにする。(例:Amazon Audible

 

目的は「はてな次郎」の文字列を爆発的に増やすこと。

 

セルフプロデュースセルフブランディングするのがポジティブSEO王道です。

現在、「はてな次郎」をGoogle検索したら1万件ヒットする場合セルフブランディングした情報が3万件ヒットするぐらいを目指してください。

はてな次郎」に関する誤情報が、検索結果の10ページ以下に沈めばとりあえず成功です。

あなたプログラマー場合自動

はてな次郎」という文字列インターネット上で増殖させる作業を、手動ではなく自動で行うことも可能です。

 

  1. クローラー」を作り、Web上のデータ収集する。
  2. AI自然言語処理データを加工する。
  3. 加工したデータをもとにポータルサイトを作る。

 

(例)有名人応援するファンサイトを作り、各ページのタイトルやヘッダーに「はてな次郎」の文字列を入れる。

  1. Amazon商品データスクレイピングして、本=著者、CD歌手DVD監督俳優人物データベース作成する。
  2. その人に関する情報スクレイピングする。(DBディアAPI、あのひと検索スパイシーを参考にする)
  3. 日本語英語日本語の往復翻訳をするなどして、オリジナルデータを少し改変する。
  4. 人物に関するデータから、その人物の三行紹介を作成する。(マルコフ連鎖圧縮新聞のような記事を生成する) http://pha.hateblo.jp/entry/20071124/1195904502
  5. 自分が好きな歌手女優なら、自分で紹介記事を書いても良いです。(手動の作業も加えてOK

 

このような方法で、100万ページ程度のWebサイト自動的に作れます

データや加工方法を変えて、さらWebサイトを作れば「はてな次郎」の文字列インターネット上に1億個以上投下することも可能です。

いいね工場

アメリカ大統領選挙ロシア情報操作を行っていたと言われている「ロシアゲート事件」を参考にして、SNSデコイをばらまくことも可能です。

  1. 安いスマートフォンSIMカードを大量に用意する。
  2. SNS操作する専用アプリを作る。(DeployGateやTranspoterPadのようなデプロイツールを利用)
  3. はてな次郎」の情報自分で作ったブログWebサイトSNSアカウントなど)を拡散したり、いいねを送る。

 

ユーザー陳情を受付けないGoogle傲慢ですね?

やりたい放題のGoogleをブッ飛ばすには、プログラミング有効です。

頑張ってください。

 

追記

記事仮名が変更されたので本記事仮名も変更しました。(はてな次郎)

 

補足:

はてな次郎」の文字列自分管理

自分が書いた投稿なら、必要に応じて(自分権限で)表示/非表示を切り替えられるので管理上都合が良い、という意味です。

2017-09-19

増田テキストマイニングして投稿者パターン判別

https://anond.hatelabo.jp/20170918004847

続き

テキストマイニング勉強して増田に頻出する人間の種類をパターン化しようとしてるんだけど、方法が思いつかない

スクレイピングデータを取る→mecab形態素解析して頻出名詞データ化する→頻出名詞によって元増田がどのカテゴリーの属するのか判定する

最後カテゴリーを作るのがむずい。カテゴリー名前を人力でつけようとするから難しいのか。ある程度頻出名詞が似通ったら(閾値を作って似てるの基準を作る)適当に振った名前group1,group2等に放り込むか。頻出名詞が似てるかどうかを判定するのは何の理論を使うのか、もしくは何のライブラリを使ったらどれだけ似てるかの判定を簡単にできるのか

最後のどれだけ似てるかの判定が自分は分からないってことが分かった

こういうのはどこで質問したら良い回答が得られるかな

2017-08-30

https://anond.hatelabo.jp/20170830155706

自慢にもならんけど

1997年からネットPC使っててHTTPを人並に読めてgithubスクレイピングライブラリにプルリクエスト出すようなエロシコ二次裏ユーザーだがあのへんの魚拓の取り方は知らんぞ

とった後どうなるのかも知らん

とった後のページは何度か見たことがあるが

個々のWebサービスの利用知識というのは単にその特定Webサービスの利用の経験によるものであって、汎用の経験リテラシでは代替できない

できんもんはできんしそこまで手間かけたくないものの手間はかけたくはない

2017-05-29

http://anond.hatelabo.jp/20170528113521

んー、研究倫理の項にだいぶ漏れが目立つな。

言論表現の自由には愚行の自由も含まれるだろうから、こういうダメ研究も守るべきとなるのはわかる(私はシャルリーってやつね)。

が、学問研究としてみた場合は、特に倫理面でダメ研究はむしろ排除していかないとかえって学問の自由が阻害される状況もある。研究の質を保つ問題もあるし。

例えば小保方さんの問題になった論文は、それを著作物表現物としてみれば当然表現の自由として法に守られるべきだが、学問研究としてみた場合研究手法事実関係研究倫理等が厳しく糾弾されたり学会論文誌等から排除されるのはしょうがないよね、といえる。かつてのオボちゃん擁護勢もそうだったが、この両者を混同して前者の論理後者まで擁護しようとしてる人が大勢いて混乱に輪をかけている。

2017-05-12

製造業新卒で入って数年経過したけどもうダメかもしれない

新卒製造業に入った。

大学では工学部ではない理系だったので右も左も分からないなりにがんばってみようと思っていた。

悪く言えば自分能力絶望して夢を諦めることになり都落ちした気分での就職だったのでやぶれかぶれだったというほうが近いかもしれない。

相性というか、背景の差とか常識の差みたいなものがあって、自分から見ると無駄の多い職場だなあと感じて研修期間が終わり本配属された。

無駄が多いという感想は本配属後も変わらなかった。

本来業務はいわゆる故障解析で、歩留まりを上げていくのが使命だった。

せっかくだから色んな所に首を突っ込み改善できそうなところは提案をしたり、自動化したり、それらのドキュメンテーションを書いてみたりした。

プログラミング経験は皆無だったが、理論系卒が工学部に負けられんという謎のプライドVBAから、Rやら自社製品の解析用環境の割と珍しいタイプスクリプト言語など(特定されそうだからぼかすけど。)

とりあえず手が出せそうなものは何でも調べてみてありものを改造してみたり勝手作ってみたりして提案していた。

物怖じしない新人がぎゃーぎゃー騒いでいるぐらいのものだったと思うが、何にせよいくつかの改善が上手く実務にハマって成果として認められたりしだしたのが1年目。

この辺で気付いたことだが、製造業ITリテラシーは驚くほど低い。製造業一般化するのはフェアじゃないかもしれないから厳密に言えば弊社の、という意味だが。

なんせまともにプログラムを書いたことが無い新人半年で身に着けた程度のスキルで書いたプログラムで、1日かかってた仕事が1時間で終わったりするのだ。

ようするにMS officeの達人みたいなのがいっぱいいて、Ctrl+CとCtrl+Vが機能のすべてだと思っているということだ。

(そして彼らの口癖は「忙しい」だ、会議中も左手はCtrl+CとCtrl+Vを叩き続けている。)

2年目に気付いたのは、弊社エンジニアITリテラシーが低くとどまっている要員のひとつに、実はITインフラチームがことのほかマトモだということがある、ということだ。

製造中のセンサーデータやらテストデータやらETL的にはおそらくえげつない部分で、かなり優秀な人間が居て上手くぶん回し切っている様子だった。

無骨だが使いやすイントラ上のwebページが用意されて、グロテスクな部分を気にせずクリックだけで上述のデータを整ったものとして引っ張ることができた。

から逆に言えば下々の人間コピペでなんとか恰好を整えられるのだった。

彼らはモダンな発想があって、あるいはお偉いさんが「ビッグデータ」とか言い出したのかもしれないが、ともかく、HadoopやらAWSやらそういったものを導入しようと試みているらしかった。

私はそれに感動した。なんせWebスクレイピングみたいな方法他人が社内プラットフォーム社内WIKIに上げた報告をまとめたり、製造データと紐づけたり、それからグラフ描いたりみたいな業務が増えていたからだ。

それっぽく表現すればデータ分析屋さんということになるのだろうが、どぶをさらっているという表現のほうが近かったかもしれない。

何にせよそういったもの一気通貫自動化できるポテンシャルがあると感じられた。

SQLjavaも書いたことなんて無かったが、1年前やっていたことを考えれば同じことだ。何にせよ歓迎だった。しか管理IT持ちだ。餅は餅屋に頼むべきだ。それもできれば美味い餅屋に。

ところがその「ビッグデータプロジェクト人手不足か、資金不足か、あるいは生みの苦しみか、ことのほか時間がかかっていた。(あとで聞いた話、外部コンサルで外れを引いたらしい)

自分ドメイン知識からの助言とか想定される使い方についての意見を伝えていったし(有難迷惑だった可能性は否定できないが)、もう少し待てばモノになると信じていたし、実際そうなった。

具体的な話ができないのだが、客先で起こった不良の原因をつきとめ、その改善効果確認の為に数十億行のデータ活用された。彼らの力が無ければ常識的時間では終わらなかった仕事だった。

残念だったのは彼らの優秀さの割に一般エンジニアスキルがあまりに低かったということだ。つまりそのプラットフォームを使いこなせる人間が著しく少なかったのだ。

そして上述の足踏みをしていた期間に心象を悪くしていたという問題もあった。とっかかりが難しい割に不安定だというレッテルを張られてしまっていた。

このころ私は入社3年目に突入していたが、

もうすこし悪いことに、同時期に企業買収が起こった。我々は黒字を出していたが同業他社(厳密にはその親会社に)に買われることになった。

そういう時に起ることは不要冗長性の削減だ。子会社として存続する場合は知らないが、競合他社に吸収合併ということは、多くの部署にとってそのカウンターとなる部署相手側にも存在するということだ。

まりどちらにもある部署統合するか一方を無くすかという戦争が始まるのだ。IT例外ではない。(ITインフラ部署の無い会社はさすがに無いはずだ)

一方で製造業の本懐である製品を作り、売る」という部分は比較的守られる。それこそが根源的な資源であり、利益を生む仕組みであり、既存顧客への説明必要からだ。

そして私の仕事は歩留まり改善であり、故障解析であり、データ分析だ。何が起こったか

(ここで簡単のために旧弊社を(旧)A社、買収した側の競合他社を(旧)B社と呼ぶことにする。)

今の旧A社から引き続いている業務をB社のプラットフォームで行えるように転換せよという下命である

旧B社の製造データに対するアプローチはA社とまったく異なっていた。Web UIは美しく整っており、それっぽいグラフ簡単に表示され、A社側のお偉いさんからも好評を得ていた。

だがそのバックエンドは控えめに言って酷いモノだった。いくつもの情報を正常に保存できておらず、「それっぽい何か」を素早く返答することを第一義としているように見えた。

そして上述のように器用貧乏街道を歩んできた私に投げられたのは次の言葉

増田くん、B社のプラットフォーム使うことは決定事項だから、君が自動化してたやつ全部そっちで動くようにしといて。よくわかんないけどプログラムとかてきとうにできるでしょ?」

もちろんhtmljavascriptphpRoRも一行も書いたことが無いのが当時の私である

果たして旧A社のプラットフォームはB社のプラットフォームデータソースのような扱いを受ける羽目になり、私はjavascript本格入門を片手にB社の事業所に出向くことになった。

そこで散々「旧A社のプラットフォームは遅い・使いづらい・不安定」と貶されながらチマチマとグラフを表示するページを書いている。

クオリティの低いバックエンドを作る集団が書いているサーバーサイドphpの酷さは素人目にも分かるレベル筆舌に尽くしがたいものがあるが、

反面教師だと思って耐える日々だ。

最近分かったことは旧B社のバックエンドスクリプトデータを引っ張るついでに意図的に旧A社のプラットフォーム攻撃しているということだ。DDoSとまでは言わないが、悪意100%である

いわく旧A社のプラットフォームを畳むためには旧B社のプラットフォームが優秀であることを示す必要があるとのことである。(つまり旧A社プラットフォーム不安定かつ重くなることを意図しているらしい)

旧A社から継続されてる業務はまだそこ使ってるんですけど・・・

それはもちろん旧A社の上司に報告したが「見て見ぬふりをしろ」とのことだった。旧A社のITで何度もお世話になったひとに伝えると「知ってるけどね・・・」と悲しい目をして苦笑いしていた。

旧A社ITはその優秀さでそれらの攻撃をいなしつつあるようにも見える(私も素人に毛が生えたレベルだが、ソフトウェアエンジニアリングレベルが二回りぐらい違うように見える)

この不毛な戦いはいつ終わるのだろう・・・つらい・・・

そして私はいつまでソフトウェアエンジニアの真似事を続けてキャリアを消費していけばいいのか、もうダメかもしれない。

そもそも私はエンジニアなのだろうか・・・少なくとも職位にはそう書いてあるけど・・・

2017-04-24

http://anond.hatelabo.jp/20170424200836

昔は「エロサイト違法動画スクレイピングして表示するサイトつくりました」って増田URL貼ってアクセス稼ぐ犯罪者が多かったけどそれの亜種だな。

2017-04-21

Orarioとスクレイピング大学側の対応について

すでに学生でもないのになぜこの件について書いているか自分でも分からないが、例の穏便でない大学教授発言ブーストされた感がある。

まず前提として、ID/パスワードを用いてスクレイピングを行うサービスのものは、特殊というほどではない。そのようなサービスはすでにいくつも存在するし、最も有名なところでは口座アグリゲーションサービスMoneyForward等)だ。彼らは業としてそのようなサービスをおこなっている。セキュリティのこと少しでもわかる人間ならそんなサービスやらない、というほどでもない。ただし、セキュリティが分かる人間であればあるほど慎重になる、というのは確かではある。通常ID/パスワードを渡すということは、全権委任とおなじだ。また、ログイン後の行動について、自分がやったか第三者がやったか、全く判別できない状況になる。さらに通常のWebセッションと同等だとすると、パスワードリセットから完全なアカウント乗っ取りまであり得る。つまりサービス事業者に対してよほど強い信頼関係がなければ厳しい、ということになる。

クラウド上で動いているかスマホ上で動いているか、という話は、それほどは重要ではない。クラウドしろスマホアプリしろ、すべてサービス事業者側の組んだプログラム意図に従って動くものであることは確かだからだ。

ただしクラウド上ではユーザが想定していない動作を行っているのかどうかという検証しにくいという問題があるとはいえる。とはいユーザが予め意図した行動から外れることをしてないのであれば、クラウドからアクセスでも別にそれは問題ないわけで、その点で、Orario側の主張であるスマホで動かしているのだから」という主張は、ちょっと見当はずれではある。

なお、ユーザインタラクションを介さな自動的アクセス自体サービス要件に含まれ場合スマホでは厳しいためクラウドアクセス主体が置かれる、というのは、まああり得る。口座アグリゲーションはその典型的ものだろう。Orarioの場合は、たぶんその必要はないのだと思う。

正規手段として学認があるのになぜしない?という主張は、マジでひどいと思う。普通に考えて、ぼっと出の1ベンチャートラストサークルに加えてもらえると思っているのか。このような主張は、Google/Facebookレベル自由APIクライアント登録ができるようになっていて、初めて言えるものだろう。通常は、世に受け入れられるサービスが出て初めて実行力を認めてもらえる、にわとりたまごの話ではないのか。そもそも、学認のShibboleth仕様で、そのような履修情報のやりとりがそもそもできるようになっているのか疑わしい。ホントSSOできるだけではないのか?

大学側にお伺いを立てるべき、という筋論は、そりゃそうかもしれないけど、やっぱりにわとりたまごだと思う。ビジネスの筋論っていうやつは、内輪だけの論理になっている場合が多いし、正直ステークホルダー既得権益側だったりするわけで、話が通じるとは思えない。そのようなもの破壊していくのは常に外部からだろうし、それを単なる破壊行為ではなくDisruptionにできるのは唯一ユーザからの支持であるわけだけど、Orarioは最低限そこはできていたようにもみえる。例の教授はどうも内側のメンバーの感じがひしひしと出ており、傍目から見ると、そりゃそのポジションじゃあね感が強い。

事業モデルがわからいから怪しい、事業が成り立つとしたら収集したデータ第三者への販売ぐらいしかないはずだ、という主張は、気持ちはわかるもの論理として弱い。怪しいサービスに預けるな、というのは、意見の表明ではあるかもしれないが、普遍的に怪しさを証明するには根拠が足りていない。利用規約レベルではまだなんとでもいえる。逆に言うと、Orario側は、そういう色が少しでもあったのでは?と思わせるような内容を否定してさえいけば、その点では勝てるが、やっぱりそこは何らかの形で検討して行きたかったのでは、とも思えるので、そういう将来の自分たち制限することはことはあまりやりたくないだろうなとは思う。

結論を言うと、とりあえず大学側はもうすこしトーンを落としてほしい。このままではFUDだといわれても仕方ない。単位云々の脅しは傲慢以外の何物でもない。少なくとも卒業生にとってそのような大学いたことを恥じるレベルである。嫌なのは分かるが、銀行とかだってそうだったはずだ。もうすこし長い目で見てあげられないのか。ID/パスワードを預けることのユーザへの注意喚起は、もちろん正当だが、それを認識して預けていることについてとやかく言うことは得策でない。

そして、Orario側は、自分たちがやっているサービス説明に少し時間を割いてもいいと思う。特に何をどのように取得しているのか、明確にすることは重要だ。大半のユーザたちはそういうこと気にしないとしても、自分たち自身自分たちサービス定義するのに役に立つし、今はEvilでなかったとしてもいつかEvilになってしまうのを防ぐという意味合いもある。面倒かもしれないが、取得範囲を明確にすることは信頼を得るということであり、最終的にユーザの獲得に寄与するだろう。

2017-04-20

http://anond.hatelabo.jp/20170419213734

中の人なの?

ユーザスマホからスクレイピングじゃなくて、ユーザスマホからアクセスによるスクレイピング(と情報の蓄積)が問題とかじゃなかったっけ?

なんで開発中だけちょろっとアクセスしただけなんて言えるんだ?

2017-04-19

流行ってるOrarioと大学側について思うこと

Orarioについて思うこと

Orarioについて

現在大学の中でOrarioのアクセスがどうこうという問題が起きているようだが、

ひとまずこの記事については、下記URLにある、京都大学専門家であらせられる記事について、一人歩きしてる感があるので、

もう少し彼のような上流側(という表現で良いかどうかは不明だが)の専門家ではなく、

下流プログラムガッツリ書いているほうの専門家として私(匿名で失礼)が纏めたいと思う。

  

https://srad.jp/~yasuoka/journal/611343/

  

  

不正アクセスという言葉曖昧

Orarioの芳本大樹が書いた『時間割アプリの「Orario」の特性安全性について』(2017年4月17日)という文書を読んだ。このOrarioは、京都大学のKULASISにずっと不正アクセスを繰り返していて、正直なところ私(安岡孝一)としてはアタマに来ていたのだ。

  

Orarioの特性安全性について、本当にスクレイピング技術クライアント端末側で行っているのであれば、

この部分は間違いではないと私(匿名で失礼)は考えている。

  

この部分の書き方、実に大学教授らしい逃げ道を多く用意していて。

  

KULASISにずっと不正アクセスを繰り返していて

  

上記発言、これは本来「開発時の検証段階」の話をしているのであれば「正解」、である

逆に今のOrarioの通信についてを不正アクセスとしているのであれば「正解ではない」、である

  

何せ、開発者勝手アカウントを使って入り込んで様々な検証を行う必要があるため、

学生からIDパスワードを借りたはずだ。

借りてログインするのが不正かというと微妙ラインだと思う。

  

この辺りにもやっぱり大学教授のいやらしさがあって

KULASISサーバに対してクラッキング/ハッキングを行って根こそぎどうこうしたなどという大がかりな不正アクセスではなく、

あくま大学側が定める規約規則から若干外れた使われ方がされているという意味不正アクセスである

  

法律的には、正直不正かどうか微妙ラインになる。

(そもそもスクレイピングなんて技術を使う連中はID/PASSWORDがない状態でのサーバへの不正アクセスなどできない

  

開発時は「京大のKULASISアカウントをもったユーザが開発に携わっていないのであれば」押し出してきている京大規約によれば、不正アクセスにあたるのかもしれない。

個人的には当たらないと感じるが。

  

  

現在動いているアプリ不正アクセスと断言できない

現在動いているもの不正アクセスではなく、

京大規定に定められたユーザが「特定ブラウジングツール(Orario)」により、

KULASISにアクセスしているのだからアクセスとしては不正ではない。

本当にスマートWebスクレイピングで行われているのであれば、Webブラウザと全く同じ動きをするはずで、

それを不正アクセス断罪してOrarioは不正というのは表現が汚いと考える。

  

  

これはコメント欄にもあるが、

https://srad.jp/comment/3196554

また、ChromeSafari(及びその他マイナーWebブラウザ)なども御校のWebサーバーよりコンテンツデータを取得し、HTML構文解析し画面表示を行っていますが、これらはセキュリティポリシーには適合しているのでしょうか?

  

ご大層にはっておられるリンクを流し読みをする限り、そんな厳格に何かを定めているわけではないように思われる。

それ故、実際にOrarioがスマートフォンによるスクレイピングを行っているのであれば、

Webブラウザ一種とも言えなくはない為、これを不正と断ずるのは、「正しくない」だろう

京大ユーザが開発に携わったか証明できない以上、彼にとっては不正なのかもしれないが、

ここでそれをOrarioは不正アクセスと断ずる論理性が私(匿名で失礼)にはわからない。

  

  

アクセスパターンを公開できない理由とは?

他にもこの部分

Orarioアプリでは「Webオートメーション(Webスクレイピング)」と呼ばれる技術を用いています。この技術により、利用者様のスマートフォン(にインストールされているOrarioアプリ)に学生アカウント大学IDパスワード)を入力すると、自動で当該利用者様の教務用ページから時間割の生成に必要情報のみを取得し、Orarioアプリ時間割テーブルに当該利用者様の時間割を生成・表示することができるという仕組みとなっています

全く信用できない。少なくとも先月以前、OrarioからKULASISへのアクセスパターンを解析した限りでは、そんな風なアクセスパターンには見えなかった。嘘を書くのもいい加減にしろ

  

この部分も怪しいものである

Webスクレイピング技術に関して、なぜアクセスパターン問題になるかが一つ疑問である

下記のOrarioが出しているPDF(http://www.orario.jp/wp-content/uploads/2017/04/Orario%E3%81%AE%E5%AE%89%E5%85%A8%E6%80%A7%E3%81%AB%E9%96%A2%E3%81%99%E3%82%8B%E8%A6%8B%E8%A7%A3.pdf)にあるように、簡単にいうならばID/Passwordを利用したPOST通信を行い、その返答値をスクレイピング切り貼り)している。

  

それをアクセスパターンを解析で一体何が取れるのか?という部分が、この辺りが分かる自称専門家の私(匿名で失礼)にもさっぱりわからない。

  

もっというと、「そんな風なアクセスパターンには見えない」、というならば、セキュリティ観点上公開すべきではないだろうか、

逆に一体アクセスパターンを見て私(匿名で失礼)も何を行っているのかが気になるところである

  

ただでさえ、不正アクセスという言葉をつかって攻撃しているわけだから

アクセスパターンを公開して断罪すべきだし、セキュリティ観点からみても他大学との共有はすべきで、

学生に対してもその証拠を出して止めさせるべきだろう、というのが個人的見解である

学生の求める「単位」をつかって脅しをかけている時点で、お察しだが……。

  

そもそも上記で述べた開発時のほぼ不正アクセスと考えられる通信についてを「アクセスパターン解析で見つけた」というのであれば理解ができるが、

現在すでにスクレイピング確立している通信に関して、アクセスパターンでOrarioかどうかを判別するのが可能かというと何とも言えないと思う。

(ご丁寧にOrarioが通信用のUserAgentにOrarioの文字を含めているなら別だが……

(もちろん、アクセスログを見て、ログインページからWebスクレイピングしたいページへ遷移するまでの時間を取るとあまりに短すぎる、という話ならやれるかもしれないが……。

  

たとえKULASISが京都大学オリジナルで開発した大学教務事務パッケージだとしてもそうだろうと考えている。

同様に日立富士通も同じような大学教務事務パッケージがあるが、

基本ログ処理がザルでろくにuser-agentの確認もできない大学も多く存在したりすることを知ってる自分としては、

本当だろうか?嘘を書くのもいい加減にしろ? と思う。

大学側について思うこと

なぜOrarioが学生に人気か

UIが糞(システムスマートフォン対応がノロい)だからアプリ流行るということに気づくべき。

  

富士通日立にしてもそうだが、API提供したほうがいいのではなかろうか。

とくにKULASISだったか何だったは、京都大学謹製と聞いている(違ったら失礼

少なくとも他の大学教務事務パッケージではなかったと記憶している。

であれば、京都大学API提供大学側で専門家を集めてOrarioを超えるものを作ってはどうか?

  

大学予算確保の問題

実際大学でこういうことをやろうにも、問題になってくるのは予算で。

大学は、縦割り構造で、横とのつながりが極端に薄く。

教務、事務、学務、図書館、など様々な縦割りが存在し、それぞれがそれぞれの予算でそれぞれのシステムを入れている。

これが実に糞で。

つの大きなシステムを入れ替えるとなると、横との連携をとって全ての組織の号令をとらなければならない。

  

その辺りが難しいのは知っているので文句は言えないものの、

ここまで問題になってくるとやはりその辺りの対応の遅さが問題なのではないかと考えている。


まとめ

学生がアホ → 仕方が無い若いんだし

大学がアホ → 学生に良い物を提供したいという思いがあるならもっとフットワーク軽くしろ

教授がアホ → 曖昧表現で、素人を先導しようとするのが見え見えで気に入らない

Orarioアホ → コメントにもあるけどやり方が汚いのは確かだから甘んじて受け入れろ


以上です

2017-02-16

[]ブクマ1000超えしている11記事の内どれだけ重複するIDがあるか

http://anond.hatelabo.jp/20170215193247

の回答にあるブクマスパム説を検証するために数えてみた

7,086個のID12,216回のブックマークを行って111000超え記事を生み出していた。1ID平均1.72ブクマ

http://b.hatena.ne.jp/ranking/weekly1000ブックマーク以上されている11記事中n記事ブックマークしているID

11, 6ID

10, 6ID

9, 12ID

8, 23ID

7, 42ID

6, 71ID

5, 130ID

4, 263ID

3, 624ID

2, 1595ID

重複なし, 4314ID

(注: n重複のID数の中にn+1重複のID数は含まれていない。つまり10重複のID数の中に11重複のID数は含まれていない。)

集計対象11ページ

ttp://b.hatena.ne.jp/entry/www.nakahara-lab.net/blog/archive/7308 (※この行間違えてたので修正)

ttp://b.hatena.ne.jp/entry/s/togetter.com/li/1079883

ttp://b.hatena.ne.jp/entry/omocoro.jp/kiji/101534/

ttp://b.hatena.ne.jp/entry/qiita.com/shu223/items/9e3a50e092c2997fe6d2

ttp://b.hatena.ne.jp/entry/ironna.jp/article/5686

ttp://b.hatena.ne.jp/entry/blog.tinect.jp/?p=36441

ttp://b.hatena.ne.jp/entry/s/togetter.com/li/1078513

ttp://b.hatena.ne.jp/entry/careersupli.jp/lifehack/eiga/

ttp://b.hatena.ne.jp/entry/www.lifehacker.jp/2017/02/170205_free_alternatives.html

ttp://b.hatena.ne.jp/entry/anond.hatelabo.jp/20170206102543

ttp://b.hatena.ne.jp/entry/appmarketinglabo.net/staba-sns/

はてブのページはスクレイピング拒否するかのようにJavaScriptで描画しているわ、コピペすると1ブクマ3行になっているわ、3行固定かと思えば2行のところがあるわ、めちゃくちゃなのでもうやらない。

2017-01-25

日経新聞AI決算記事自動生成 「日経電子版」などに配信

http://headlines.yahoo.co.jp/hl?a=20170125-00000083-zdn_n-sci.view-000

これ単なるスクレイピングじゃん。

AIってこういうのも言うのか?

そもそもAIって定義あいまいすぎるよね。

言ったもん勝ちだよなー

はてなーウェブスクレイピングの実力を見てみたいw

このサイトから英語日本語フレーズを対にしてcsvに全部落とせる?

みんな大好きの瞬間英作文のソースが大量に落とせるよ!

http://gogakuru.com/english/phrase/genre/index.html

はてなーウェブスクレイピングの実力を見てみたいw

このサイトから英語日本語フレーズを対にしてcsvに全部落とせる?

みんな大好きの瞬間英作文のソースが大量に落とせるよ!

http://gogakuru.com/english/phrase/genre/index.html

2016-06-29

anond:20160629135046

右も左も分からんかったのと、python勉強たかったんで、

pythonによるウェブスクレイピング」っていう本読んでるんですよ

curlでもスクレイピングできるんすね。

curl自体初めて聞きました

簡単クローリングなら、curlの方がいいってことですね

本に従ってbeautifulsoap使ってますそれから本の内容的にデータ分析のためにmysql使い始めました


将来的には、クロールしてデータかき集めて、自動取引なんぞに取り組みたいと思ってまして。

からmysql使うのなれとくもいいんではないかと思ってます

素人判断なので、間違ってたら教えてください

2015-12-28

AWS運用しているサイトに定期的にスクレイピングにやってくるバカは消えろks

1分毎に確認しに来てんじゃねえぞ

余計な金を払わせるな

非常識行為はやめろクズ

2015-11-29

aliexpressをrubyスクレイピング

rubyスクレイピング

aliexpressの検索結果から

検索結果のURLを抜き取るのは、

結構簡単にできた。

ここから、ページ切り替えてURL収集する処理も追加すれば、

クローロング部分は完成。

あとは、各ページに対するスクレイピング問題



require 'open-uri'

require 'nokogiri'

# スクレイピング先のURL

url = 'http://ja.aliexpress.com/category/200003482/dresses.html?spm=2114.52010108.6.7.gT0qlW&addpid=32546825642&isOnSale=yes%22'

charset = nil

html = open(url) do |f|

charset = f.charset # 文字種別を取得

f.read # htmlを読み込んで変数htmlに渡す

end

# htmlパース(解析)してオブジェクト作成

doc = Nokogiri::HTML.parse(html, nil, charset)

num=0

doc.css('a[class = "product "]').each do |product|

p product.attribute("href").text

p num = num+1

end

2015-11-26

http://anond.hatelabo.jp/20151126052308

発達障害が判ってからプログラマ目指した訳じゃないし、納期が守れないとか、バグ迷惑かけたとかはない。でももし先に発達障害が判ってたらやらなかったかもしんない。

俺が受注する案件システム屋さんとかに本格的に頼むには小さいとか、コストが掛かりすぎるけど、かといって自分達で拵えるのは難しいというスキマ案件webページの制作スクレイピングシステムサーバ等のインフラ準備、業務に使う簡易なデータベース構築、wordpressなんかのcmsカスタマイズExcelとかのVBAなんかも範疇といったらレベル判ってもらえるだろうか。手にあまりそうな案件なら事前にお断りさせてもらうし。案件安いよ。年収も低い。

でも俺は一人で誰に気兼ねなく作業が出来る今の形態がとてもありがたいと思っている。

作業形態も得られる対価にも不満はないしやっぱコード考えるのは楽しいから個人的には天職だと思ってる。ただ誤字が辛い。

2015-11-18

キュレーションサイトにおける自動タグ付け機能

こんにちは社畜です。

前回、下記の記事にてアダルト画像キュレーションサイトについて概要技術的なことに関して説明しました。

http://anond.hatelabo.jp/20151008191422

ちなみに当該サイトは下記になります

エロ画像まとめSharing

さて、新機能リリースしましたので、技術的なことの共有と、ご意見いただきたく僭越ながら記事投稿しました。

本来ならば技術ブログを書いたほうがいいのですが、ここのほうが多くの人に見てもらえると思いましたので。。。


タグを知らない人はここにはいらっしゃらないと思いますので、ざっくりと説明しますが、要するに投稿された記事に対して属性をつける機能となります

例えば「おのののかの魅惑の水着画像まとめ」という記事であれば、「おのののか」、「水着」、「ロリ」あたりが候補となるキーワードとなってきます


さてこのタグ機能を「適切に」行うことにより、サイト全体にどういった効能があるかというと、下記のような点が挙げられます


「適切に」と強調した理由としては、タグ付けをユーザー自由やらせしまうと、以下の様な弊害が生じてきます

という弊害が生じてきます

従ってある程度タグの整理をサイト運営側で整理しておく必要が生じてくるわけです。

はてなブックマークのようにスケールが大きいと、ゴミのようなタグ自然淘汰され、重要タグが数になって表れるので問題は無いのですが、本サイトのようにスケールが極小だとそれはなかなか難しくなってきます

今回のケースでは以下の要項でタグ付けするようにしました。

  1. タイトルからプログラムにより自動的重要そうなワードを抜き出し、それをタグとして活用する。
  2. 1で抜き出したワードのうち、必要そうの無いワードについてはブラックリスト登録し、以降タグけがされないようにする。

タイトルからプログラムにより自動的重要そうなワードを抜き出し、それをタグとして活用する。

これは主に二段階にやり方が分かれます

一点目は、形態素解析を用いた名詞ワードの抜き出しです。形態素解析というのは簡単に言うと、日本語文章自動的品詞分解するアルゴリズムのことで、これは名詞、これは動詞、などと必要単語抽出することができます

今回必要なのは名詞のみですので、形態素解析を用いて名詞のみを取り出しております

形態素解析ソフトは正直様々あるのですが、ここでは最もメジャーで、かつ無料であるmecabを使って行っております

二点目は、形態素解析カスタマイズし、タグ付けの精度を上げるということが挙げられます

形態素解析辞書の量と質がモノを言います。今回の場合新語への対応はもちろんのこと、ネットスラングであるとか、エロい言葉であるとか、芸能人人名辞書登録されていないと正直使い物になりません。

そういった辞書は実のところ出回っていないので、自分で作る必要が出てきます。今回プログラムコードは載せませんが、はてなキーワードwikipedia、各種芸能事務所、各種AV事務所などからキーワードスクレイピングし、それをmecab用の辞書データに変換する作業を行っております

これを定期的に行うことにより、常に辞書時代に合ったものになる、というわけです。


必要そうの無いワードについてはブラックリスト登録し、以降タグけがされないようにする。

これはそこまで難しくありません。

基本的タイトル中の名詞を全て拾ってしまうので、なかにタグ付けするにはふさわしく無いワード存在します。たとえば「おのののか富士山のようにでかいおっぱい画像をまとめ」というタイトルだと、「おのののか」、「富士山」、「おっぱい」を拾ってきます。「おのののか」、「おっぱい」は適切なのですが、「富士山」はタグ付けしたくありません。

このようなときに、「富士山」をブラックリストにし、以後タグ付けされないようにします。新語に比べるとそこまで量が多いわけではないので、最初は根気がいる作業になりますが、その内慣れると思います



以上が本サイトで行っているタグ付けのざっくりとした概要となります

あたりに関しては説明していないので、時間があるときにまた投下しようかと思っております

ソースコード提供とかなんかいろいろ意見交換したい!という声がもしあれば、下記までご連絡いただければ嬉しいです!

img_sharing@yahoo.com

それでは!

アーカイブ ヘルプ
ログイン ユーザー登録
ようこそ ゲスト さん