LoginSignup
0
0

More than 3 years have passed since last update.

スクレイピング!!!Twitterのプロフィール画像を取ってこよう!!!

Last updated at Posted at 2019-07-26

どうも!!!
初対面の人からはインドやタイのハーフと間違われるチャンクノです。
チャンクノというニックネームから韓国人と間違われることもあります。
なので「チャンさん!!!」と呼ばれることもあり、
節子それ名前ちゃう、ただの敬称や!!!てなことがまあまああります。
くのちゃんをひっくり返してチャンクノなんですね。

それでは本題に入ります。
初めに、このやり方には一つ注意点があります。
ajaxを使って表示させようとするとエラーが起きます。

Cross-Origin Read Blocking (CORB) blocked cross-origin response https://twitter.com/@aka with MIME type text/html. See https://www.chromestatus.com/feature/5629709824032768 for more details.

このようなエラーですね。
原因はChromeのCORBというものなのですが、これに関しては解決の仕方が分からないです😭
解決のやり方は出てくるのですが上手くいかず、、、。
私の理解力不足で書いてあることがよく分からずに試せていないものもあります。
なのでajaxを使わない人だけ使用することをおすすめします。
私は一旦諦めました、、、。

はい。
というわけで気を取り直してチャンクノ流のスクレイピングについて紹介します。(既出のやり方でしたらごめんなさい)
下記のコードは私が今個人で開発しているものの一部です。恥ずかしい🙈

**index.html.haml**

.registers
  - @registers.each do |register|
    .registers-list
      .registers-list__image
        - require 'mechanize'
        - agent = Mechanize.new
        - page = agent.get("https://twitter.com/#{register.account}")←ユーザー1人1人のページを取得
        - elements = page.search('.ProfileAvatar a)←個人ページの中にあるプロフィール画像のhtml要素を取得
        - elements.each do |ele|
          = image_tag ele.get_attribute('href')←aタグのhref要素を表示

こういう感じでそのままHTMLに突っ込むことができました。
ちなみにこのコードではtwitterのプロフィール画像を引っ張ってきてます。
DBには保存しないやり方です。
ぜひためしてみてください!!!

CORB問題の解決の仕方や、スクレイピングもっといいやり方あるよ!!!っていうかたはぜひ教えて欲しいです🙇‍♂️

それでは皆様のより良いプログラミングライフを祈って🙏🙏🙏

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0