xpath选择器在scrapy shell中返回null

xpath选择器在scrapy shell中返回null,xpath,web-scraping,scrapy,Xpath,Web Scraping,Scrapy,我正试图从这个url中获取一些数据 html的外观如下所示: 新赛季 这是因为标题。定义一个,然后得到你想要的。尝试以下操作:如果将标题踢出,结果将变为无 import requests from scrapy import Selector LINK = 'https://www.farfetch.com/bd/shopping/men/gucci-white-rhyton-web-print-leather-sneakers-item-12889013.aspx?storeid=935

我正试图从这个url中获取一些数据

html的外观如下所示:


新赛季


这是因为
标题。定义一个,然后得到你想要的。尝试以下操作:如果将
标题踢出
,结果将变为无

import requests
from scrapy import Selector

LINK = 'https://www.farfetch.com/bd/shopping/men/gucci-white-rhyton-web-print-leather-sneakers-item-12889013.aspx?storeid=9359'

def get_item(url):
    res = requests.get(url,headers={"User-Agent":"Mozilla/5.0"})
    sel = Selector(res)
    name = sel.xpath('//div[@id="bannerComponents-Container"]//span[@itemprop="name"]/text()').extract_first()
    print(name)

if __name__ == '__main__':
    get_item(LINK)
输出:

Gucci

这是因为
标题
。定义一个,然后得到你想要的。尝试以下操作:如果将
标题踢出
,结果将变为无

import requests
from scrapy import Selector

LINK = 'https://www.farfetch.com/bd/shopping/men/gucci-white-rhyton-web-print-leather-sneakers-item-12889013.aspx?storeid=9359'

def get_item(url):
    res = requests.get(url,headers={"User-Agent":"Mozilla/5.0"})
    sel = Selector(res)
    name = sel.xpath('//div[@id="bannerComponents-Container"]//span[@itemprop="name"]/text()').extract_first()
    print(name)

if __name__ == '__main__':
    get_item(LINK)
输出:

Gucci

我用HTML测试了这个表达式,它确实有效。所以这个错误很可能在其他地方。@zx482您认为它可能在其他地方吗?我不知道如何修理this@darbulix,根据SO规则,您应该提供重现问题的代码。@derloopkat没有代码。我在Scrapy Shell中运行它。我用HTML测试了表达式,它确实有效。所以这个错误很可能在其他地方。@zx482您认为它可能在其他地方吗?我不知道如何修理this@darbulix,根据SO规则,您应该提供重现问题的代码。@derloopkat没有代码。我在Scrapy Shell中运行这个为什么我需要定义一个标题?你能解释一下吗?我尝试在其他电子商务平台(如亚马逊)上进行同样的抓取,但我没有遇到任何问题,因为这是让网站知道请求不是从机器人发送的,而是从真正的浏览器或人发送的最简单的方法。谢谢。顺便说一句,你不能将一个站点与另一个站点进行比较,因为每个站点都是独立的,在一个站点上实现的逻辑在另一个站点上应用时可能不会带来成功。啊,我明白了。因此,如果我搜索“headers web Scaping”,我是否能够找到有关如何确保请求来自真实浏览器/人而不是机器人的更多信息?为什么我需要定义header?你能解释一下吗?我尝试在其他电子商务平台(如亚马逊)上进行同样的抓取,但我没有遇到任何问题,因为这是让网站知道请求不是从机器人发送的,而是从真正的浏览器或人发送的最简单的方法。谢谢。顺便说一句,你不能将一个站点与另一个站点进行比较,因为每个站点都是独立的,在一个站点上实现的逻辑在另一个站点上应用时可能不会带来成功。啊,我明白了。因此,如果我搜索“headers web Scaping”,我是否能够找到有关如何确保请求来自真实浏览器/人而不是机器人的更多信息?