【问题标题】:Python Collect URLS behind LinksPython收集链接后面的URL
【发布时间】:2020-06-29 02:06:44
【问题描述】:

我有几个网站,每个网站都有链接。在这些链接后面,当我将鼠标悬停在链接上时,我可以在状态栏中看到一些 URL。我需要使用 Python 获取这些链接。当我查看页面源代码时,“href”没有显示这些链接,这表明它们是使用 Javascript 显示的。

有没有一种方法可以让我使用 Python 真正收集这些 URL?谢谢。

【问题讨论】:

  • 您能否提供一个 URL,我们可以在其中看到实际行为?
  • 当然 - 这里是:financials.psx.com.pk 一件事:您必须从左侧的下拉列表中选择一些公司,然后您可以看到报告列下的链接。理想情况下,我想下载所有公司的财务报告。所以请让我知道是否有办法为所有公司一次性完成。谢谢。
  • 嗨 Ahsan,您觉得我的回答有帮助吗?您需要更多帮助吗?
  • 是的,您的回答确实如此。它帮助我取得了进步。尽管我提出了另一个查询来实际完成任务。在这里:stackoverflow.com/questions/62643016/…

标签: javascript html python-3.x


【解决方案1】:

使用浏览器的开发人员工具,您可以检查按钮元素并查看它们是否绑定到onClick 执行函数getCompYData。这个函数定义为:

function getCompYData(t, a, b) {
  $("#yearlySmbData").empty(), $("#mheader").html(b), $.post("annQtrStmts.php", {
    name: "get_comp_y_data",
    smbCode: t,
    year: a
  }, function(t) {
    obj = JSON.parse(t), $("#yearlySmbData").createTable(obj, {})
  })
}

通过使用 name 字符串、smbCode(例如 AABS)和年份(例如 2020)对 annQtrStmts.php 执行 HTTP POST 请求,您应该能够访问相应的文件。

请记住,这样做可能违反本网站的条款和条件。

编辑:根据更新后的问题,您实际上希望查看此函数:

function getCompData() {
  var t = $("#country").val();
  $(".nav-link").removeClass("active"), $("#yearlyData").empty(), $("#annRpt").html("Financial Reports <br><br>" + $("#country option:selected").text() + " ( " + t + " )"), $.post("annQtrStmts.php", {
    name: "get_comp_data",
    smbCode: t
  }, function(t) {
    obj = JSON.parse(t), $("#yearlyData").createTable(obj, {})
  })
}

端点是相同的,但在这种情况下,您传递的是不同的字符串并且没有年份。

【讨论】:

    【解决方案2】:
    import requests
    from bs4 import BeautifulSoup
    
    def getMyUrl(*arg):
    #     print(arg)
        for _ in arg:
            if requests.head(_).status_code == 200:
                soup = BeautifulSoup(requests.get(_).text, "html.parser")
                for a_tag in soup.findAll("a"):
                    print(a_tag.attrs.get("href"))
    
    #Use this like
    
    if __name__ == "__main__":
        getMyUrl("https://www.google.com", "https://example.com")
    

    【讨论】:

      猜你喜欢
      • 2013-12-20
      • 2023-03-14
      • 1970-01-01
      • 2014-04-02
      • 2019-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-09-29
      相关资源
      最近更新 更多