Пользователь пока ничего не рассказал о себе

Достижения

Все достижения (1)

Наибольший вклад в теги

Все теги (5)

Лучшие ответы пользователя

Все ответы (5)
  • Scrapy: Response, Request - как получить значение?

    ehles
    @ehles
    Делаем запрос примерно так:
    import json
    from scrapy.contrib.spiders import CrawlSpider
    
    class my_super_spider(CrawlSpider):
        start_urls = ["http://domain.com"]
        url = "http://domain.com/?postcode=123&sku=blablabla"
        def parse(self, response):
            # Тут можно распарсть response (ответ на запрос из start_urls) или просто нагенерить
            # новых запросов, или и то и другое.
            yield Request(url, callback=self.parse_my_url)
        def parse_my_url(self, response):
            # Если сайт отдает ответ в виде json то так:
            data_from_json = json.loads(response.body)
            # Если сайт отдает html то так:
            # xpath можно узнать в панели отладки хрома (правой кнопкой мышки на элементе), например:
            xpath_name = '//*[@id="global"]/div/table/tbody/tr/td[%(col)s]/table/tbody/tr/td/a/text()'
            hxs = HtmlXPathSelector(response)
            column = 100500
            data_from_html = hxs.select(xpath_name % {'col': column}).extract()
            
            # Далее "собираем" items и сохраняем в БД или ещё куда там у вас..


    по комментариям в коде должно стать всё понятно.

    P.S. как делать тут хорошо описано: doc.scrapy.org/en/latest/topics/spiders.html

    P.P.S. Эмулировать куки, со scrapy не надо, он всё сам делает (конечно, если надо, доступ к ним получить можно).
    Ответ написан
    Комментировать

Лучшие вопросы пользователя

Все вопросы (1)