scrapy 我怎样才能从html片段在scrappy文本?

brccelvz  于 2022-11-23  发布在  其他
关注(0)|答案(1)|浏览(142)

这里是一些html字符串我从网站通过 AJAX 请求

{ 
  "data":{
          label: 'description',
          values:  ['<p class="description">'
                'someting'
                '<br>'
                '<br>'
                '<b>mytitle_1</b>'
                '<br>'
                '<br>'
                'something_1'
                '<br>'
                '<br>'
                '<b>mytitle_2</b>'
                '<br>'
                '<br>'
                'something_2'
            '</p>']}
    }

values键的值是html片段,我如何获取data[“values”]中的所有文本。我使用的是scrapy,有没有办法通过scrapy的response get方法解析它?

zmeyuzjn

zmeyuzjn1#

是的,您只需要提取html内容,将其转换为一个零碎的选择器,并在其上使用xpath('//text()').getall()
示例:

from scrapy.selector import Selector

resp_json = {
  "data":{
          'label': 'description',
          'values':  ['<p class="description">'
                'someting'
                '<br>'
                '<br>'
                '<b>mytitle_1</b>'
                '<br>'
                '<br>'
                'something_1'
                '<br>'
                '<br>'
                '<b>mytitle_2</b>'
                '<br>'
                '<br>'
                'something_2'
            '</p>']}
    }

a = Selector(text=resp_json['data']['values'][0], type='html')
content = a.xpath('//text()').getall()
print(content)

输出量:

['someting', 'mytitle_1', 'something_1', 'mytitle_2', 'something_2']

相关问题