【问题标题】:When scraping all the div to get the data getting the null list using lxml in python在抓取所有 div 以获取数据时,在 python 中使用 lxml 获取空列表
【发布时间】:2021-06-29 11:00:33
【问题描述】:

我想抓取产品标题、产品链接、产品价格,但是当我使用 xpath 时,它显示的是空列表。如何添加 xpath 和 for 循环以获取上述详细信息。这个我试过了

import requests
import lxml.html

html =  requests.get("https://www.lazada.sg/catalog/? 
      q=Samsung+Mobile&_keyori=ss&from=input&spm=a2o42.home.search.go.654346b52P3y8Y")
doc = lxml.html.fromstring(html.content)
#print(doc)

new = doc.xpath('//div[@class ="index__box___1Ffv-"]')
print(len(new))
for node in new:

   title = node.xpath('//* 
        [@id="root"]/div/div[2]/div[1]/div/div[1]/div[2]/div[1]/div/div/div[2]/div[2]/text()')
   print(len(title))
   print(title)

我需要获取上面提到的所有产品详细信息。我想要这个只使用 lxml 库。

【问题讨论】:

    标签: python lxml


    【解决方案1】:

    您遇到的主要问题是您想要的信息不在doc 中。要查看您正在使用的内容,请尝试以下操作:

    f = open('title_dump.html', 'wb')
    f.write(html.content)
    

    在浏览器或文本编辑器中打开它,您会发现标题、价格等缺失。最有可能的是,它们是由 Javascript 填充的。因此,仅使用 lxml 可能无法做到这一点。

    【讨论】:

    • 好的。我们可以从 API 中抓取它吗?
    • 如果他们有 API,那可能是一个更好的解决方案。
    • 你能告诉我如何从 API 中抓取
    猜你喜欢
    • 2014-11-10
    • 2022-11-11
    • 2020-01-05
    • 2016-04-22
    • 1970-01-01
    • 1970-01-01
    • 2015-02-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多