如何从后续的url中获取数据

2024-04-20 00:25:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我想从这个网站获取数据:http://www.go-on.fi/tyopaikat与刮痧。 当您单击第一列标题时,我可以从该页获取具有href move to another page的数据。 我的问题是如何引导spider深入到例如这个链接: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()

Tags: httpgoonresponsewwwextractitemselect
1条回答
网友
1楼 · 发布于 2024-04-20 00:25:36

您需要为第一页上找到的每个url生成请求(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....

相关问题 更多 >