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

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

使用按鈕操作后通過 API 抓取數據

使用按鈕操作后通過 API 抓取數據

慕斯709654 2022-06-28 10:59:36
我想從 https 響應中獲取數據,但它們的數據只有在單擊打開對話框窗口的按鈕后才會出現(查看下面的屏幕),所以我必須打開所有必要的窗口,然后運行 request.get。主要困難是我不明白如何為我運行 driver.get 命令的同一窗口制作 request.get 。import requestsfrom selenium import webdriverfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as ECchrome_options = webdriver.ChromeOptions()chrome_options.add_argument("start-maximized")driver = webdriver.Chrome(options=chrome_options)driver.get(url)XPATH = "//*[name()='svg' and contains(@class, 'jss350')]"XPATH2 = '/html/body/div[3]/div[3]/div/div[3]/button/span[1]'# Wait for all svg elements to be clickableWebDriverWait(driver, 20).until(EC.presence_of_all_elements_located((By.XPATH, XPATH)))# find list of svg elementssvg_elements = driver.find_elements_by_xpath(XPATH)for element in svg_elements[3:4]:    element.click() #open windows    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, XPATH2))).click() #close#here is I want to run the request.get function to grab data from the same windowdriver.quit()params = {    'products': 'RU',}url = 'my url'r = requests.get(url, params=params, headers={    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36'})json_data = r.json()print(r.url)print(r.text)
查看完整描述

1 回答

?
MM們

TA貢獻1886條經驗 獲得超2個贊

api 可以獨立于 UI 操作(硒自動化)工作。這意味著您可以在 POST 或 Get 中傳遞必要的數據,并且 api 響應可用。因此,無需打開特定的窗口/對話框,您可以嘗試在 POSTMAN 客戶端/也在您的代碼中傳遞 api 數據。



查看完整回答
反對 回復 2022-06-28
  • 1 回答
  • 0 關注
  • 197 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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