Search code examples
python-3.xlistseleniumgeckodriverexport-to-text

Python Selenium List Export to text file


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

Solution

  • 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.