Come si scorre tra siti con Scrapy? Mi piacerebbe estrarre il corpo di tutti i siti che corrispondono a http://www.saylor.org/site/syllabus.php?cid=NUMBER
, dove NUMBER è da 1 a 400 o giù di lì.Iterazione tramite siti con Python Scrapy
ho scritto questo ragno:
from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
from scrapy.selector import HtmlXPathSelector
from syllabi.items import SyllabiItem
class SyllabiSpider(CrawlSpider):
name = 'saylor'
allowed_domains = ['saylor.org']
start_urls = ['http://www.saylor.org/site/syllabus.php?cid=']
rules = [Rule(SgmlLinkExtractor(allow=['\d+']), 'parse_syllabi')]
def parse_syllabi(self, response):
x = HtmlXPathSelector(response)
syllabi = SyllabiItem()
syllabi['url'] = response.url
syllabi['body'] = x.select("/html/body/text()").extract()
return syllabi
Ma non funziona. Capisco che stia cercando dei link in questo start_url, che non è proprio quello che voglio che faccia. Voglio scorrere i siti. Ha senso?
Grazie per l'aiuto.
E 'possibile costruire l'elenco di URL desiderati in anticipo? ex. 'urls = [" example.com?cid={}".format(x) per x nell'intervallo (1, 401)] '? Disclaimer: non ho mai usato Scrapy. – Kevin