2017-05-30 1 views
0

Lorsque j'exécute ce code, j'obtiens le résultat sous la forme de {[text1, author1, tag1], [text2, author2, tag2] ,. ..}Scrapy code utilisant python donnant un résultat pour un site Web et non pour un autre site Web

import scrapy 
class QuotesSpider(scrapy.Spider): 
    name = "quotes" 
    start_urls = [ 
     'http://quotes.toscrape.com/page/1/', 
    ] 

    def parse(self, response): 
     for quote in response.css('div.quote'): 
      yield { 
       'text': quote.css('span.text::text').extract_first(), 
       'author': quote.css('small.author::text').extract_first(), 
       'tags': quote.css('div.tags a.tag::text').extract(), 
      } 

Mais, dans le même code pour une autre URL (ci-dessous) Je reçois comme résultat {[nom1, nom2, ..], [city1, city2, ...]} Je veux l'avoir sous la forme de {[nom1, ville1], [nom2, ville2], ...] comme il se passe pour le code ci-dessus.

import scrapy 
class QuotesSpider(scrapy.Spider): 
    name = "student" 
    start_urls = [ 
     'http://www.engineering.careers360.com/colleges/list-of-engineering-colleges-in-karnataka?sort_filter=alpha', 
    ] 

    def parse(self, response): 
     for students in response.css('div.list-pages'): 
      yield { 
       'name': students.css('div.title a::text').extract(), 
       'city': students.css('div.clg-state a::text').extract(),     
      } 

Répondre

0

Vos élèves sélecteur est défectueux:

for students in response.css('div.list-pages'): 

Ceci permet de sélectionner la page entière.
Ce que vous cherchez ici, je pense est:

for students in response.css('li.search-result'): 
+0

Merci Granitosaurus. – Yash

+0

@Yash pas de problème. N'hésitez pas à cliquer sur le bouton accepter la réponse à gauche si vous le trouvez suffisant! – Granitosaurus

+0

Granitosaurus s'il vous plaît pourrait m'aider à celui-ci aussi .. Serait reconnaissant à vous. https://stackoverflow.com/questions/44476674/how-to-crawl-data-from-the-linked-webpages-on-a-webpage-we-are-crawling – Yash