Python 3.x 如何使用response.css在具有scrapy的类中获取元素

Python 3.x 如何使用response.css在具有scrapy的类中获取元素,python-3.x,web-scraping,scrapy,Python 3.x,Web Scraping,Scrapy,我试图从以下位置获取value=“3474636382675”: 我试过了 response.css(".lst >value").extract() 这一个有效,但我得到的一切回来,我只是需要的价值 response.css(".lst").extract() 我使用BeautifulSoup解析html。下面是一个从雅虎金融(yahoo finance)获取股票价格的例子 import urllib.request from bs4 import BeautifulSoup d

我试图从以下位置获取value=“3474636382675”:

我试过了

response.css(".lst >value").extract()
这一个有效,但我得到的一切回来,我只是需要的价值

response.css(".lst").extract()

我使用BeautifulSoup解析html。下面是一个从雅虎金融(yahoo finance)获取股票价格的例子

import urllib.request
from bs4 import BeautifulSoup

def getPrice(tag):
    source = "https://finance.yahoo.com/quote/"+tag
    filehandle = urllib.request.urlopen(source)
    soup = BeautifulSoup(filehandle.read(), "html.parser")
    priceSpan = soup.findAll("span", { "class" : "Fz(36px)" })
    for k in priceSpan:
        return(k.getText())

def getDayChange(tag):
    source = "https://finance.yahoo.com/quote/"+tag
    filehandle = urllib.request.urlopen(source)
    soup = BeautifulSoup(filehandle.read(), "html.parser")
    priceSpan = soup.findAll("span", { "class" : "Fw(500)" })
    for k in priceSpan:
        return(k.getText())

我使用beautiful soup解析html。下面是一个从雅虎金融(yahoo finance)获取股票价格的例子

import urllib.request
from bs4 import BeautifulSoup

def getPrice(tag):
    source = "https://finance.yahoo.com/quote/"+tag
    filehandle = urllib.request.urlopen(source)
    soup = BeautifulSoup(filehandle.read(), "html.parser")
    priceSpan = soup.findAll("span", { "class" : "Fz(36px)" })
    for k in priceSpan:
        return(k.getText())

def getDayChange(tag):
    source = "https://finance.yahoo.com/quote/"+tag
    filehandle = urllib.request.urlopen(source)
    soup = BeautifulSoup(filehandle.read(), "html.parser")
    priceSpan = soup.findAll("span", { "class" : "Fw(500)" })
    for k in priceSpan:
        return(k.getText())

对css不太确定。但是从另一个答案来看。或者尝试xpath:

response.xpath('//input[@class="lst"]/@value').extract()
或者,如果您只需要一个值:

response.xpath('//input[@class="lst"]/@value').extract_first()

对css不太确定。但是从另一个答案来看。或者尝试xpath:

response.xpath('//input[@class="lst"]/@value').extract()
或者,如果您只需要一个值:

response.xpath('//input[@class="lst"]/@value').extract_first()

使用CSS,您可以选择所需的属性,如下所示:

response.css(".lst::attr(value)").extract()

您可以在Scrapy的

中详细了解选择器,使用CSS选择所需的属性,如下所示:

response.css(".lst::attr(value)").extract()

您可以在Scrapy的

中详细了解选择器,它与xpath一起工作,谢谢。但是你会如何使用response.css?在我看来是合法的。@rousback似乎其他人已经回答了你的问题。您也可以按照链接查看答案是否适用。它与xpath一起使用,谢谢。但是你会如何使用response.css?在我看来是合法的。@rousback似乎其他人已经回答了你的问题。你也可以点击链接,看看答案是否适合你。就这样。多谢了,就这样。谢谢