Найти - Пользователи
Полная версия: Scrapy проблема с Rules
Начало » Python для новичков » Scrapy проблема с Rules
1
sl0w
Доброго времени суток уважаемые форумчане, уже некоторое время разбираюсь с фреймворком для парсинга скрапи и возникла очень большая непонятность с правилами

 # -*- coding: utf-8 -*-
import scrapy
from testy.items import TestyItem
from scrapy.loader import ItemLoader
from scrapy.spiders import CrawlSpider, Rule
from scrapy.linkextractors import LinkExtractor
------------------------------------------------------
class TestyismySpider(CrawlSpider):
    name = "testyismy"
    allowed_domains = ["i"]
    start_urls = ['https://i']
   
    
    rules = (
                 Rule(LinkExtractor(
                 	restrict_xpaths =('//a[contains(text(),"Вперёд")][1]')),
                        callback = "parse_boobs",follow = True),
            )
    
    def parse_boobs(self, response):
    	    l = ItemLoader(item = TestyItem(),response = response)
    	    l.add_xpath('url','//h3/a[contains(@href,"threads")]/@href')
    	    return l.load_item()

этот код позволяет извлекать рекурсивно всю нужную мне информацию, но почему то только со 2 страницы, каким можно образом организовать сбор информации уже с первой страницы?
sl0w
переделал немного паука
 #-*- coding: utf-8 -*-
import scrapy
from scrapy.linkextractors import LinkExtractor
from scrapy.spiders import CrawlSpider, Rule
from scrapy.loader import ItemLoader
from testy.items import TestyItem
import re
class MvidSpider(CrawlSpider):
    name = 'mvid'
    allowed_domains = ['mvideo.ru']
    start_urls = ['http://www.mvideo.ru/gadzhety/smart-chasy-400']
    rules = (
        Rule(LinkExtractor(
                    restrict_xpaths ='//*[@class = "font-icon icon-right-open ico-pagination-next "]')),
        Rule(LinkExtractor(
                    restrict_xpaths ='//*[@class = "product-tile-title-link sel-product-tile-title"]'),
                    callback = "parse_item")
            )
    def parse_item(self, response):
        l = ItemLoader(item = TestyItem(),response = response)
        l.add_xpath('url','//h1/text()',re ='.[a-zA-Zа-яА-Я,.-]+')
        return l.load_item()
        

при записи в файл json , все русские буквы изображаются в виде символов


если посмотреть загрузку терминала, то можно заметить, что паук работает нормально


как можно преобразовать символьное представление в русский текст?

также прикреплю весь каталог с парсером в зипе
py.user.next
  
>>> import json
>>> 
>>> json.dumps('["абвг"]')
'"[\\"\\u0430\\u0431\\u0432\\u0433\\"]"'
>>> 
>>> json.dumps('["абвг"]', ensure_ascii=False)
'"[\\"абвг\\"]"'
>>>
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB