tableau publicをスクレイピングしてキーワード検索結果をView数でソートする
パッケージのインストール
今回不要なものもありますが私がいつも使ってるセットです。
import time, sys, os, re
from time import sleep
from selenium import webdriver
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.select import Select
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.chrome.options import Options
from bs4 import BeautifulSoup
import requests
import pandas as pd
from pandas import Series, DataFrame
import numpy as np
import csv
from operator import methodcaller
from lxml import html
import datetime
キーワードとドライバーの設定
今回は「CRM」で検索してみたいと思います。
main_url = 'https://public.tableau.com/en-us/search/vizzes/'
kwd = 'CRM'
options = Options()
driver = webdriver.Chrome(chrome_options = options)
driver.get(main_url+kwd)
Vizの数
soup = BeautifulSoup(driver.page_source, "lxml")
tab_count = soup.find_all('span', class_='search-tab-count')
c = str(tab_count[1]).split('"search-tab-count">')[1].split('</s')[0]
print(c)
519
今回は519個のVizがあるようなので、26ページ(1ページ20個)分の検索結果画面があります。
キーワード検索の結果すべてについてのView数とURLの取得
dl = {'view': [], 'url': []}
d = pd.DataFrame(dl)
pages = list(range(1,int(c) //20 +1+1))
for j in pages:
driver.get(main_url+kwd+'?page='+str(j))
sleep(3)
soup = BeautifulSoup(driver.page_source, "lxml")
sru = soup.find_all('span', class_='search-result-url')
for i in range(len(sru)):
url_i = str(sru[i]).split('href="')[1].split('</a></span>')[0].split('">')[0]
driver.get(url_i)
sleep(1)
view_i = str(BeautifulSoup(driver.page_source, "lxml").find_all('h3')[0]).split('{"COUNT": ')[1].split('}\'>views</span>')[0]
d = d.append(pd.DataFrame({'view': [view_i], 'url': [url_i]}))
d['view'] = d['view'].astype(int)
print(d.sort_values('view',ascending=False).head())
url | view | |
---|---|---|
0 | https://public.tableau.com/profile/efields#!/v... | 112839 |
1 | https://public.tableau.com/profile/webveja#!/v... | 17710 |
2 | https://public.tableau.com/profile/webveja#!/v... | 17073 |
3 | https://public.tableau.com/profile/yerson.coll... | 13388 |
4 | https://public.tableau.com/profile/lokadata#!/... | 13305 |
tableau publicをview数でソートして事例を探したいという方はお試しあれ!
Author And Source
この問題について(tableau publicをスクレイピングしてキーワード検索結果をView数でソートする), 我々は、より多くの情報をここで見つけました https://qiita.com/mura5726/items/8efa4ebbe1adf2bd8c43著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .