Ich versuche, this Website mit scrapy zu kratzen. Die Seitenstruktur sieht wie folgt aus:wie man Texte zwischen zwei Elementen auswählt und extrahiert?
<div class="list">
<a id="follows" name="follows"></a>
<h4 class="li_group">Follows</h4>
<div class="soda odd"><a href="...">Star Trek</a></div>
<div class="soda even"><a href="...</a></div>
<div class="soda odd"><a href="..">Star Trek: The Motion Picture</a></div>
<div class="soda even"><a href="..">Star Trek II: The Wrath of Khan</a></div>
<div class="soda odd"><a href="..">Star Trek III: The Search for Spock</a></div>
<div class="soda even"><a href="..">Star Trek IV: The Voyage Home</a></div>
<a id="followed_by" name="followed_by"></a>
<h4 class="li_group">Followed by</h4>
<div class="soda odd"><a href="..">Star Trek V: The Final Frontier</a></div>
<div class="soda even"><a href="..">Star Trek VI: The Undiscovered Country</a></div>
<div class="soda odd"><a href="..">Star Trek: Deep Space Nine</a></div>
<div class="soda even"><a href="..">Star Trek: Generations</a></div>
<div class="soda odd"><a href="..">Star Trek: Voyager</a></div>
<div class="soda even"><a href="..">First Contact</a></div>
<a id="spin_off" name="spin_off"></a>
<h4 class="li_group">Spin-off</h4>
<div class="soda odd"><a href="..">Star Trek: The Next Generation - The Transinium Challenge</a></div>
<div class="soda even"><a href="..">A Night with Troi</a></div>
<div class="soda odd"><a href="..">Star Trek: Deep Space Nine</a></div
</div>
ich auswählen möchten und extrahieren Sie die Texte zwischen: <h4 class="li_group">Follows</h4>
und <h4 class="li_group">Followed by</h4>
dann Texte zwischen <h4 class="li_group">Followed by</h4>
und <h4 class="li_group">Spin-off</h4>
ich diesen Code versucht:
def parse(self, response):
for sel in response.css("div.list"):
item = ImdbcoItem()
item['Follows'] = sel.css("a#follows+h4.li_group ~ div a::text").extract(),
item['Followed_by'] = sel.css("a#vfollowed_by+h4.li_group ~ div a::text").extract(),
item['Spin_off'] = sel.css("a#spin_off+h4.li_group ~ div a::text").extract(),
return item
Aber die erster Artikel extrahiert alle Divs nicht nur divs zwischen <h4 class="li_group">Follows</h4>
und <h4 class="li_group">Followed by</h4>
Jede Hilfe wäre wirklich Helpfu l !!
nur in Fällen hilft es, imdb.com hat eine (un) offizielle API wo? Sie können alle diese Daten sauber bekommen, wenn ich mich gut erinnere. – Neil