如何使用scrapy从没有逗号分隔符的单个标记中获取文本数据

tyg4sfes  于 2022-11-09  发布在  其他
关注(0)|答案(1)|浏览(141)

下面是html片段

<P class="subtitulo">
 <b>
  <a name="Editores"> Editorial </a>
    "assistant"
 </b>
</p>

通过使用这个零碎的代码

response.css("p.subtitulo *::text").extract()

我得到
['编辑','助理']

response.css("p.subtitulo *::text").get()

我得到的只有“
助理
“我想要完整的字符串,不带任何逗号,如
“编辑助理”
使用Beautiful soup我得到的文本没有逗号。但是如何用Scrapy做到这一点。因为我有其他用逗号分隔的角色,所以我不想使用split()。
这是页面url http://www.scielo.org.co/revistas/zop/iedboard.htm

rta7y2nd

rta7y2nd1#

您可以通过调用.join().getall()方法来执行此操作,如下所示:

import scrapy
class TestSpider(scrapy.Spider):
    name = 'test'
    start_urls = ['http://www.scielo.org.co/revistas/zop/iedboard.htm']

    def parse(self, response):
        for p in response.css('.subtitulo')[1:]:
            yield {
            'Name': ''.join(p.css("::text").getall())
            }

输出:

{'Name': 'Editorial Assistant'}
2022-08-08 15:39:03 [scrapy.core.scraper] DEBUG: Scraped from <200 http://www.scielo.org.co/revistas/zop/iedboard.htm>
{'Name': 'Editorial Committee '}
2022-08-08 15:39:03 [scrapy.core.scraper] DEBUG: Scraped from <200 http://www.scielo.org.co/revistas/zop/iedboard.htm>
{'Name': 'Scientific Committee'}
2022-08-08 15:39:03 [scrapy.core.scraper] DEBUG: Scraped from <200 http://www.scielo.org.co/revistas/zop/iedboard.htm>
{'Name': 'Editorial Universidad Del Norte'}

相关问题