使用Selenium Python将数据收集为元组

使用Selenium Python将数据收集为元组,python,html,selenium,beautifulsoup,web-crawler,Python,Html,Selenium,Beautifulsoup,Web Crawler,我在使用Selenium Python 3.6收集数据作为元组时遇到问题。这是我想收集数据的页面() 我想在页面上部的搜索菜单中收集“制造商(制造商)”数据 我使用selenium webdrivet设置虚拟页面,并使用此代码收集和选择第一个下拉菜单的列表: from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait from selenium.common.exceptions

我在使用Selenium Python 3.6收集数据作为元组时遇到问题。这是我想收集数据的页面() 我想在页面上部的搜索菜单中收集“制造商(制造商)”数据

我使用selenium 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
/Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6/Users/chongwonshin/PycharmProjects/Crawler\u test/dump.py
/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site packages/bs4/_init__.py:146:UserWarning:您提供了Unicode标记,但还提供了from_编码的值。您的from_编码将被忽略。
warnings.warn(“您提供了Unicode标记,但也为from_编码提供了一个值。from_编码将被忽略。”)
回溯(最近一次呼叫最后一次):
文件“/Users/chongwonshin/PycharmProjects/Crawler_test/dump.py”,第23行,在
在driver.find_elements_by_css_selector(“#layer_maker ul.list li a”)
文件“/Users/chongwonshin/PycharmProjects/Crawler_test/dump.py”,第24行,在
如果o.text!='전체']
TypeError:不支持%的操作数类型:'tuple'和'tuple'
进程已完成,退出代码为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 != '전체']
或者只是

[
(o.text, o.get_attribute('href'))
for o
in driver.find_elements_by_css_selector("#layer_maker ul.list li a")
if o.text != '전체']
请注意,
%
Python
中也是一个“模”运算符,不能应用于元组