我正在此网页上搜寻大学的名称,但是,我也想搜寻这些大学中的学院数,如果通过单击学院的名称来打开学院的特定网页,则可以使用该数量。
我应该在此代码后面附加什么才能得到结果。
结果应为[[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/