ニコ生のコメビュを作りたかったけどできない
pythonのスクレイピングの練習もかねてニコ生のコメントのスクレイピングに挑戦したがダメだった。
ニコ生のHTMLを覗くと、コメントはここに書いてあった。
<span class="___comment-text___2plM2">コメント</span>
なので最初はrequerst()でhtmlをとってきてクラス名で抽出すればいけると思ったがニコ生のコメントはreactで動的に生成しているいて、さらにログインしないとアクセスできないと言う二つの問題点があった。
なのでseleniumを使って頑張ったが自分のIDとパスワードを入力させないと動かないし、コメントも表示されている10件分ほどしか取れなかった
コードはこんな感じ
import bs4,requests,time from selenium import webdriver driver = webdriver.Chrome() driver.get(放送ページのURL) #ログインしていない状態で放送ページにアクセスするので、ログインページに飛ばされる time.sleep(1) passelm=driver.find_element_by_id('input__password') #パスワードを入力させる passelm.send_keys(自分のパスワード) mailelm=driver.find_element_by_id('input__mailtel') #メールアドレスを入力させる mailelm.send_keys(自分のメールアドレス) mailelm.submit() driver.get("http://live2.nicovideo.jp/watch/コミュニティID?ref=grel") #再度放送ページにアクセスする time.sleep(5) html = driver.page_source bs = bs4.BeautifulSoup(html,"html.parser") comments = bs.select(".___comment-text___2plM2") print(len(comments)) for i in comments: print(i.getText())
一般的なコメビュって100件以上取ってくるし、ログインも自動的にしてくれる
あれどうやって動いてんだろ