簡體   English   中英

硒下拉選項無法網上抓取

[英]Selenium drop down option unable to web scrape

因此,我必須從https://auto-buy.geico.com/nb#/sale/vehicle/gskmsi/上通過網絡抓取汽車年份,型號和制造的信息(如果鏈接無效,請轉到“ https://geico.com ”,填寫郵政編碼為“ 75002”,在客戶信息中輸入隨機詳細信息,您將進入車輛信息鏈接)。

瀏覽了各種答案之后,我發現我無法使用機械化或類似方法,因為每次我在菜單中選擇一個選項時,瀏覽器都會發送JavaScript請求。 剩下的東西像硒可以幫助我。

以下是我的代碼:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support.ui import Select
from bs4 import BeautifulSoup
from selenium import webdriver


driver = webdriver.Ie("IEDriverServer.exe")
WebDriverWait(driver, 10)
driver.get('https://auto-buy.geico.com/nb#/sale/customerinformation/gskmsi')
html = driver.page_source
soup = BeautifulSoup(html)

select = Select(driver.find_element_by_id('vehicleYear'))
print(select)

輸出為空[],因為它無法找到表單。

請讓我知道如何從頁面表單中選擇數據。

PS:盡管我使用過IE,但是也歡迎使用Mozilla或Chrome進行任何代碼更正。

  1. 您需要使用Selenium填寫“客戶”標簽中的所有信息,然后等待此select元素的出現:

     from selenium.webdriver.support import ui select_element = ui.Select(ui.WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.ID, "vehicleYear")))) 
  2. 然后選擇所需的選項:

     select_element.select_by_visible_text("2017") 

希望對您有幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM