亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

有沒有辦法讓硒只給我今天的數據?

有沒有辦法讓硒只給我今天的數據?

阿波羅的戰車 2023-06-13 15:25:11
我正在嘗試創建一個腳本來告訴我當天的潮汐水平selenium,但它會為我提供整周的所有數據。我怎么讓它只給我今天的數據?from selenium import webdriverfrom selenium.webdriver.common.keys import Keysfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as EC import timeimport datetimedriver = webdriver.Chrome('/Users/judeslater/Downloads/chromedriver')driver.get('https://magicseaweed.com/Nosara-Surf-Report/445/Tide/')WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '//*[@id="msw-js-tide-list"]')))Day_of_Week = datetime.datetime.today().weekday()Break_Key = Day_of_Week + 1element = driver.find_elements_by_id('msw-js-tide-list')intDay = datetime.date(year=2000, month=12, day=1).weekday()days = ["MON", "TUE", "WED", "THU", "FRI", "SAT", "SUN"]def contains_word(string, target):    return target in string   for value in element:    Ocean_Data = value    print(Ocean_Data.text)    time.sleep(1)    if contains_word(str(Ocean_Data), days[Break_Key]) == True:       break    else:        continue    break    driver.quit()
查看完整描述

2 回答

?
HUH函數

TA貢獻1836條經驗 獲得超4個贊

你有很多錯誤,但主要是你的


find_elements_by_id('msw-js-tide-list')

它為您提供了所有日期作為一個元素的表格。


你應該在最后使用更復雜的xpathwith來將每一天作為單獨的元素 - 然后你可以過濾它。/div


find_elements_by_xpath('//*[@id="msw-js-tide-list"]/div')

您不必添加+1到Day_of_Week因為python開始索引0


如果你想得到明天然后更好地使用


tomorrow = today + datetime.timedelta(days=1)

0或者當你得到時使用模數移動到7


Break_Key = (Day_of_Week + 1) % 7

from selenium import webdriver

from selenium.webdriver.common.keys import Keys

from selenium.webdriver.common.by import By

from selenium.webdriver.support.ui import WebDriverWait

from selenium.webdriver.support import expected_conditions as EC 

import time

import datetime


days = ["MON", "TUE", "WED", "THU", "FRI", "SAT", "SUN"]


today = datetime.datetime.today()

#tomorrow = today + datetime.timedelta(days=1)

#day_of_week = tomorrow.weekday()

day_of_week = today.weekday()

selected_day = days[day_of_week]



driver = webdriver.Chrome('/Users/judeslater/Downloads/chromedriver')

#driver = webdriver.Firefox()

driver.get('https://magicseaweed.com/Nosara-Surf-Report/445/Tide/')


WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '//*[@id="msw-js-tide-list"]')))


all_days = driver.find_elements_by_xpath('//*[@id="msw-js-tide-list"]/div')


for ocean_data in all_days:

    if selected_day in ocean_data.text:

        print(ocean_data.text)

        break


driver.quit()

如果您想要今天的數據,那么它可能始終是表格中的第一天,因此您all_days[1]無需檢查即可使用selected_day


隱藏div在 HTML 中,所以我必須使用[1]而不是來[0]獲取今天的數據。


from selenium import webdriver

from selenium.webdriver.common.keys import Keys

from selenium.webdriver.common.by import By

from selenium.webdriver.support.ui import WebDriverWait

from selenium.webdriver.support import expected_conditions as EC 

import time

import datetime


driver = webdriver.Chrome('/Users/judeslater/Downloads/chromedriver')

#driver = webdriver.Firefox()

driver.get('https://magicseaweed.com/Nosara-Surf-Report/445/Tide/')


WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '//*[@id="msw-js-tide-list"]')))


all_days = driver.find_elements_by_xpath('//*[@id="msw-js-tide-list"]/div')


ocean_data = all_days[1] # there is one hidden `div` which I have to skip to get today's data

print(ocean_data.text)


driver.quit()

我可以使用[2]in做同樣的事情xpath(因為python開始索引0但xpath開始于1)并在 word 中使用find_element_...without char只得到一個結果selement


ocean_data = driver.find_element_by_xpath('//*[@id="msw-js-tide-list"]/div[2]')

print(ocean_data.text)

from selenium import webdriver

from selenium.webdriver.common.keys import Keys

from selenium.webdriver.common.by import By

from selenium.webdriver.support.ui import WebDriverWait

from selenium.webdriver.support import expected_conditions as EC 

import time

import datetime


driver = webdriver.Chrome('/Users/judeslater/Downloads/chromedriver')

#driver = webdriver.Firefox()

driver.get('https://magicseaweed.com/Nosara-Surf-Report/445/Tide/')


WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '//*[@id="msw-js-tide-list"]')))


ocean_data = driver.find_element_by_xpath('//*[@id="msw-js-tide-list"]/div[2]')

print(ocean_data.text)


driver.quit()


查看完整回答
反對 回復 2023-06-13
?
吃雞游戲

TA貢獻1829條經驗 獲得超7個贊

for value in element:

為什么不使用 element[0] 而不是這個 for 循環,因為您只需要該列表的第一個元素('msw-js-tide-list'),它給出了今天的日期。


Ocean_Data = element[0]

print(Ocean_Data.text)

time.sleep(1)

if contains_word(str(Ocean_Data), days[Break_Key]) == True:

   break


查看完整回答
反對 回復 2023-06-13
  • 2 回答
  • 0 關注
  • 157 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號