Python Selenium List Export to text file

685 Views Asked by At

The code below was intended to get the titles of the video courses. Well it finds it, but I am unable to write the output to a text file.

from selenium import webdriver
f=("output.txt", "a")

browsing_1 = webdriver.Firefox(executable_path="C:\\Tester\\geckodriver.exe")
browsing_1.get("https://channel9.msdn.com/Niners/JeffKoch/Posts?page=170")

testing_texts = browsing_1.find_elements_by_xpath("//div[@class='seriesTitle']")
for namess in testing_texts:
    print(namess.text)

When I use this f.write(names) it gives out the below:

Traceback (most recent call last):
  File "C:\Tester\trial83.py", line 11, in <module>
    f.write(names)
AttributeError: 'tuple' object has no attribute 'write'

Is there anyway that I can append the file and have the below output in it please?

Link:"https://channel9.msdn.com/Niners/JeffKoch/Posts?page=170"
System Center 2012 R2 Infrastructure Provisioning and Management
Core Solutions of Exchange Server 2013
Core Solutions of Exchange Server 2013
Core Solutions of Exchange Server 2013
Core Solutions of Exchange Server 2013
Core Solutions of Exchange Server 2013
Core Solutions of Exchange Server 2013
Core Solutions of Exchange Server 2013
Windows Server 2012 R2 Storage
Windows Server 2012 R2 Storage
Windows Server 2012 R2 Storage
Windows Server 2012 R2 Storage
1

There are 1 best solutions below

1
Abhay Salvi On BEST ANSWER

I used a list to store all the values of the scraped data, and then converted that list to .txt file.

from selenium import webdriver

browsing_1 = webdriver.Firefox(executable_path="C:\\Users\\intel\\Downloads\\Setups\\geckodriver.exe")
browsing_1.get("https://channel9.msdn.com/Niners/JeffKoch/Posts?page=170")

testing_texts = browsing_1.find_elements_by_xpath("//div[@class='seriesTitle']")

# created an empty list
lis = []
for namess in testing_texts:
    print(namess.text)
    lis.append(namess.text)   # appending that empty list to store further values

print(lis)

#remember to add a full correct path to your file just like i did.   
with open(r'C:\Users\intel\Desktop\output.txt', 'a') as f:   
    for item in lis:
        f.write("%s\n" % item)

It worked just perfectly. Try this. Hope it's the desired output that you want.