Code Quelle: http://mherman.org/blog/2012/11/08/recursively-scraping-web-pages-with-scrapy/#rules Ich bin neu in Python und Scrapy. Ich suchte nach rekursiver Spinne und fand das.Crappt Scrapy ALLE Links mit Regeln?
Ich habe ein paar Fragen:
Wie funktioniert die Folge Arbeit? Nimmt es nur href-Links von einer Seite und fügt es in die Anforderungswarteschlange ein?
Welchen Teil der Webseite scrapiert Crawl?
Löscht der folgende Code ALLE Links von einer Webseite?
Können sagen, ich will jede Datei von dieser Website http://downloads.trendnet.com/
den Weg kriechen und downloaden ich wahrscheinlich tun würde es jeden Link auf dieser Website zu kratzen und überprüfen URL Inhaltsheader und herunterladen, wenn es sich um eine Datei handelt. Ist das machbar?
Sorry, wenn es eine schlechte Frage ist ....
from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
from scrapy.selector import HtmlXPathSelector
from craigslist_sample.items import CraigslistSampleItem
class MySpider(CrawlSpider):
name = "craigs"
allowed_domains = ["sfbay.craigslist.org"]
start_urls = ["http://sfbay.craigslist.org/search/npo"]
rules = (
Rule(SgmlLinkExtractor(allow=(), restrict_xpaths=('//a[@class="button next"]',)), callback="parse_items", follow= True),
)
def parse_items(self, response):
hxs = HtmlXPathSelector(response)
titles = hxs.xpath('//span[@class="pl"]')
items = []
for titles in titles:
item = CraigslistSampleItem()
item["title"] = titles.xpath("a/text()").extract()
item["link"] = titles.xpath("a/@href").extract()
items.append(item)
return(items)