Wie Sie kratzen Sie alle Inhalte von jedem link mit scrapy?

Ich bin neu mit scrapy ich möchte alle extrahieren Sie den Inhalt jedes werben von dieser website. Also ich habe Folgendes versucht:

from scrapy.spiders import Spider
from craigslist_sample.items import CraigslistSampleItem

from scrapy.selector import Selector
class MySpider(Spider):
    name = "craig"
    allowed_domains = ["craigslist.org"]
    start_urls = ["http://sfbay.craigslist.org/search/npo"]

    def parse(self, response):
        links = response.selector.xpath(".//*[@id='sortable-results']//ul//li//p")
        for link in links:
            content = link.xpath(".//*[@id='titletextonly']").extract()
            title = link.xpath("a/@href").extract()
            print(title,content)

Elemente:

# Define here the models for your scraped items

from scrapy.item import Item, Field

class CraigslistSampleItem(Item):
    title = Field()
    link = Field()

Jedoch, wenn ich den crawler habe ich nichts:

$ scrapy crawl --nolog craig
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]

So, meine Frage ist: Wie kann ich zu Fuss über jede url, die man in jeden link und Crawlen den Inhalt und den Titel?, und was ist der beste Weg, dies zu tun?.

  • Wie kamen Sie mit dem XPath-Ausdrücken? .//*[@id='sortable-results']//ul//li//p ok aussieht, sollte es geben Ihnen die <p class="result-info"> auf der Seite. Aber in diesen <p class="result-info"> ich nicht sehen können, etwas passendes .//*[@id='titletextonly']. Sie können testen Sie Ihre XPaths mit scrapy shell
  • Beispiele von scrapy Nutzung oder der XPath? Ich glaube docs.scrapy.org/en/latest/intro/... ist ähnlich zu den use-case.
  • Jede website ist anders, und die Daten, die Sie nach Ihrem Anwendungsfall. Vielleicht möchten Sie auch einen Kurs über XPath und diesem blog-post dienen kann, als ein gutes intro.
  • Ich werde akzeptieren, dass die Frage, wer mehr haben upvotes, beide waren Super.
InformationsquelleAutor student | 2016-11-08
Schreibe einen Kommentar