如何通过杂乱无章的方式从后续网址获取数据

时间:2015-02-11 14:26:22

标签: python scrapy scrapy-spider

我想从这个网站获取数据:http://www.go-on.fi/tyopaikat与Scrappy。 我可以从此页面获取数据,当您单击第一列标题时,href将移动到另一个页面。 我的问题是如何引导蜘蛛深入到例如这个链接:http://www.go-on.fi/tyopaikat/oulu/11414并从那里获取信息。 所以这是我现在的代码:

class JobDataSpider(CrawlSpider):
    name = "jobdata"
    allowed_domains = ["go-on.fi"]

    start_urls = ["http://www.go-on.fi/tyopaikat?start=0",
                  "http://www.go-on.fi/tyopaikat?start=20",
                  "http://www.go-on.fi/tyopaikat?start=40",
                  "http://www.go-on.fi/tyopaikat?start=60"
                  ]

    def parse(self, response):
        hxs = HtmlXPathSelector(response)
        items = []
        jobs = hxs.select("//tr")

        for row in jobs:
            item = JobData()
            item['title'] = row.select("./td[1]/a/text()").extract()
            item['link'] = row.select("./td[1]/a/@href").extract()
            item['location'] = row.select("./td[2]/text()").extract()

1 个答案:

答案 0 :(得分:1)

您需要为第一页上找到的每个URl生成Request(url)。这样的事情应该有效:

class JobDataSpider(CrawlSpider):
    name = "jobdata"
    allowed_domains = ["go-on.fi"]

    start_urls = ["http://www.go-on.fi/tyopaikat?start=0",
                  "http://www.go-on.fi/tyopaikat?start=20",
                  "http://www.go-on.fi/tyopaikat?start=40",
                  "http://www.go-on.fi/tyopaikat?start=60"
                ]

    def parse(self, response):
        hxs = HtmlXPathSelector(response)

        links = hxs.xpath("//tr/td[1]/a/@href").extract()
        for l in links:
            yield Request(l, callback=self.parse_pages)

    def parse_pages(self, response):
        hxs = HtmlXPathSelector(response)
        item = JobData()
        item['link'] = response.url
        etc....