2017-01-22 109 views
2

Selenium Python 3.6を使用してタプルとしてデータを収集するのに問題があります。これは私がデータを収集したいページです(http://www.bobaedream.co.kr/cyber/CyberCar.php?gubun=I) ページの上部にある検索メニューに "メーカー(メーカー)"データを収集したいと思います。Selenium Pythonを使用してタプルとしてデータを収集する

enter image description here

私は、仮想ページを設定し、収集し、最初のドロップダウンメニューのリストを選択するには、このコードを使用するセレンwebdrivetを使用:

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 selenium.common.exceptions import NoSuchElementException 

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) 

soup = BeautifulSoup(driver.page_source, "html.parser", from_encoding='utf-8') 

manufacturers = [ 
    ('%s', '%s') % (o.text, o.get_attribute('href')) 
    for o 
    in driver.find_elements_by_css_selector("#layer_maker ul.list li a") 
    if o.text != '전체'] 

for manufacturer in manufacturers: 
    driver.execute_script("o.get_attribute('href')") 

そして、これは誤りであります私が持っていたメッセージ:

/Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6 /Users/chongwonshin/PycharmProjects/Crawler_test/dump.py 
/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/bs4/__init__.py:146: UserWarning: You provided Unicode markup but also provided a value for from_encoding. Your from_encoding will be ignored. 
    warnings.warn("You provided Unicode markup but also provided a value for from_encoding. Your from_encoding will be ignored.") 
Traceback (most recent call last): 
    File "/Users/chongwonshin/PycharmProjects/Crawler_test/dump.py", line 23, in <module> 
    in driver.find_elements_by_css_selector("#layer_maker ul.list li a") 
    File "/Users/chongwonshin/PycharmProjects/Crawler_test/dump.py", line 24, in <listcomp> 
    if o.text != '전체'] 
TypeError: unsupported operand type(s) for %: 'tuple' and 'tuple' 

Process finished with exit code 1 

助けてください。

答えて

1

私はこれは何が必要だと思い:

[ 
('%s' % o.text, '%s' % o.get_attribute('href')) 
for o 
in driver.find_elements_by_css_selector("#layer_maker ul.list li a") 
if o.text != '전체'] 

または%あなたはタプル

に適用することはできません Pythonで「剰余」オペレータでもあることだけ

[ 
(o.text, o.get_attribute('href')) 
for o 
in driver.find_elements_by_css_selector("#layer_maker ul.list li a") 
if o.text != '전체'] 

注意

関連する問題