繁体   English   中英

Python 收集链接后面的 URL

[英]Python Collect URLS behind Links

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

有没有办法可以使用 Python 实际收集这些 URL? 谢谢。

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

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:

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, {})
  })
}

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

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")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM