0

我对 python 比较陌生,想看看是否有任何方法可以废弃 RatemyProfessor 网站的检查元素部分。我的目标是获取仅位于该区域的所有教授 ID。

尝试获取我尝试过的代码时..

import requests

r = requests.get('http://www.ratemyprofessors.com/search.jsp?queryBy=schoolId&schoolName=California+State+University%2C+Northridge&schoolID=163&queryoption=TEACHER')

print (r.text)

但遗憾的是只收到了源页面信息,没有提供id信息。 id 位于 Inspect Element 部分,我想知道是否有一个我只是没有看到的特殊链接可以帮助我提取这些数据

这是一个大学项目,如果有人好奇,任何建议都会有所帮助!

再次感谢!

更新 感谢您的所有反馈,我非常感谢,但我仍然不明白如何通过源代码链接获取元素信息的逻辑

在这里,我放置了指示我所看到内容的箭头,我的“requests.get”中的链接提供了左侧的代码,我的目标是找到一个 url,或者能够提取右侧信息的东西.

我真的很想了解发生了什么,以及解决此问题的正确方法,如果有人可以向我解释如何实现这一目标的过程,我将不胜感激。

再次感谢大家的贡献,我真的很感激!

4

2 回答 2

1

请注意:从他们的网站上抓取数据是违反 Rate My Professors TOS的。你可能想放弃这个项目。

于 2018-09-04T15:47:33.507 回答
0

我没有测试,但你可以使用 lib beautifulSoup 来解析 hml 代码,然后找到所有具有类 'result-list' 的 div 并使用所有 'li' html 代码创建一个 find_all。现在您可以获取该 li 的 id,拆分结果并获取最后一个位置。像这样的东西:

import requests
from bs4 import BeautifulSoup

r = requests.get('http://www.ratemyprofessors.com/search.jsp?queryBy=schoolId&schoolName=California+State+University%2C+Northridge&schoolID=163&queryoption=TEACHER')
page = BeautifulSoup(r.content, 'html.parser')
for divtag in soup.find_all('div', {'class': 'result-list'}):
    for litag in ultag.find_all('li'):
        print litag.text

我没有测试我的代码,但逻辑就是这样。

于 2018-08-30T13:48:46.160 回答