我在Python中使用Selenium来抓取this页面的下拉菜单。我使用了find_elements_by_css_selector
函数并从第二个下拉菜单中获取了所有数据。
但是当我尝试通过model.get.attribute('href')
打印出组号及其匹配的型号名称时,用韩语编写的型号名称如下所示:
5%EC%8B%9C%EB%A6%AC%EC%A6%88
(宝马的5系列)。
我知道使用'model.text'会返回唯一的模型名称,但我还需要同时使用每个模型的组名。
这就是我使用model.get.attribute('href')
代替model.text
的原因。
请帮我解决这个问题。
以下是我的代码。
enter code here#!/usr/bin/env python
#-*- coding: utf-8 -*-
import re
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.common.exceptions import StaleElementReferenceException
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import Select
from bs4 import BeautifulSoup
from time import sleep
link = 'http://www.bobaedream.co.kr/cyber/CyberCar.php?gubun=I'
driver = webdriver.PhantomJS()
driver.set_window_size(1920, 1080)
driver.get(link)
sleep(.75)
s = BeautifulSoup(driver.page_source, "html.parser", from_encoding='utf-8')
makers = ['아우디', 'BMW', '벤츠']
for maker in makers:
# open manufacturer layer
next_elem = driver.find_element_by_xpath('//a[@title="제조사 선택"]')
next_elem.click()
next_elem = driver.find_element_by_link_text(maker)
print(maker)
next_elem.click()
print("clicked maker")
sleep(.75)
# open model layer
next_elem = driver.find_element_by_xpath('//a[@title="모델 선택"]')
next_elem.click()
# select model
models = driver.find_elements_by_css_selector("#layer_group ul.list li a")
for model in models:
print (model.get_attribute('href'))
答案 0 :(得分:1)
所述标题没有href
属性。试试这个列出选项值 - (如果有的话)
elem = driver.find_element_by_xpath("//select[@title='모델 선택']").
for option in elem.find_elements_by_tag_name('option'):
print option.text