我正在此网页上搜寻大学的名称,但是,我也想搜寻这些大学中的学院数,如果通过单击学院的名称来打开学院的特定网页,则可以使用该数量。

我应该在此代码后面附加什么才能得到结果。
结果应为[[name1,faculty1),(name2,faculty2),...]的形式

import scrapy
class QuotesSpider(scrapy.Spider):
    name = "student"
    start_urls = [
        'http://www.engineering.careers360.com/colleges/list-of-engineering-colleges-in-karnataka?sort_filter=alpha',
    ]

    def parse(self, response):
        for students in response.css('li.search-result'):
            yield {
                'name': students.css('div.title a::text').extract(),
            }

最佳答案

import scrapy
class QuotesSpider(scrapy.Spider):
    name = "student"
    start_urls = [
        'http://www.engineering.careers360.com/colleges/list-of-engineering-colleges-in-karnataka?sort_filter=alpha',
    ]

    def parse(self, response):
        for students in response.css('li.search-result'):
            req = scrapy.Request(students.css(SELECT_URL), callback=self.parse_student)
            req.meta['name'] = students.css('div.title a::text').extract()
            yield req

    def parse_student(self, response):
        yield {
            'name': response.meta.get('name')
            'other data': response.css(SELECTOR)
        }


应该是这样的。
因此,您可以在请求的元数据中发送学生的姓名。
这样您就可以在下一个请求中请求它。

如果您在parse_student中抓取的最后一页上也有该数据,则您可能要考虑不将其发送到元数据中,而只是从最后一页抓取。

关于python - 如何从我们正在搜寻的网页上的链接网页中搜寻数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44476674/

10-11 13:26