Introduktion till scrapy Selector

Webbskrapning i Python

Thomas Laetsch

Data Scientist, NYU

Skapa en Selector

from scrapy import Selector
html = '''
<html>
  <body>
    <div class="hello datacamp">
      <p>Hello World!</p>
    </div>
    <p>Enjoy DataCamp!</p>
  </body>
</html>
'''
sel = Selector( text = html )
  • Skapade ett scrapy Selector-objekt med en sträng som innehåller HTML-koden

  • Selectorn sel har markerat hela HTML-dokumentet

Webbskrapning i Python

Välja Selectors

  • Vi kan använda xpath-anropet i en Selector för att skapa nya Selectors av specifika delar av HTML-koden

  • Returvärdet är en SelectorList med Selector-objekt

sel.xpath("//p")

# outputs the SelectorList: [<Selector xpath='//p' data='<p>Hello World!</p>'>, <Selector xpath='//p' data='<p>Enjoy DataCamp!</p>'>]
Webbskrapning i Python

Extrahera data från en SelectorList

  • Använd metoden extract()
>>> sel.xpath("//p")

out: [<Selector xpath='//p' data='<p>Hello World!</p>'>, <Selector xpath='//p' data='<p>Enjoy DataCamp!</p>'>]
>>> sel.xpath("//p").extract()

out: [ '<p>Hello World!</p>', '<p>Enjoy DataCamp!</p>' ]
  • Använd extract_first() för att hämta det första elementet i listan
>>> sel.xpath("//p").extract_first()

out: '<p>Hello World!</p>'
Webbskrapning i Python

Extrahera data från en Selector

ps = sel.xpath('//p')

second_p = ps[1]
second_p.extract()

out: '<p>Enjoy DataCamp!</p>'
Webbskrapning i Python

Nu kör vi en övning!

Webbskrapning i Python

Preparing Video For Download...