在两张表格中将刮取的文档保存在excel文件中

我创build了一个刮板,它应该parsing网页中的一些文档,并将其保存到创build两张纸的Excel文件中。 但是,当我运行它时,我可以看到它只保存最后一个链接的文档在一张纸上,而应该有两张纸从两个链接正确的文件。 我甚至打印结果,看看后台发生了什么,但我发现没有错。 我的第一张被覆盖,第二张从未被创build。 如何解决这个问题,以便将数据保存在Excel表格中的两个表格中。 提前感谢,看看它。

这是我的代码:

import requests from lxml import html from pyexcel_ods3 import save_data name_list = ['Altronix','APC'] def docs_parser(link, name): res = requests.get(link) root = html.fromstring(res.text) vault = {} for post in root.cssselect(".SubBrandList a"): if post.text == name: refining_docs(post.attrib['href'], vault) def refining_docs(new_link, vault): res = requests.get(new_link).text root = html.fromstring(res) sheet = root.cssselect("#BrandContent h2")[0].text for elem in root.cssselect(".ProductDetails"): name_url = elem.cssselect("a[class]")[0].attrib['href'] vault.setdefault(sheet, []).append([str(name_url)]) save_data("docs.ods", vault) if __name__ == '__main__': for name in name_list: docs_parser("http://store.immediasys.com/brands/" , name) 

但是,当我为另一个站点编写代码时,也同样可以满足创build不同工作表和保存文档的期望。 这里是链接: https : //www.dropbox.com/s/bgyh1xxhew8hcvm/Pyexcel_so.txt?dl = 0

问题 :我的第一张被覆盖,第二张从未被创build。 如何解决这个问题,以便将数据保存在Excel文件中的两张表中。

您将覆盖每个要添加的链接上的工作簿文件。
你不应该调用save_data(...在一个循环内,只有一次在你的脚本结束。

比较你的两个脚本没有区别,都performance相同,一次又一次覆盖工作簿文件。 当您在短时间内覆盖工作簿文件超过160次时,文件IO可能会超载。

第一个脚本应该创build13个表格:

 data sheet:powerpivot-etc links:20 data sheet:flappy-owl-videos links:1 data sheet:reporting-services-videos links:20 data sheet:csharp links:14 data sheet:excel-videos links:9 data sheet:excel-vba-videos links:20 data sheet:sql-server-videos links:9 data sheet:report-builder-2016-videos links:4 data sheet:ssrs-2016-videos links:5 data sheet:sql-videos links:20 data sheet:integration-services links:19 data sheet:excel-vba-user-form links:20 data sheet:archived-videos links:16 

第二个脚本应该创build2个表单:

 vault sheet:Altronix links:16 vault sheet:APC links:16