在excel中以两张表的形式保存刮下的文档

2024-05-19 01:40:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经创建了一个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


Tags: textname文档importdocsfor链接html
1条回答
网友
1楼 · 发布于 2024-05-19 01:40:48

Question: I thing the first sheet is overwritten and second one is never created. How to get around this so that data will be saved in two sheets in an excel file.

您将覆盖每个要附加的链接上的工作簿文件。
你不应该在循环中调用save_data(...,只能在脚本末尾调用一次。你知道吗

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

第一个脚本应创建13张工作表:

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

第二个脚本应创建2张工作表:

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

相关问题 更多 >

    热门问题