1

下面的代码旨在获取视频课程的标题。好吧,它找到了,但我无法将输出写入文本文件。

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)

当我使用这个 f.write(names) 它给出以下内容:

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

无论如何,我可以附加文件并在其中包含以下输出吗?

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
4

1 回答 1

1

我使用 alist来存储抓取数据的所有值,然后将该列表转换为.txt文件。

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)

它工作得很好。尝试这个。希望这是您想要的输出。

于 2020-04-18T02:16:49.667 回答