2014-05-15 27 views
0

这是我第一次发布问题。如果我做了不正确的事,请原谅我。为每个循环创建不同的.htm文件

我想创建一个python-selenium脚本来获取多页网页的源代码。

我(在Windows 7经由命令行)

蟒运行以下面的方式脚本program.py < input.txt中> output.htm

这确实产生的结果,但是因为我正在使用循环函数,所以它将所有结果附加到同一个文件中。

有没有一种方法,我可以提前

由于创建每个结果/打印一个新文件。

这里是我的代码,

from selenium import webdriver 
from selenium.webdriver.common.keys import Keys 
import time 
from selenium.webdriver.common.action_chains import ActionChains 

path_to_chromedriver = '/Users/office/Desktop/chromedriver' # change path as needed 
browser = webdriver.Chrome(executable_path = path_to_chromedriver) 
while(True): 
url = raw_input("") 
url2 = raw_input("") 
browser.get(url) 
time.sleep(10) 
browser.get(url2) 
time.sleep(10) 

element_to_hover_over = browser.find_element_by_xpath('//*[@id="personSummaryTable"]/tbody/tr/td[2]/div[5]/div/span[1]/a') 
hover = ActionChains(browser).move_to_element(element_to_hover_over) 
hover.perform() 
time.sleep(5) 
stuff = browser.page_source.encode('ascii', 'ignore') 
print stuff 

扬的想法伟大的工作,

它所需要的是让蟒蛇决定一个文件名, 感谢扬

import datetime 
suffix = ".html" 
basename = datetime.datetime.now().strftime("%y%m%d_%H%M%S") 
fname = "_".join([basename, suffix]) # e.g. 'mylogfile_120508_171442' 
print fname 
with open(fname, "w") as f: 
    f.write(stuff) 
+0

请正确格式化您的代码; python对正确的缩进非常敏感。 –

+0

请忽略缩进。我正确的在.py文件中。 它只是我在这里是新的,我无法正确粘贴在stackoverflow上。 但是,感谢您帮助我:) –

+0

仍然有编辑按钮,你应该修复缩进。有时候,错误是由错误的缩进引起的,并且完全忽略它使得无法看到错误!要粘贴一个代码块,复制粘贴,然后选择所有代码块,然后按下'{}'按钮。 –

回答

0

欢迎SO

你有两个选择

让Python代码决定输出文件的名称

这可能基于当前时间,

import time 
# here get somehow your page content 
page_content = ????? 
prefix = "outut-" 
suffix = ".html" 
fname = "{prefix}{now:d}{suffix}".format(now=time.time()) 
print fname 
with open(fname, "w") as f: 
    f.write(page_content) 

让你的外部环路(出来的Python)创建文件名

此文件名可以是如在由某种形式的date命令创建的Linux上。

+0

你好Jan,谢谢你的回复。 但是,当我运行脚本时,出现一个关键错误。 你能提供建议吗? FNAME = “{前缀} {现在:d} {后缀}”。格式(现在=了time.time()) KeyError异常: '前缀' –

+0

感谢tonnnnn !!!!!!!!!! Jan 它有一点动作。但你的想法是我需要的一切:)再次感谢。 import datetime \t suffix =“.html” \t basename = datetime.datetime。now()。strftime(“%y%m%d_%H%M%S”) \t fname =“_”。join([basename,suffix])#例如'mylogfile_120508_171442' \t打印FNAME \t开放(FNAME, “W”)为f: \t \t f.write(东西) –

相关问题