2017-10-13 110 views
2

我使用硒刮刮一个网站,我已经存储在a.txt中的所有链接。现在,我希望从每个网站中获取单个链接并写入b.txt。问题是,我的代码不写入第二个文件,我不知道为什么。我正在将报废的值打印到控制台,它工作得很好。它只是不写入文件b.txt不写入文件在python

任何想法可能会出错?以下是我的代码。

from selenium import webdriver 
from selenium.webdriver.support.wait import WebDriverWait 
from selenium.webdriver.common.by import By 
from selenium.webdriver.support import expected_conditions as EC 

file1 = 'a.txt' 
file2 = 'b.txt' 
xpath = '//*[@id="jw"]/div[2]/video' 
driver = webdriver.Chrome() 
videos = [] 
j = 0 
so = open(file2, 'w') 
with open(file1, 'r') as fo: 
    for url in fo: 
     driver.get(url) 
     wait = EC.presence_of_element_located((By.XPATH, xpath)) 
     WebDriverWait(driver, 5).until(wait) 
     video = driver.find_element_by_xpath(xpath) 
     link = str(video.get_attribute('src')) 
     so.write(link + '\n') 
     videos.append(link) 
     j += 1 
     print j 
     print link 
     print videos 
so.close() 
+0

之前'so.close添加一个换行符()' – Thomas

+0

如何将一个新的在线帮助? @ user1 – krishna

+0

嗯,我试着在控制台上完全一样,你做了什么...不要问我为什么...但它的工作。 ¯\ _(ツ)_/ – Thomas

回答

1

你的意思是你的代码只有大约写在第一时间(看起来像你的问题的一些错字,混淆我有点),但如果多数民众赞成的情况下,也许你需要追加

open(file1, 'a') 

代替

open(file1, 'r') 
+0

Nah。我已经编写了另一个收集a.txt中的URL的代码。这是代码的第二部分,我尝试使用从a.txt中的第一个代码中收集的链接来抓取网页以获取b.txt中的新数据 – krishna