【发布时间】:2021-03-04 06:36:19
【问题描述】:
我正在尝试通过 python 语言抓取网站数据,该语言包括多个下拉列表 - 通过 selenium 进行静态和动态,但我希望每种商品都与每个州、每个地区、每个市场、日期价格和到货有关。我已经尝试为单一商品做这是我的代码,但我希望通过任何自动化代码或for 循环或while 循环提取所有数据并将所有数据转换为 CSV 格式
#帮帮我!
from selenium import webdriver
import pandas as pd
from selenium.webdriver.common.by import By
from selenium.webdriver.support.select import Select
from selenium.common.exceptions import NoSuchElementException
import time
driver = webdriver.Chrome()
driver.maximize_window()
driver.get('http://agmarknet.gov.in/')
time.sleep(3)
obj0 = driver.find_element(By.XPATH,'//*[@id="ddlArrivalPrice"]/option[2]').click()
time.sleep(8)
obj1 = driver.find_element(By.XPATH,'//*[@id="ddlCommodity"]/option[2]').click()
time.sleep(10)
obj2 = driver.find_element(By.XPATH,'//*[@id="ddlState"]/option[2]').click()
time.sleep(15)
obj3 = driver.find_element(By.XPATH,'//*[@id="ddlDistrict"]/option[2]').click()
time.sleep(15)
obj4 = driver.find_element(By.XPATH,'//*[@id="ddlMarket"]/option[2]').click()
time.sleep(8)
obj5 = driver.find_element(By.ID,'txtDate').click()
time.sleep(5)
obj6 = driver.find_element(By.XPATH,'//*[@id="CalendarExtender1_day_0_1"]').click()
time.sleep(6)
obj7 = driver.find_element(By.ID,'txtDateTo').click()
time.sleep(6)
obj8 = driver.find_element(By.XPATH,'//*[@id="CalendarExtender2_day_0_1"]').click()
time.sleep(6)
obj9 = driver.find_element(By.XPATH,'//*[@id="btnGo"]').click()
time.sleep(5)
obj10 = driver.find_element(By.XPATH,'//*[@id="cphBody_ButtonExcel"]').click()
time.sleep(6)
【问题讨论】:
-
除非他们通过 Javascript 动态构建菜单,否则无论下拉菜单是否显示,所有下拉菜单选项都会出现在 HTML 中。
-
@Tim 是的,但我知道,但我希望每个数据分别先选择价格,然后选择商品,然后选择状态、地区、市场、日期和去,然后点击去我得到的数据想要每个下拉选项的那个
标签: python selenium selenium-webdriver xpath