Pythonを書くんだヨ!
なんかこのままスクレイピングもういいやってあきらめるんもどうかなって思ったのでスクレイピングに向いてるっていうプログラミング言語のPythonを触ることにした。これでPornderのバックエンド部分に活用しようとかはまだわからんけど、食わずぎらいもよくないかなっておもうのでまあやってみるだけやってみるってことで。
qiita.com
なんかよくわからんけどスクレイピング用のライブラリが豊富にあるのがPythonがスクレイピング作業に向いている点らしい.....????
なんで?
Pythonインストール
Ubuntu環境のPython - python.jp
公式っぽい。わかりやすかった。というかやることもそんなに多くなかったしつまるところもなかったな
「ubuntuだったらもともとPythonプログラムを解釈するためのPythonが入ってるんだけど、システム上で動作させているPythonをそのまま使うのはちょっとこわいので開発するんなら自前のPythonを用意しましょうね~」みたいな感じのことが書かれてた。インストール方法も簡単だった。
公式偉い。
ハロワした
print("HelloWolrd")
終わり。拡張子は"~~.py"、ピヨみたいで可愛い。
python ~~.py
実行、問題無さそう、普通に標準出力できた。
VSCode・インテリセンスが効かない?を解消 - Qiita
vsCodeにPythonファイル用の補完設定を入れた。
FizzBuzz書いた
for num in range(20): if num == 0: pass elif num % 5 == 0 and num % 3 == 0: print("FizzBuzz") elif num % 3 == 0: print('Fizz') elif num % 5 == 0: print('Buzz') else : print(num)
こんな感じ。
1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz 16 17 Fizz 19
Pythonの条件分岐:if文 | UX MILK
Pythonのif文による条件分岐の書き方 | note.nkmk.me
参考にしたのはここ。else if文がelifって書かなきゃいけないところをelseってタイポして一瞬詰まってた。
あと、Pythonでは純粋にJavascriptのfor文みたいなかんじじゃなくて、配列をループさせてるっぽい。感覚としてはforeach文に近いのかな。
スクレイピング
とりあえずしてみる
qiita.com
ここのをコピペしてみた。
# coding: UTF-8 import urllib2 from bs4 import BeautifulSoup # アクセスするURL url = "https://jp.pornhub.com/" # URLにアクセスする htmlが帰ってくる → <html><head><title>経済、株価、ビジネス、政治のニュース:日経電子版</title></head><body.... html = urllib2.urlopen(url) # htmlをBeautifulSoupで扱う soup = BeautifulSoup(html, "html.parser") # タイトル要素を取得する → <title>経済、株価、ビジネス、政治のニュース:日経電子版</title> title_tag = soup.title # 要素の文字列を取得する → 経済、株価、ビジネス、政治のニュース:日経電子版 title = title_tag.string # タイトル要素を出力 print title_tag # タイトルを文字列を出力 print title
最初のコードをコピペしてリクエスト先のURLだけhttps://jp.pornhub.com/に変えてみる
結果
<title>無料エロムービーとセックス動画。Pornhubはエロ動画をダウンロードしたりストリーミングで鑑賞できる最強の動画サイトです。</title> 無料エロムービーとセックス動画。Pornhubはエロ動画をダウンロードしたりストリーミングで鑑賞できる最強の動画サイトです。
すごい。できた。普通に感心した。
色々詰まったりライブラリの使いかたとかかって1時間半くらい難儀してたんだけど、なんとか動くサムネの動画の取得ができた。
コードはこんな感じ
# coding: UTF-8 import urllib2 from bs4 import BeautifulSoup import re # アクセスするURL url = "https://jp.pornhub.com/" # URLにアクセスする htmlが帰ってくる html = urllib2.urlopen(url) # htmlをBeautifulSoupで扱う soup = BeautifulSoup(html, "html.parser") # imgタグのクラス名がrotatingなやつを見つけてくる image = soup.find_all('img', class_='rotating') # タイトル要素を出力 for url in image: print(url.get('data-mediabook'))
出力はこんなかんじ
https://ew.phncdn.com/videos/201906/08/228265971/180P_225K_228265971.webm?validfrom=1577116761&validto=1577123961&rate=150k&hash=0BVE1wLN2OHphItgy6Jyerxc75E%3D https://ew.phncdn.com/videos/201906/08/228290931/180P_225K_228290931.webm?validfrom=1577116761&validto=1577123961&rate=150k&hash=YQFSB3EFXxch9A4AKr%2FqLSyxW9c%3D https://ew.phncdn.com/videos/201906/15/229519562/180P_225K_229519562.webm?validfrom=1577116761&validto=1577123961&rate=150k&hash=XLc4QcIKYH4yP6FlqbanzEMVjxY%3D https://ew.phncdn.com/videos/201906/15/229520032/180P_225K_229520032.webm?validfrom=1577116761&validto=1577123961&rate=150k&hash=8yhNVSYwAelY6Ss4njyVu2JSUdM%3D https://ew.phncdn.com/videos/201906/17/229861342/180P_225K_229861342.webm?validfrom=1577116761&validto=1577123961&rate=150k&hash=h051FYS%2BwA4hRsKpXDEMN7Kw2jE%3D https://ew.phncdn.com/videos/201906/18/230205292/180P_225K_230205292.webm?validfrom=1577116761&validto=1577123961&rate=150k&hash=WxR%2FdWE2VF63jMF8aKO2W0QupEk%3D https://ew.phncdn.com/videos/201906/19/230242582/180P_225K_230242582.webm?validfrom=1577116761&validto=1577123961&rate=150k&hash=lFq%2BqAzMjHBuho9EKpwPHKlbTTQ%3D
いいかんじかも。あとはこれで指定の動画のサムネとか取得できたらいいなって感じかな。それはまた明日でいいや。
カレー食った。美味しい。
でもやっぱりごはんはインディカ米の方がこっちではいいな。日本の米もあるんだけど、炊きかたがインディカ米のほうがちゃんとしてる。
あと耳に穴あけた。こんどこそ定着してほしい(といいつつも別にケアとか怠るんやろうけど)