Python 如何使用Scrapy获取标记附近的非元素文本?
我正在尝试使用Scrapy框架刮取页面Python 如何使用Scrapy获取标记附近的非元素文本?,python,web-scraping,scrapy,parsel,Python,Web Scraping,Scrapy,Parsel,我正在尝试使用Scrapy框架刮取页面 <div class="info"><span class="label">Establishment year</span> 2014</div> 有什么线索可以说明问题吗?因为您试图在标记之间提取它,所以应该在末尾使用标记。我不知道你想刮哪个网站,但这里有一个例子,我在这个网站的“a”标签之间刮,这里是我用来刮的代码 response.xpath("(//h3)[
<div class="info"><span class="label">Establishment year</span> 2014</div>
有什么线索可以说明问题吗?因为您试图在标记之间提取它,所以应该在末尾使用标记。我不知道你想刮哪个网站,但这里有一个例子,我在这个网站的“a”标签之间刮,这里是我用来刮的代码
response.xpath("(//h3)[1]/a/text()").extract_first()
在第二行代码中,您没有正确使用提取文本的函数。您使用的是CSS选择器。对于Xpath,if应该是/text(),而不是::text()。对于您的代码,我认为您应该尝试以下选项之一。如果有帮助,请告诉我
response.xpath("//span[contains(text(),'Establishment year')]/div/text()").get()
或
因为您试图在标记之间提取它,所以应该在末尾使用标记。我不知道你想刮哪个网站,但这里有一个例子,我在这个网站的“a”标签之间刮,这里是我用来刮的代码
response.xpath("(//h3)[1]/a/text()").extract_first()
在第二行代码中,您没有正确使用提取文本的函数。您使用的是CSS选择器。对于Xpath,if应该是/text(),而不是::text()。对于您的代码,我认为您应该尝试以下选项之一。如果有帮助,请告诉我
response.xpath("//span[contains(text(),'Establishment year')]/div/text()").get()
或
从父元素中提取直接文本子元素(
/text()
):
>>> from parsel import Selector
>>> selector = Selector(text='<div class="info"><span class="label">Establishment year</span> 2014</div>')
>>> selector.xpath('//*[@class="info"]/text()').get()
' 2014'
来自parsel导入选择器的>>
>>>选择器=选择器(text='2014成立年份')
>>>selector.xpath('/*[@class=“info”]/text()).get()
' 2014'
从父元素中提取直接文本子元素(/text()
):
>>> from parsel import Selector
>>> selector = Selector(text='<div class="info"><span class="label">Establishment year</span> 2014</div>')
>>> selector.xpath('//*[@class="info"]/text()').get()
' 2014'
来自parsel导入选择器的>>
>>>选择器=选择器(text='2014成立年份')
>>>selector.xpath('/*[@class=“info”]/text()).get()
' 2014'
问题是我没有一个标签。如果我尝试一些/div/text()或/span/text()的东西,它对我不起作用。是否可以提供指向网站的链接?问题是我没有一个标签。如果我尝试了一些/div/text()或/span/text()的东西,它对我不起作用。是否可以提供指向网站的链接?耶。我不能使用信息类,因为页面上有很多。我尝试了类似的方法,它对我很有效:response.xpath(//span[contains(text(),'building year')]/../text())。get()耶。我不能使用信息类,因为页面上有很多。我尝试过类似的方法,但效果不错:response.xpath(//span[contains(text(),'building year')]/../text()).get()