2015-03-17 5 views
0

Итак, я ознакомился с учебниками по использованию scrapy, и теперь я могу посещать ссылки на данной странице. Но то, что я хочу сделать, - это то, что, учитывая страницу, которую я хочу собрать, ее данные (метаданные и резюме), я также хочу посетить ссылки на этой странице и собрать их данные. Это мой код до сих пор (не собрали данные еще)Скребок Python с использованием scrapy

from scrapy.contrib.spiders import CrawlSpider, Rule 
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor 
from scrapy.spider import BaseSpider 
from scrapy.http import Request 
from scrapy.selector import HtmlXPathSelector 
from scrapy.selector import Selector 
#from scrapy.item import SpideyItem 

class spidey (CrawlSpider): 
    name = "spidey" 
    allowed_domains = ["wikipedia.org"] 
    start_urls = ["http://en.wikipedia.org/wiki/Game_of_Thrones"] 

    rules = (

     Rule(SgmlLinkExtractor(restrict_xpaths=('//div[@class="nw- body"]//a/@href'))), 
    Rule(SgmlLinkExtractor(allow=("http://en.wikipedia.org/wiki/",)), callback = 'parse_item'), 

    ) 

def parse_item(self, response): 
    sel = HtmlXPathSelector(response) 
    print sel.xpath('//h1[@class="firstHeading"]/span/text()').extract() 

Таким образом, после этого я хочу, чтобы собрать данные исходной страницы и данных, присутствующей в ссылках, которые я посещаю. Я новичок в пауках, любой указатель приветствуется.

ответ

0

Я не уверен, что ваш вопрос точно, но если вы спрашиваете, как собирать данные из нескольких страниц и сохранить его в один пункт ... это ваш ответ:

https://github.com/darkrho/scrapy-inline-requests

Также если вы не хотите делать это встроенным способом, вы всегда можете сохранить свой элемент в request.meta и отправить его в запрос с обратным вызовом функции, которая извлекает данные со страницы.

Отметьте этот ответ: How can i use multiple requests and pass items in between them in scrapy python

Смежные вопросы