我正在尝试使用scrapy提取以下内容:
<div class="marginesy">
<div>
<p>
<center><p>Pytanie nr <b>97</b> - PES </b>
<!--extract the text from this place...-->
<b>Anestezjologia i intensywna terapia</b> w sesji <b>wiosna 2012</b></p></center><br />
<p>Wybierz stwierdzenia, które stanowią kryteria rozpoznawcze dla ostrego uszkodzenia płuc (ALI):
<br>1) hipoksemia tętnicza (PaO<sub>2</sub>/FiO<sub>2</sub> < 300 niezależnie od wielkości zastosowanego PEEPu);
<br>2) rozsiane zagęszczenie w obu płucach w radiogramie klatki piersiowej;<br>3) ciśnienie zaklinowania w tętnicy płucnej mniejsze od 18 mmHg;
<br>4) brak dowodów (klinicznych, echokardiograficznych i radiologicznych) sugerujących podwyższenie ciśnienia w lewym przedsionku.
<!--to this place-->
<br>Prawidłowa odpowiedź to:</p><br />
<p><b>A.</b> 1,2.</p><br />
<p><b>B.</b> 1,3.</p><br />
<p><b>C.</b> 1,2,3.</p><br />
<p><b>D.</b> 1,2,4.</p><br />
<p><b>E.</b> wszystkie wymienione.</p>
</p>
</div>
使用以下代码:
sel = Selector(response)
item['text'] = [sel.xpath('//div[@class="marginesy"]//p[preceding-sibling::br and preceding-sibling::center]').extract()[0]]
这在scrapy shell中很好用,但是当我运行scrapy crawl时,我收到的结果没有“ <”标签。后面的文字也不存在。我得到的结果看起来像这样:
<p>Wybierz stwierdzenia, kt\xf3re stanowi\u0105 kryteria rozpoznawcze dla ostrego uszkodzenia p\u0142uc (ALI):<br>1) hipoksemia t\u0119tnicza (PaO<sub>2</sub>/FiO<sub>2</sub> 2) rozsiane zag\u0119szczenie w obu p\u0142ucach w radiogramie klatki piersiowej;<br>3) ci\u015bnienie zaklinowania w t\u0119tnicy p\u0142ucnej mniejsze od 18 mmHg;<br>4) brak dowod\xf3w (klinicznych, echokardiograficznych i radiologicznych) sugeruj\u0105cych podwy\u017cszenie ci\u015bnienia w lewym przedsionku.<br>Prawid\u0142owa odpowied\u017a to:</p>
我在文件开头声明了#--编码:utf-8--谢谢您的帮助。