使用Scrapy从同一个类中的2个段落中获取特定文本

jv2fixgn  于 2023-08-05  发布在  其他
关注(0)|答案(1)|浏览(139)

我对Scrapy非常陌生,我希望能够使用Scrapy shell提取两个文本段落:“金融科技、网络安全”和“丙级联赛
x1c 0d1x的数据
如果我逃跑

response.css('div.card-body p.card-text strong::text').get()

字符串
我得到了“Secteur”,但我正在寻找“Fintec,网络安全”。
用于

response.css('div.card-body p.card-text::text').get()


我得到'/n'
我注意到如果我用

response.css('div.card-body p.card-text:nth-child(3)').get()


我得到< p class="card-text">\n回合:Série C\n< /p>和for

response.css('div.card-body p.card-text:nth-child(2)').get()


我明白
< p class="card-text">\n部门:金融科技、网络安全\n< / p>
如何获得意甲Fintech Cybersecurity
谢谢你的好意

bbmckpt7

bbmckpt71#

这应该可以。。'div.card-body p.card-text::text'您只需要使用getallextract方法。
下面是我在ipython中做的一个例子:

In [3]: html = '''<div class="card-body">
   ...:     <h3 class="card-title mb-1">L</h3>
   ...:     <p class="card-text">
   ...:         <strong>Secteur</strong>
   ...:         " : Fintech, Cybersecurity "
   ...:     </p>
   ...:     <p class="card-text">
   ...:         <strong>Round</strong>
   ...:         " : Serie C "
   ...:     </p>
   ...:     <p class="card-text">
   ...:         <small class="text-muted"> 2820 votes enregistres </small>
   ...:     </p>
   ...: </div>'''

In [4]: response = parsel.Selector(html)

In [5]: for p in response.css('div.card-body p.card-text::text').getall():
   ...:     text=''.join(p).strip()
   ...:     print(text)
   ...:

" : Fintech, Cybersecurity "

" : Serie C "

字符串

相关问题