Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scrapy/Python/XPath-如何从数据中提取数据?_Python_Xpath_Web Scraping_Scrapy - Fatal编程技术网

Scrapy/Python/XPath-如何从数据中提取数据?

Scrapy/Python/XPath-如何从数据中提取数据?,python,xpath,web-scraping,scrapy,Python,Xpath,Web Scraping,Scrapy,我是Scrapy的新手,我刚刚开始研究XPath 我试图从一个div中的html列表项中提取标题和链接。下面的代码是我的想法(通过id选择ul div,然后循环列表项): 但我得到了与这次尝试相同的结果: def parse(self, response): for x in response.xpath('//li'): item = TgmItem() item['title'] = x.xpath('a/text()').extract()

我是Scrapy的新手,我刚刚开始研究XPath

我试图从一个div中的html列表项中提取标题和链接。下面的代码是我的想法(通过id选择ul div,然后循环列表项):

但我得到了与这次尝试相同的结果:

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数据


我不是专家,我做过很多尝试,如果有人能对此有所了解,我将不胜感激。

您需要在内部循环中使用的xpath表达式开头加一个点:

for t in response.xpath('//*[@id="categories"]/ul'):
    for x in t.xpath('.//li'):
这将使它在当前元素的范围内搜索,而不是整个页面

有关更多说明,请参阅

for t in response.xpath('//*[@id="categories"]/ul'):
    for x in t.xpath('.//li'):