我已经创建了一个scraper,它可以解析网页中的一些文档,并将其保存到一个excel文件中,创建两张工作表。但是,当我运行它时,我可以看到它只保存了一张表中最后一个链接的文档,而应该有两张表中的两个链接的文档。我甚至把结果打印出来,看看背景中发生了什么,但我没有发现任何问题。我觉得第一张纸会被覆盖,而第二张永远不会被创建。如何绕过这一点,使数据将保存在两个表中的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)
但是,当我为另一个站点编写代码时,同样的方法也满足了创建不同的表并在这些表中保存文档的期望。以下是链接: https://www.dropbox.com/s/bgyh1xxhew8hcvm/Pyexcel_so.txt?dl=0
您将覆盖每个要附加的链接上的工作簿文件。
你不应该在循环中调用
save_data(...
,只能在脚本末尾调用一次。你知道吗比较两个脚本有没有区别,两个脚本的行为相同,一次又一次地覆盖工作簿文件。当您在短时间内覆盖工作簿文件超过160次时,可能会导致文件IO过载。你知道吗
第一个脚本应创建13张工作表:
第二个脚本应创建2张工作表:
相关问题 更多 >
编程相关推荐