LoginSignup
0
1

More than 1 year has passed since last update.

【Python】Instagramで自動検索して、投稿のURLを取得する

Posted at

初めに

 ことすたぐらむいいね機能の実装コードとなります。記事のまとめとして、以降の記事で、完成コードを記載したいと思います。

特定のキーワードで検索する

 Instagramdeはキーワード検索のurlが決まっており、以下のものになります。

検索URL
https://www.instagram.com/explore/tags/{特定のキーワード}/

 こちらの検索urlを用いて検索を行います。検索には時間がかかるため、10秒ほどスリープしていますが、最終コードではWebdriverで実装したいと思います。

instagram.py
    #特定のキーワードで検索を行い、最新の投稿10件のurlを取得
    def search(self, keyword):
        self.get('https://www.instagram.com/explore/tags/{}/'.format(keyword))
        sleep(10)

投稿のURLを取得する

 検索画面で投稿のリンクurlはInstagramでは以下のブロックに入っています。

リンクのあるブロック
main->article->a

 したがって記事のaタグを取得するコードは以下になります。

instagram.py
articles = self.find_element_by_tag_name('main').find_element_by_tag_name('article').find_elements_by_tag_name('a')

 リンクはaタグのhrefの値なので、そちらをfor文で回して取得しましょう。

instagram.py
        links = []
        i=0
        for article in articles:
            links.append(article.get_attribute('href'))
            i = i+1
            if i==10:
                break
        return links

 これでリンクを10件上から取得できました。全体のソースは以下になります。

instagram.py
    #特定のキーワードで検索を行い、最新の投稿10件のurlを取得
    def search(self, keyword):
        self.get('https://www.instagram.com/explore/tags/{}/'.format(keyword))
        sleep(10)#検索には時間がかかるため、ここはwebdriverを用いたい10秒でも結構ぎり
        articles = self.find_element_by_tag_name('main').find_element_by_tag_name('article').find_elements_by_tag_name('a')
        links = []
        i=0
        for article in articles:
            links.append(article.get_attribute('href'))
            i = i+1
            if i==10:
                break
        return links

終わりに

 seleniumは非常に便利なライブラリです。これからも使用機会があると思うので勉強していきます。
 現在はサーバー側のことすたぐらむを実装中です。こちらの方も後日記事を載せたいと思います。
 最後までご覧くださりありがとうございます。
 ご質問などございましたら、コメントよろしくお願いいたします。

0
1
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
1