Pythonを書くんだヨ!

なんかこのままスクレイピングもういいやってあきらめるんもどうかなって思ったのでスクレイピングに向いてるっていうプログラミング言語Pythonを触ることにした。これでPornderのバックエンド部分に活用しようとかはまだわからんけど、食わずぎらいもよくないかなっておもうのでまあやってみるだけやってみるってことで。
qiita.com
なんかよくわからんけどスクレイピング用のライブラリが豊富にあるのがPythonスクレイピング作業に向いている点らしい.....????
なんで?

Pythonインストール

Ubuntu環境のPython - python.jp
公式っぽい。わかりやすかった。というかやることもそんなに多くなかったしつまるところもなかったな

ubuntuだったらもともとPythonプログラムを解釈するためのPythonが入ってるんだけど、システム上で動作させているPythonをそのまま使うのはちょっとこわいので開発するんなら自前のPythonを用意しましょうね~」みたいな感じのことが書かれてた。インストール方法も簡単だった。

公式偉い。

ハロワした

print("HelloWolrd")

終わり。拡張子は"~~.py"、ピヨみたいで可愛い。

python ~~.py

実行、問題無さそう、普通に標準出力できた。

VSCode・インテリセンスが効かない?を解消 - Qiita
vsCodePythonファイル用の補完設定を入れた。

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

いいかんじかも。あとはこれで指定の動画のサムネとか取得できたらいいなって感じかな。それはまた明日でいいや。

f:id:ten0313:20191224024148j:plain
カレー食った。美味しい。
でもやっぱりごはんはインディカ米の方がこっちではいいな。日本の米もあるんだけど、炊きかたがインディカ米のほうがちゃんとしてる。

f:id:ten0313:20191224024148j:plain
あと耳に穴あけた。こんどこそ定着してほしい(といいつつも別にケアとか怠るんやろうけど)