运行我的爬虫,我可以看到它获取数据,因为它应该,但当谈到打印数据到一个csv文件,它打印在一行。我对python中的类非常陌生,所以我编写的代码中可能有很多错误,我假设看到了不同的示例。所以,在这一点上,我希望修复单行打印,并使其继续创建新的行。如有任何建议,我们将不胜感激
import csv
import requests
from lxml import html
class wiseowl:
def __init__(self,start_url):
self.start_url=start_url
self.storage=[]
def crawl(self):
self.get_link(self.start_url)
def get_link(self,link):
response=requests.get(link)
tree=html.fromstring(response.text)
titles=tree.xpath("//p[@class='woVideoListDefaultSeriesTitle']")
for title in titles:
name=title.xpath(".//a/text()")[0]
urls=title.xpath(".//a/@href")[0]
Docs=(name,urls)
self.storage.append(Docs)
def writing_csv(self):
with open("Wiseowl.csv","w",newline="") as f:
writer=csv.writer(f)
writer.writerow(["Title","Link"])
writer.writerow(self.storage)
def __str__(self):
return "{}".format(self.storage)
crawler=wiseowl("http://www.wiseowl.co.uk/videos/")
crawler.crawl()
crawler.writing_csv()
for item in crawler.storage:
print(item)
如果我理解正确,那么代码中已经有了答案,您可以逐行打印出
crawler.storage
只需将方法
writing_csv
更改为:使用
writer.writerow(self.storage)
时,方法writerow
将self.storage
视为一行字符串。这就是为什么它将其存储为文件中的一行注意,我使用python3运行代码
相关问题 更多 >
编程相关推荐