xHamsterの最新動画スクレイピング
Pythonを使用し、xHamsterに投稿された最新動画をスクレイピングするコードを紹介します。
動画タイトル、動画時間、画像URL、動画ページのURL、画質、閲覧数
を取得し、CSVで保存しています。
最新のSeleniumを使用するとエラーが出るので、少し古めのSeleniumを使用してください。
また、適宜必要なものはインストールしてください。
main.py
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.options import Options
from time import sleep
import csv
HEADER = ['動画タイトル', '再生時間', '画像URL', '動画ページURL', '画質', '閲覧数']
browser = webdriver.Chrome(ChromeDriverManager().install())
# 検索開始ページ
page = 1
# 検索するページ数
max_page = 5
# 保存するCSVファイル名
save_csv = 'xhamster1.csv'
def get_url(page=1):
url = 'https://xhamster.com/categories/japanese/newest/{}'.format(page)
return url
if __name__ == "__main__":
with open(save_csv, 'a', encoding='utf-8', newline='') as f:
writer = csv.writer(f)
writer.writerow(HEADER)
while page <= max_page:
print("Processing page {} of {}".format(page, max_page))
url = get_url(page)
browser.get(url)
contents = browser.find_elements_by_class_name('thumb-list__item')
with open(save_csv, 'a', encoding='utf-8', newline='') as f:
writer = csv.writer(f)
for content in contents:
title = content.find_element_by_class_name('video-thumb-info__name').text
time = content.find_element_by_class_name('thumb-image-container__duration').text
views = content.find_element_by_class_name('video-thumb-views').text
image = content.find_element_by_class_name('thumb-image-container__image').get_attribute('src')
link = content.find_element_by_class_name('video-thumb__image-container').get_attribute('href')
try:
content.find_element_by_class_name('thumb-image-container__icon thumb-image-container__icon--hd')
quality = 'HD'
except:
quality = 'SD'
row = [title.replace('\n', ' '), time.replace('\n', ' '), image.replace('\n', ' '), link.replace('\n', ' '), quality, views.replace('\n', ' ')]
writer.writerow(row)
sleep(10)
page += 1
print("Completed page {} of {}".format(page - 1, max_page))
browser.quit()
著作権の問題もありますので、使用時はご注意願います。
このサイトのスクレイピングには時間がかかりますので、気長に待ってください。
Googleスプレッドシートへ読み込ませた後の動画サムネの表示は、
新しい列を追加してIMAGE関数を使用すれば表示されます。
=IMAGE('画像URLのセル')
この記事が気に入ったらサポートをしてみませんか?