而不是文本值,python,scrapy"/>

首页 > 解决方案 > 刮痧归来而不是文本值

问题描述

我确信这非常简单,但我被卡住了。希望你能帮忙。

我正在抓取一个网站,我想要的值(我们称之为total的数字)有时在第一页上,有时在名为“查看更多”的第二个链接后面。

我有一个 if 语句可以从当前页面获取总数,或者在按照“查看更多”链接从下一页获取它之后。

但是,当我点击链接时,我得到的不是值:

print(total) 
<GET https://blabla...>

编码

def parse_promo(self, response):
   more_url = response.xpath('//a[contains(text(),"See More")]/@href').get()
   
   if more_url: ### Total on next page, need to follow link
      total = response.follow(url=more_url, callback=self.parse_multi)
      print(total) 
   else: ### Total on this page, this works fine
      total = response.xpath('//div[@class="stTabNav01 stTabBottom"]/p/em[1]/text()').get(),
   
   yield{
            'total': total,
        }

def parse_multi(self, response): ### Something wrong here?
   return response.xpath('//div[@class="stTabNav01 stTabBottom"]/p/em[1]/text()').get()

谢谢,

标签: pythonscrapy

解决方案


推荐阅读