Oto przykład pająk pisałem o projekcie kopalni:
from scrapy.contrib.spiders import CrawlSpider
from scrapy.selector import HtmlXPathSelector
from scrapy.http import Request
from yoMamaSpider.items import JokeItem
from yoMamaSpider.striputils import stripcats, stripjokes
import re
class Jokes4UsSpider(CrawlSpider):
name = 'jokes4us'
allowed_domains = ['jokes4us.com']
start_urls = ["http://www.jokes4us.com/yomamajokes/"]
def parse(self, response):
hxs = HtmlXPathSelector(response)
links = hxs.select('//a')
for link in links:
url = ''.join(link.select('./@href').extract())
relevant_urls = re.compile(
'http://www\.jokes4us\.com/yomamajokes/yomamas([a-zA-Z]+)')
if relevant_urls.match(url):
yield Request(url, callback=self.parse_page)
def parse_page(self, response):
hxs = HtmlXPathSelector(response)
categories = stripcats(hxs.select('//title/text()').extract())
joke_area = hxs.select('//p/text()').extract()
for joke in joke_area:
joke = stripjokes(joke)
if len(joke) > 15:
yield JokeItem(joke=joke, categories=categories)
Myślę, że metoda parsowania jest tym, czego szukasz: Sprawdza każdy link na stronie start_urls, następnie używa jakiegoś wyrażenia regularnego, aby zdecydować, czy jest to releve_url (czyli URL, który chciałbym zeskrobać), jeśli jest to istotne - zeskrobuje stronę za pomocą Żądania zysku (url, callback = self.parse_page), który wywołuje metodę parse_page.
Czy tego właśnie szukasz?
Nie używam scrapy, ale [dokumentacja] (http://doc.scrapy.org/en/latest/intro/tutorial.html) jest obszerna i zawiera wystarczające informacje, abyś mógł to zrobić. Wygląda na to, że musisz napisać [link extractor] (http://doc.scrapy.org/en/latest/topics/link-extractors.html), który pobiera odnośniki 'B' ze strony' A', a następnie analizuje strona 'B', aby znaleźć adres URL strony" C ". Spróbuj to zrobić, a następnie opublikuj konkretne pytanie z kodem, jeśli masz problemy. – ChrisP
Przepraszam, ale dokumentacja dla początkującego jest naprawdę bardzo zła. Istnieje kilka i raczej bezużyteczne przykłady, a odesłanie do strony z dokumentami nikomu nie pomaga. – not2qubit