scrapy-xlsx,如何在 xlsx 中制作可点击的 link?

scrapy-xlsx, How to make a clickable link in a xlsx?

我不知道我的代码是否对这个问题负责。 带着这个问题(Scapy, Python - To create a clickable link with CSV),我发现CSV不支持hyperlink格式。所以我找到了 scrapy-xlsx 包,安装了它,然后 运行 它。

scrapy crawl GoogleScrapyBot -o output.xlsx

然后我可以得到“output.xlsx”。 当我在我的PC(Windows10,Office365)上打开“output.xlsx”时,打开如下图(hyperlink仍然没有设置)

但是当我在Excel中点击输入window时,

它将更改为可点击的 link。

我不想在 Excel 程序上执行此操作。 Scrapy中有什么可行的方法吗?

您可以在 GoogleBotsSpider class 中添加此方法。它使用包含在 scrapy-xlsx 中的 openpyxl。不要忘记添加 from openpyxl import load_workbook.

def close(self, reason):
    super().close(self, reason)
    wb = load_workbook(self.settings.attributes["FEED_URI"].value)
    ws = wb.active
    for i, row in enumerate(ws.rows):
        if i:  # ignores first row which contains column headers
            row[0].hyperlink = row[0].value  # here 0 means the first cell of the row, adapt it to your code
            row[0].style = "Hyperlink"
    wb.save(self.settings.attributes["FEED_URI"].value)

您还需要在 settings.py 中添加此设置 FEED_URI = "output.xlsx",但您也可以从 sys.argv.

中获取它