我正在使用這個網站 ( 
uj5u.com熱心網友回復:
這應該作業
search_bar = driver.find_element_by_xpath("//input[@placeholder='player name']")
search_bar.click()
search_bar.send_keys('lebron james')
time.sleep(2)
driver.find_element_by_xpath("//*[@class='tt-suggestion tt-selectable']").click()
隨意time.sleep更換explicit wait
uj5u.com熱心網友回復:
為什么不直接從 json 中獲取資料呢?會比 Selenium 高效得多。
import requests
import re
import json
import pandas as pd
from fuzzywuzzy import process
# Get Player Slugs from javascript
response = requests.get('https://projects.fivethirtyeight.com/2020-nba-player-projections/js/bundle.js')
js = response.text
p = re.compile('{t\.exports=(\[.*}]},{}\])')
result = p.search(js).group(1).rsplit('},{}',1)[0]
result = result.replace('team_abbr', '"team_abbr"')
result = result.replace('name', '"name"')
result = result.replace('full_team', '"full_team"')
result = result.replace('short_team', '"short_team"')
result = result.replace('slug', '"slug"')
result = result.replace(',randable:!1', '')
result = result.replace(',randable:!0', '')
playerSearch = json.loads(result)
df = pd.DataFrame(playerSearch)
players = list(df['name'])
slugs = list(df['slug'])
playerDict = dict(zip(players, slugs))
# Get the Player Data
# You could also make this as a user input
list_of_players = ['lebron james', 'Derik RoSe', 'LEamarkcus Allridge']
data = {}
for player in list_of_players:
playerMatch = process.extractOne(player, list(playerDict.keys()))[0]
player_slug = playerDict[playerMatch]
url = f'https://projects.fivethirtyeight.com/2020-nba-player-projections/{player_slug}.json'
jsonData = requests.get(url).json()
data[playerMatch] = jsonData
print(f'Returned: {playerMatch}')
輸出:

轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/417981.html
標籤:
