首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Scrapy递归抓取craigslist

Scrapy递归抓取craigslist
EN

Stack Overflow用户
提问于 2013-11-26 10:07:14
回答 2查看 669关注 0票数 0

我正在使用scrapy报废craigslist,并获得所有链接,转到该链接,存储每个页面的描述和回复电子邮件。现在我已经写了一个拼凑的脚本,它通过craigslist/sof.com获得所有的职位和urls。我想进入每个网址,并保存每个工作的电子邮件和描述。下面是我的代码:

代码语言:javascript
复制
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

你知道该怎么做吗?

EN

回答 2

Stack Overflow用户

发布于 2013-11-26 12:20:04

抓取函数应该产生(或返回) Item/sRequest/s

返回的项将根据配置进行pipelined,下一个爬行器步骤是通过返回一个带有对回调字段中函数的引用的请求来确定的

摘自scrapy文档:

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2016-07-19 05:10:17

根据他们的政策,抓取craigslist是非法的:

禁止

机器人、蜘蛛、脚本、刮刀、爬虫等

来源:https://www.craigslist.org/about/terms.of.use

现在他们的API是另一个问题了,但是每小时才更新一次(所以有一个小时的滞后时间)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20207260

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档