【发布时间】:2015-10-01 08:50:30
【问题描述】:
我试图从 FOR 循环中调用一个函数,但得到错误:
test()
NameError: name 'test' is not defined
代码如下:
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.keys import Keys
import time
from lxml import html
import requests
import xlwt
browser = webdriver.Firefox() # Get local session of firefox
# 0 wait until the pages are loaded
browser.implicitly_wait(3) # 3 secs should be enough. if not, increase it
browser.get("http://ae.bizdirlib.com/taxonomy/term/1493") # Load page
links = browser.find_elements_by_css_selector("h2 > a")
for link in links:
link.send_keys(Keys.CONTROL + Keys.RETURN)
link.send_keys(Keys.CONTROL + Keys.PAGE_UP)
time.sleep(5)
test()
link.send_keys(Keys.CONTROL + 'w')
def test(self):#test function
elems = browser.find_elements_by_css_selector("div.content.clearfix > div > fieldset> div > ul > li > span")
for elem in elems:
print elem.text
elem1 = browser.find_elements_by_css_selector("div.content.clearfix>div>fieldset>div>ul>li>a")
for elems21 in elem1:
print elems21.text
return 0
所以我想调用该函数,当调用该函数时,我希望将数据复制/粘贴到 Excel 中。
有人可以帮我增强代码吗?
【问题讨论】:
-
为什么要在定义函数之前调用它?
-
我在底部定义....
-
尝试在顶部定义它。这就是我的意思在定义函数之前调用它。
-
Python 是一种解释型语言,所以在使用前先定义函数
-
对不起各位,请给我一个参考,我可以阅读更多相关信息。
标签: python excel python-2.7 selenium-webdriver web-scraping