【问题标题】:Python - Downloading page's HTML when it shares a URL with multiple other pagesPython - 在与多个其他页面共享 URL 时下载页面的 HTML
【发布时间】:2017-03-16 02:10:58
【问题描述】:

我目前正在使用 python 编写一个程序,该程序将从我大学的班级注册网站上抓取数据,以便在某个班级的座位开放时通知我。

我使用 selenium 来导航各种下拉菜单和文本输入框。我可以成功访问我想要访问的页面,但是从页面到页面,URL 的内容并不是唯一的。

例如,您选择所需主题的页面是https://wl11gp.neu.edu/udcprod8/NEUCLSS.p_class_select。如果我要选择,比如说,英文写作 URL 变为https://wl11gp.neu.edu/udcprod8/NEUCLSS.p_class_search

无论我选择英语写作、数学、生物还是任何科目,这都是一样的。因此,如果我使用 requests 模块下载页面的 HTML,我会收到 404 错误消息。

有没有什么方法可以在不提供URL的情况下下载当前页面的HTML?

提前感谢您的帮助!

【问题讨论】:

  • 如果您检查 p_class_select 的 html,您会看到一个带有 action="NEUCLSS.p_class_search" 和 method="post" 的表单。这就是您需要模拟的内容:使用所需数据对 p_class_search 的 POST 请求,不是下载/GET 请求。
  • 有趣,我刚开始使用 python,所以我必须阅读 POST 请求以及如何以这种方式操作 HTML。感谢您的快速回复!
  • @Prunechi 你试过driver.current_url吗?

标签: python python-2.7 python-3.x selenium python-requests


【解决方案1】:

通常,您会以不同的方式格式化数据,但为了让您快速上手,这里是您使用 python-requests 的方式。

import requests

# all data here is the default except sel_subj=ACC
requests.post("https://wl11gp.neu.edu/udcprod8/NEUCLSS.p_class_search", data="sel_day=dummy&STU_TERM_IN=201754&sel_subj=dummy&sel_attr=dummy&sel_schd=dummy&sel_camp=dummy&sel_insm=dummy&sel_ptrm=dummy&sel_levl=dummy&sel_instr=dummy&sel_seat=dummy&p_msg_code=You+must+select+a+term.&sel_crn=&sel_subj=ACC&sel_crse=&sel_title=&sel_attr=%25&sel_levl=%25&sel_schd=%25&sel_insm=%25&sel_from_cred=&sel_to_cred=&sel_camp=%25&sel_ptrm=%25&sel_instr=%25&begin_hh=0&begin_mi=0&begin_ap=a&end_hh=0&end_mi=0&end_ap=a")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-01
    • 2013-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-27
    • 1970-01-01
    相关资源
    最近更新 更多