Czy można po prostu uruchomić piękną zupę nad zawartością zawartą między dwoma łańcuchami na stronie?
Wielokrotnie przeciwstawiając się ograniczeniom związanym z używaniem Yahoo Pipes do wygaszania ekranu, zacząłem używać Beautiful Soup, częściowo dlatego, że hostowana wersja jest dostępna na Scraperwiki.
Jedną z przydatnych rzeczy w bloku importu HTML w Yahoo Pipes jest to, że pozwala on zidentyfikować ciąg początkowy i ciąg zatrzymania, dzięki czemu można ograniczyć zeskrobanie do określonego regionu strony.
Znalazłem sposób na skrobanie / z / określonego ciągu w Pięknej zupie:
def scrapeFrom(soup,txt,el,attr=""):
start=soup.find(text=txt)
return start.findAllNext(el,attr)
ale czy nie widzi, jak zrzucić wszystko w dół łańcucha?
To znaczy, chcę móc powiedzieć „scrapeFromUntil (zupa, fromText, untilText)” i tylko zeskrobać tagi między tymi dwoma ciągami?
Wszelkie pomysły, jak to zrobić?
Odpowiedzi:
0 dla odpowiedzi № 1Nie do końca to, czego chciałeś, ale w zależności od formatu twojego HTML możesz znaleźć użycie SoupStrainer do ograniczenia parsowania tylko do części dokumentu przydatny.