2013-11-26 4 views
0

Я использую scrapy для регистрации scigslist и получения всех ссылок, перейдите по этой ссылке, сохраните описание для каждой страницы и отправьте письмо для ответа. Теперь я написал сценарий scrapy, который проходит через Craigslist/sof.com и получает все названия и URL-адреса. Я хочу войти в каждый URL-адрес и сохранить электронную почту и описание для каждой работы. Heres мой код:Scrapy recursively scraping craigslist

from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor 
from scrapy.spider import BaseSpider 
from scrapy.selector import HtmlXPathSelector 
from craigslist.items import CraigslistItem 

class MySpider(BaseSpider): 
    name = "craig" 
    allowed_domains = ["craigslist.org"] 
    start_urls = ["http://sfbay.craigslist.org/npo/"] 
    def parse(self, response): 
     hxs = HtmlXPathSelector(response) 
     titles = hxs.select("//span[@class='pl']") 
     for titles in titles: 
       title = titles.select("a/text()").extract() 
       link = titles.select("a/@href").extract() 
       desc = titles.select("a/replylink").extract 
       print link, title 

Любые идеи, как это сделать?

+0

Как это сделать? Что-то не так с вашим кодом или вам нужен больше кода? – rickhg12hs

+0

Мне нужно больше кода. Этот код в порядке. Я хочу переписать ссылку, а затем обмануть данные этих ссылок. – Scooby

ответ

1

Scrapy функция должна давать (или возврат) Item/s и Request/s

возвращенный деталь будет pipelined в соответствии с конфигурацией, следующий шаг паука определяется путем возврата запроса со ссылкой на функцию в области обратного вызова

из Scrapy документации:

def parse_page1(self, response): 
    return Request("http://www.example.com/some_page.html", 
         callback=self.parse_page2) 

def parse_page2(self, response): 
    # this would log http://www.example.com/some_page.html 
    self.log("Visited %s" % response.url) 
1

выскабливание Craigslist является незаконным в соответствии с их политикой:

роботы, пауки, скрипты, скребки, сканеры и т.д. запрещены

Источник: https://www.craigslist.org/about/terms.of.use

Теперь их API другой вопрос, однако, что только обновляется каждый час (так есть время задержки 1 час).

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