我是一名初学者 python 程序员,我正在使用 python 2.7 开发一个 selenium 项目。
我有一个通用的爬虫脚本,它基本上概述了我想要对我访问的所有网站执行的操作。但是,由于我要获取的数据的性质,我不能在每个站点上运行相同的代码——每个站点都需要运行它自己的单独代码。
我试图通过在 if 语句中导入来解决这个问题,这就是我想出的解决方案:
site = False
if source_website == "Website A":
from website_a import *
site = True
elif source_website == "Website B":
from website_b import *
site = True
else:
print "This is not an acceptable website!"
if site == True:
# main code block
driver = driver_setup(chrome)
driver.get(source_website_URL)
stuff_to_save = do_some_stuff(driver)
xml_file(stuff_to_save)
driver.quit()
其中website_a
和website_b
模块都具有名为 的函数do_some_stuff
,并且它们执行特定于它们所在网站的操作。现在,这似乎在大多数情况下都有效。我似乎也能够将功能扩展到任意数量的网站,因为我编写了一个website_c
使用 function调用的模块do_some_stuff
,并将其添加到条件导入中。
所以,我的问题是,这是个好主意吗?有没有更好的方法来做这样的事情?
从字面上看,我从未见过有人在这样的 if 语句中包装 import 语句——通常,如果似乎没有人这样做,通常有一个很好的理由。