kratzen Sie über die website mit href-Verweise

Ich bin mit scrapy, und ich will kratzen durch www.rentler.com. Ich habe gegangen, um die website und suchte nach der Stadt, ich bin interessiert, und hier ist der link von dem suchergebnis:

https://www.rentler.com/search?Location=millcreek&MaxPrice=

Nun, alle Listen, die ich bin daran interessiert, enthalten sind auf dieser Seite, und ich möchte rekursiv durch den Schritt, eins nach dem anderen.

Jede Liste ist aufgeführt unter:

<body>/<div id="wrap">/<div class="container search-res">/<ul class="search-results"><li class="result">

jedes Ergebnis hat eine <a class="search-result-link" href="/listing/288910">

Ich weiß, daß ich eine Regel erstellen, für die crawlspider und haben es anschauen, href und hängen Sie an die url. So könnte es gehen auf jeder Seite, und schnappen Sie sich, dass Daten, die mich interessiert.

Ich glaube, ich brauche so etwas wie dieses:

rules = (Rule(SgmlLinkExtractor(allow="not sure what to insert here, but this is where I think I need to href appending", callback='parse_item', follow=true),)

UPDATE
*Danke für den input. Hier ist, was ich jetzt habe, scheint es zu laufen, aber nicht kratzen:*

import re
from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
from scrapy.selector import HtmlXPathSelector
from KSL.items import KSLitem

class KSL(CrawlSpider):
    name = "ksl"
    allowed_domains = ["https://www.rentler.com"]
    start_urls = ["https://www.rentler.com/ksl/listing/index/?sid=17403849&nid=651&ad=452978"]
    regex_pattern = '<a href="listing/(.*?) class="search-result-link">'

    def parse_item(self, response):
        items = []
        hxs = HtmlXPathSelector(response)
        sites = re.findall(regex_pattern, "https://www.rentler.com/search?location=millcreek&MaxPrice=")

        for site in sites:
            item = KSLitem()
            item['price'] = site.select('//div[@class="price"]/text()').extract()
            item['address'] = site.select('//div[@class="address"]/text()').extract()
            item['stats'] = site.select('//ul[@class="basic-stats"]/li/div[@class="count"]/text()').extract()
            item['description'] = site.select('//div[@class="description"]/div/p/text()').extract()
            items.append(item)
        return items

Gedanken?

InformationsquelleAutor SMPLGRP | 2013-10-17

Schreibe einen Kommentar