使用chromedriver单击下拉菜单并获取新网页表

时间:2018-07-18 22:51:24

标签: python-3.x google-chrome beautifulsoup python-requests selenium-chromedriver

我正在创建一个代码,以单击下拉菜单的每个选项,然后获取具有表的新网页的内容。我想为下拉菜单的每个选项保存一个文件。

我的代码目前无法获取这些信息。我不确定chromedriver和Python是否可行。你能帮忙吗?

网站为:http://www2.camara.leg.br/deputados/pesquisa

在第一个下拉菜单中(在“ Legislatura Atual-Deputados emExercício”下),您有513位巴西政治人物的名字。我应该每次选择一个名称,然后选择“presençaemplenário”,然后单击“ pesquisar”。新网页上显示的表格应另存为以政客姓名命名的文件。

其他名称也发生相同的情况。

1 个答案:

答案 0 :(得分:0)

下面是可行的代码。

from selenium import webdriver
from selenium.webdriver.support.ui import Select
path_to_chromedriver = 'path_to_chromedriver'
chrome_options = webdriver.ChromeOptions()
browser = webdriver.Chrome(chrome_options=chrome_options, executable_path=path_to_chromedriver)
prefs = {"profile.default_content_setting_values.notifications": 2}
chrome_options.add_experimental_option("prefs", prefs)
chrome_options.add_argument("start-maximized")
browser.get('http://www2.camara.leg.br/deputados/pesquisa')
Contact_data = browser.find_element_by_class_name('form-control')
listing = Contact_data.find_elements_by_tag_name("option")
listing1 =[]
for element in listing:
    dropdownvalue = listing1.append(element.text)
for i in range(len(listing1)):
    Selection = Select(browser.find_element_by_class_name('form-control'))
    Selection.select_by_visible_text(listing1[i+1])
    browser.find_element_by_id('rbDeputado7').click()
    browser.find_element_by_name('Pesquisa').click()