【问题标题】:CSS Selector HTML with Scrapy Python带有 Scrapy Python 的 CSS 选择器 HTML
【发布时间】:2021-07-13 02:09:48
【问题描述】:

我正在尝试制作一个网络爬虫来从雅虎财经中提取一些信息作为个人项目。但是,在雅虎财经的分析页面上,我无法提取特定值。 HTML 对我来说似乎很复杂,我可以得到一些指导吗?

class yhcrawler(scrapy.Spider):
    name = 'yahoo'
    
    start_urls = [f'https://ca.finance.yahoo.com/quote/{t}/analysis?p={t}' for t in tkrs]
    
    def parse(self, response):
        filename = 'stock_growths.csv'
        
        l = response.css('div#YDC-Col1>div>div>div>div>div>section>table>tbody>tr>td#431::text').extract()
        print(l)

这就是我正在尝试的

l = response.css('div#YDC-Col1>div>div>div>div>div>section>table>tbody>tr>td#431::text').extract()

我得到一个空的结果

2021-04-18 15:12:54 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://ca.finance.yahoo.com/quote/M/analysis?p=M> (referer: None)
[]

我试图获得的值在突出显示的行上,-11.82%

【问题讨论】:

  • 您想指定该站点中可用项目的确切价值,以便其他人帮助您。
  • @SIM 我添加了值,-11.82%。请指教
  • 不知道你用的是哪个ticker,所以图片中的值没用。如果您考虑这个link,您希望获得什么价值?注意里面的值不是静态的,所以用字段名指定,如Current YearNext Year
  • @sim 未来 5 年的增长预测

标签: python html web-scraping scrapy


【解决方案1】:

试试这个:

class YahoofinanceSpider(scrapy.Spider):
    name = 'yahoofinance'
    start_urls = ['https://ca.finance.yahoo.com/quote/aapl/analysis?p=aapl']
    
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36'
    } 

    def start_requests(self):
        for start_url in self.start_urls:
            yield scrapy.Request(start_url,headers=self.headers)

    def parse(self, response):
        item = response.xpath("//td[./span][contains(.,'Next 5 Years')]/following-sibling::td/text()").getall()
        yield {"item":item}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-06
    • 1970-01-01
    • 2022-01-22
    • 2020-04-23
    • 1970-01-01
    • 2020-03-06
    • 2014-02-23
    相关资源
    最近更新 更多