J'utilise le sélénium pour gratter un site Web et j'ai stocké tous les liens dans a.txt. Maintenant, je souhaite gratter les liens individuels de chacun de ces sites et écrire à b.txt. problème est, mon code n'écrit pas à la seconde et le fichier et je ne sais pas pourquoi. J'imprime les valeurs mises au rebut à la console et cela fonctionne parfaitement bien. Il n'écrit pas dans le fichier b.txtNe pas écrire au fichier en python
Des idées de ce qui pourrait avoir mal tourné? Voici mon code.
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()
ajouter une nouvelle ligne avant 'so.close()' – Thomas
comment une nouvelle aide en ligne? @ user1 – krishna
Eh bien j'ai essayé exactement la même chose dans la console ce que vous avez fait et ... ne me demandez pas pourquoi ... mais ça a fonctionné alors. ¯ \ _ (ツ) _/¯ – Thomas