今回ちょっとインスタグラムをスクレイピングする機会があったので軽く記事にしてみようかなと思います。
使用したもの
Python3.9
Selenium
以上。
環境構築とかはしてる前提で軽く記事にしていきます。
注意点
インスタってスクレイピング対策されてるで有名ですよね
自分がページに何回かアクセスしたんですけどすぐログインページに飛ばされちゃうんで困りました。
とりあえず色々するのは面倒なので対策はIP変えるくらいですかね
Seleniumつかってるからって理由かもしれないですけど普通のブラウザで試してないんでわからないです。
アカウントにはログインしない状態で指定のアカウントのフォロワー数を抜き出します。
アカウントBANされるの嫌なんで
実際のコード
フォロワー数
フォロワー数を抜き出すくらいであれば指定のアカウントのページに行って以下のコードで抜き出せます。
text_element = driver.find_element_by_xpath('//div[text()="フォロワー"]')
text_element.find_element_by_css_selector('span').text
投稿数
投稿数抜き出すついでに投稿のURLも抜き出しますか
以下のコードで行けます。
taa = driver.find_element_by_xpath('//div[@style="flex-direction: column; padding-bottom: 0px; padding-top: 0px;"]')
aaa = aa.find_elements_by_css_selector('a')
print(len(aaa))
for i in aaa:
ii = i.get_attribute('href')
print(ii)
結構適当に変数つけちゃったんでごめんなさい。
変わらないだろうなっていう値を見つけてxpathで探してあげました。
あとはその下にあるAタグで検索してリンク抜き出してあげました。
ごめんなさい。投稿が多すぎるとこの方法では抜き出せないっぽいです
試してたのが投稿数少ない人のだったので気づけませんでした。
ごめんなさい。