Scrapy/Python/XPath - 如何从数据中提取数据?
Posted
技术标签:
【中文标题】Scrapy/Python/XPath - 如何从数据中提取数据?【英文标题】:Scrapy/Python/XPath - How to extract data from within data? 【发布时间】:2014-11-07 17:26:45 【问题描述】:我是 Scrapy 的新手,我刚刚开始研究 XPath。
我正在尝试从 div 中的 html 列表项中提取标题和链接。下面的代码是我想我会怎么做的,(选择 ul div,按 id,然后遍历列表项):
def parse(self, response):
for t in response.xpath('//*[@id="categories"]/ul'):
for x in t.xpath('//li'):
item = TgmItem()
item['title'] = x.xpath('a/text()').extract()
item['link'] = x.xpath('a/@href').extract()
yield item
但我收到了与这次尝试相同的结果:
def parse(self, response):
for x in response.xpath('//li'):
item = TgmItem()
item['title'] = x.xpath('a/text()').extract()
item['link'] = x.xpath('a/@href').extract()
yield item
其中导出的csv文件包含从源代码上到下的li数据...
我不是专家,我已经做了很多尝试,如果有人能对此有所了解,将不胜感激。
【问题讨论】:
【参考方案1】:您需要在内部循环中使用一个点来开始您的 xpath 表达式:
for t in response.xpath('//*[@id="categories"]/ul'):
for x in t.xpath('.//li'):
这将使它在当前元素的范围内搜索,而不是整个页面。
在Working with relative XPaths查看更多解释。
【讨论】:
以上是关于Scrapy/Python/XPath - 如何从数据中提取数据?的主要内容,如果未能解决你的问题,请参考以下文章
如何从外部从 GitHub 加载 JavaScript 文件? [复制]
如何将数据从回收器适配器发送到片段 |如何从 recyclerview 适配器调用片段函数