2017-04-27 12 views
0

Dies ist mein Code. Spider krabbeln keine URLs oder extrahieren sie nicht oder etwas ähnliches. Wenn ich aber url in "start urls" targe, dann scrappt scrapy item, wird aber nicht vorwärts crawlen und wenn ich aber "urls" die url, die target list enthält, dann ist das ergebnis 0. :) Ich hoffe, dass der Text nichtScrapy crawlt nur eine Seite

from scrapy.spiders import Spider 
from testing.items import TestingItem 
import scrapy 

class MySpider(scrapy.Spider): 
    name   = 'testing' 
    allowed_domains = ['http://somewebsite.com'] 
    start_urls  = ['http://somewebsite.com/listings.php'] 


    def parse(self, response): 
     for href in response.xpath('//h5/a/@href'): 
      full_url = response.urljoin(href.extract()) 
      yield scrapy.Request(full_url, callback=self.parse_item) 


    def parse_item(self, response): 
    titles = response.xpath('//*[@class="panel-content user-info"]').extract() 
    for title in titles: 
     item = TestingItem() 
     item["nimi"] = response.xpath('//*[@class="seller-info"]/h3/text()').extract() 

     yield item 
+1

Versuchen Sie, die 'http: //' in den erlaubten_Domains zu entfernen –

+1

Schön, tanx Kumpel :). Weißt du, was ich brauche, um die Seitennummerierung auf die nächste Seite zu bekommen? :) –

Antwort

1

Sie ist verwirrend müssen die http:// im allowed_domains entfernen.

Um Ihren Kommentar zu beantworten, für die pagination, können Sie Rules verwenden, lassen Sie überprüfen Sie das Dokument here. Es ermöglicht Ihnen, die Paginierung leicht zu durchlaufen.

Kleine exemple:

rules = (Rule(LinkExtractor(allow=(), restrict_xpaths=('xpath/to/nextpage/button',)), callback="parse", follow= True),) 

Hoffnung, das hilft.

+1

Schön! Das ist der perfekte Mann! Tanx viel! :) –