lxml tree.xpath() 从 flipkart 抓取单个产品的产品描述导致抓取所有产品的描述
lxml tree.xpath() scraping product description of single product from flipkart results in scraping of all product's description
我尝试在 Flipkart 中使用 lxml 方法 xpath 为每个产品的产品描述创建一个嵌套列表
product_descriptions = []
for des in tree.xpath('//ul[@class="_1xgFaf"]'):
description=[]
for i in des.xpath('//li[@class="rgWa7D"]/text()'):
description.append(i)
product_descriptions.append(description)
for i in product_descriptions:
print(i)
但是这样会导致获取页面中所有的li[@class="rgWa7D"],而不是获取一个
元素的所有- 元素。
用 /
开始你的 XPath 意味着上下文是根文档,这就是为什么你的第二个 XPath 在页面中返回所有 li
元素 class “rgWa7D”。如果您希望上下文是当前 ul
元素,由变量 des
引用,请将 .
添加到 XPath 的开头:
for i in des.xpath('.//li[@class="rgWa7D"]/text()'):
description.append(i)
我尝试在 Flipkart 中使用 lxml 方法 xpath 为每个产品的产品描述创建一个嵌套列表
product_descriptions = []
for des in tree.xpath('//ul[@class="_1xgFaf"]'):
description=[]
for i in des.xpath('//li[@class="rgWa7D"]/text()'):
description.append(i)
product_descriptions.append(description)
for i in product_descriptions:
print(i)
但是这样会导致获取页面中所有的li[@class="rgWa7D"],而不是获取一个
- 元素的所有
- 元素。
用 /
开始你的 XPath 意味着上下文是根文档,这就是为什么你的第二个 XPath 在页面中返回所有 li
元素 class “rgWa7D”。如果您希望上下文是当前 ul
元素,由变量 des
引用,请将 .
添加到 XPath 的开头:
for i in des.xpath('.//li[@class="rgWa7D"]/text()'):
description.append(i)