我创建了一个刮板,它应该解析网页中的一些文档并将其保存到创建两张工作表的 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