从隐藏html元素的网站表中获取信息的最佳方法是什么?

问题描述 投票:0回答:1

[有一个网站保存有关大学所有课程的信息。如果可能的话,我想从此站点检索此信息。

http://coursefinder.utoronto.ca/course-search/search/courseSearch?viewId=CourseSearch-FormView&methodToCall=start

该网站在搜索栏下方包含每个部门的链接。如果单击链接,则会出现一个表格,其中包含属于各自部门的所有课程。我检查了页面源代码,每个课程的元素都是隐藏类型。如果单击其中一门课程,则会打开一个新标签,其中会显示该课程的所有信息。

课程链接示例如下:

http://coursefinder.utoronto.ca/course-search/search/courseInquiry?methodToCall=start&viewId=CourseDetails-InquiryView&courseId=LTE299Y1Y20199#.XgF_dUdKhPY

我注意到,通过更改courseId属性,我们可以获取任何课程的信息,并且由于html没有被隐藏,因此可以轻松地抓取数据。

[我最初的想法是,我可以抓取每个部门的链接,然后为每个部门获取所有课程ID,导航到每个课程的显示页面并获取信息。

主要问题是,由于我们正在为每门课程加载新页面,因此导航到每门课程的链接都很慢。由于有成千上万的课程,因此总共将花费大量时间。

我知道我所要求的可能是不可能的,但是我能以更快的方式获取所有课程的信息吗?是否可以访问数据库(无凭据),或者获取信息的javascript或任何其他形式?

java html database web-scraping
1个回答
0
投票

进一步了解您的原始想法:

搜索***将返回所有可用的课程。结果是分页的,但如果查看“开发人员工具”>“网络”选项卡,则可以直接看到JSON,它会在1个请求中加载完整的结果(由@αԋɱҽԃ-αмєяιcαη给出的较早链接)。

http://coursefinder.utoronto.ca/course-search/search/courseSearch?viewId=CourseSearch-FormView&methodToCall=start#search

您将需要某种类型的刮板(BeautifulSoup?),只需循环通过 courseID页面,然后提取所需的字段并将其附加到文件中。

http://coursefinder.utoronto.ca/course-search/search/courseInquiry?methodToCall=start&viewId=CourseDetails-InquiryView&courseId= ACMB01H3F20199

© www.soinside.com 2019 - 2024. All rights reserved.