не работает парсинг с помошю scrapy (python + php)

1.41K
.
# Koenig (26.09.2016 / 19:01)
_endrju_, ты написал сохранить в csv, а зачем тебе каждый салон в отдельный файл? это же посути каждый салон одна строка, как в бд, в мускул csv можно импортировать
не я имел ввиду что все салоны построчно в одном цсв )
.
(\/)____o_O____(\/)
_endrju_, кто тебе нарезал такое, тебе одноразовое задание дали, или сам парсинг обязателен, или результата хватит?
.
# Koenig (26.09.2016 / 19:08)
_endrju_, кто тебе нарезал такое, тебе одноразовое задание дали, или сам парсинг обязателен, или результата хватит?
гг ну задание одноразовое, вот самому интересно стало как спарсить даные) такой спорт для себя типа, канешно проще, сказать надо дать по шапке програмисту Васе, пусть сидит и прасит) но чистое любопытсво берет верх)
.
(\/)____o_O____(\/)
_endrju_, ты же вроде какой то яп знаешь, на нем и напиши.
.
# Koenig (26.09.2016 / 19:18)
_endrju_, ты же вроде какой то яп знаешь, на нем и напиши.
ну я немного на пыхе когдато кодил чатики) но тех знаний вряд ли хватит)
.
# _endrju_ (26.09.2016 / 19:26)
ну я немного на пыхе когдато кодил чатики) но тех знаний вряд ли хватит)
А где логика? ) На пыхе хоть что-то кодил, а на питоне вообще пробел, как я понял ...
Почитай мануал по пыху, если кодил на нём, то и разберёшься быстрее, чем на другом ЯП.
.
# ДоХтор (26.09.2016 / 19:28)
А где логика? ) На пыхе хоть что-то кодил, а на питоне вообще пробел, как я понял ...
Почитай мануал по пыху, если кодил на нём, то и разберёшься быстрее, чем на другом ЯП.
не тут то было, допили таки етот парсер все работает)ыыы
кароче пошол я методом проб и ошибок, создал еще один проект, тупо скопировал два файла с мануала, запустил, их код работает мой нет) подумал по гадал, и таки нашол где собака зарыта:
rules = (
        Rule(SgmlLinkExtractor(allow=('/result\?c\=203\&page\=')), follow=True),
        Rule(SgmlLinkExtractor(allow=('\.html')), callback='parse_item'),
    )
.
Проблема была в том что я не екранировал точки, и другие символы) результат сейчас у меня в ексельке черновой файл с 4200 строками, парсилось все минут 3-4
.
Гиш, ты спишь?
Так тебе интерпретатор говорит модули заменить устаревшие на новые, лол.
.
ниже пркреплю код который заработал:
файл b2b_spider.py ето сам паук
from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
from scrapy.contrib.loader.processor import TakeFirst
from scrapy.contrib.loader import XPathItemLoader
from scrapy.selector import HtmlXPathSelector
from b2b.items import OrphanageItem
 
class OrphanLoader(XPathItemLoader):
    default_output_processor = TakeFirst()

class b2bSpider(CrawlSpider):
    name = "b2b"
    allowed_domains = ["b2binform.ru"]
    start_urls = ["http://b2binform.ru/result?c=203&page=1"]
 
    rules = (
        Rule(SgmlLinkExtractor(allow=('/result\?c\=203\&page\=')), follow=True),
        Rule(SgmlLinkExtractor(allow=('\.html')), callback='parse_item'),
    )

    def parse_item(self, response):
        hxs = HtmlXPathSelector(response)
        l = OrphanLoader(OrphanageItem(), hxs)

        l.add_xpath('nazva', ".//*[@id='tabs-1']/div[4]/div[1]")
        l.add_xpath('adres', ".//*[@id='tabs-1']/div[4]/div[2]")
        l.add_xpath('email', ".//*[@id='tabs-1']/div[4]/div[3]")
        l.add_xpath('tel', ".//*[@id='tabs-1']/div[4]/div[4]")
        l.add_xpath('website', ".//*[@id='tabs-1']/div[4]/div[5]")
        l.add_xpath('razdel', ".//*[@id='tabs-1']/div[4]/div[6]")
        l.add_xpath('dodat2', ".//*[@id='tabs-1']/div[4]/div[7]")
        l.add_xpath('dodat3', ".//*[@id='tabs-1']/div[4]/div[8]")

        #l.add_value('url', response.url)

        return l.load_item()

а ето файл с уже готовым шаблоном xPatch путей, я правда парсил толкьо до уровня дивов, ибо там так организован сайт, что например в "див4" то емейл то телефон, зависит от количества указаных даных)
Всего: 79