【问题标题】:How to find a request URL for the data you are looking for?如何找到您要查找的数据的请求 URL?
【发布时间】:2017-06-14 20:03:45
【问题描述】:

我遇到了与 this 帖子中的人类似的问题。我想创建一个函数,该函数获取 ratemyprofessor.com 教授的 url,并从所有 cmets 获取所有文本。但默认情况下,页面只显示前 20 个 cmets,然后您必须加载更多,以 20 个为一组。好的,所以现在,我需要创建一个函数,以最大次数加载 cmets,然后获取评论数据。不过,在查看了我在第一句话中引用的帖子后,我意识到我实际上可以从某个请求 url 中获取所有评论。

虽然我不太了解提出请求,但我尝试使用引用的帖子来连接这些点。我已经使用 chrome 开发工具来尝试查找涉及 cmets 的调用,但我无法找到将请求发送到的 url,或者真正传递给它以获得我想要的东西(所有 cmets特定教授)。

我不只是寻求答案,而是想通过在尝试查找请求 URL 并从中获取您想要的特定数据时寻求最佳实践来概括这篇文章。

1.我要查找的请求 URL 是什么?

2。如何导航以获取我的评论数据?

3.我自己能做些什么来发现这一点?

我正在使用 python、bs4 和 requests,正如引用的帖子所推荐的那样。

----- 编辑-----

如果我不清楚,我很抱歉,我知道如何用 bs4 解析 HTML。这是我的代码:

with requests.Session() as s:
    s.headers.update({"User-Agent": "Mozilla/5.0 (X11; Linux x86_64)"})
    soup = BeautifulSoup(s.get("http://www.ratemyprofessors.com/ShowRatings.jsp?tid=433738").content)
    yes = soup.find_all('p','commentsParagraph')

变量yes 包含页面上的所有cmets,这很好,但不是我想要的全部。有一个脚本可以构建和格式化所有注释块,并将 cmets 传递到块中。这些 cmets 是从某个地方请求的,我相信(基于引用的帖子)我可以向该地址发送请求,并获取所有 cmets。我要的是地址,以及伴随它获取所有 cmets 的代码(可能的各种查询)。

【问题讨论】:

  • 绝对没有办法回答这个问题。获取特定网站数据的 URL 将完全取决于该网站的编写方式。
  • @Padraic_Cunn​​ingham 如果你能看看我的帖子,我将不胜感激。

标签: python parsing beautifulsoup


【解决方案1】:
from bs4 import BeautifulSoup

import requests

url = "http://example.com" 
#var that stores url 
 
request_it = requests.get(url).text 
#using the .get method from the requests module to get the page 

soup = BeautifulSoup(request_it, 'html.parser') 
# args ( the html markup, parser ) as parser most common : html.parser, lxml
table = soup.find('table') 
#this will for example find one table tag and includes all tags within
one_tablerow = table.find('tr')
# it will find only one table row, we can use .findAll('tr') if we want ALL
print(one_tablerow.text) #This will only print the text, sometimes we use .string if error

基础知识:

  1. 使用 requests 模块下载页面的 HTML 标记

  2. 使用 BeautifulSoup 遍历标签并获取某些元素

    a) 最常见的做法是遍历树示例: soup.find('tag').h.p.a.text 例如,这将首先找到“标签”,然后是 .h 标签,然后是 .p 的子标签,然后是标签 .a 的子标签,例如<a href> 然后从该标签中提取文本。

了解 HTML 的基础知识也很重要,例如树术语和标签、根、子和父。

还有一件事,这是一个广泛的问题,您说您正在使用您提到的这些模块,例如requests, BeautifulSoup 但您并没有真正使用它们,因为您在问这些问题,因此,我强烈建议您至少观看每个内容的 1 小时,因为这比阅读文档更容易。但是,我之所以发布,是因为我希望这段代码至少能让您熟悉术语,并且当您运行这段代码时,您将探索更多......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-25
    • 2017-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-20
    相关资源
    最近更新 更多