【问题标题】:How to retrieve onclick text?如何检索点击文本?
【发布时间】:2010-12-01 19:35:38
【问题描述】:

在网页中我有这些元素:

<a href="#" onClick="window.open('/link.php?webpage=45980a6f91ac0c850745e0500d612172" class="pagelink" >Page 1</a>
<a href="#" onClick="window.open('/link.php?webpage=45980a6f91ac0c850745e05676787895" class="pagelink" >Page 2</a>
<a href="#" onClick="window.open('/link.php?webpage=45980a6f91ac0c85786787666456fgg3" class="pagelink" >Page 3</a>
<a href="#" onClick="window.open('/link.php?webpage=45980a6f91ac0c850734234324756767" class="pagelink" >Page 4</a>
...

.

我需要在“pagelink”类的所有A标签的window.open函数中检索文本:

/link.php?webpage=45980a6f91ac0c850745e0500d612172
/link.php?webpage=45980a6f91ac0c850745e05676787895
/link.php?webpage=45980a6f91ac0c85786787666456fgg3
/link.php?webpage=45980a6f91ac0c850734234324756767

如何用 python 做到这一点?

【问题讨论】:

  • 您正在从您的onClick 调用PHP 脚本;你知道,从 Python 中读取可能很难......
  • @chrisaycock:是的,这也让我很困惑,直到我意识到他正在解析 source 脚本,而不是正在运行的页面。对问题进行一点澄清会有所帮助。

标签: python python-3.x


【解决方案1】:
from html.parser import HTMLParser

class MyHTMLParser(HTMLParser):

    def handle_starttag(self, tag, attrs):
        attr = dict(attrs)
        if attrs["class"] == "pagelink":
            add_to_result(attrs["onclick"])

用您的聚合对象(例如列表)和实际代码替换 add_to_result,然后从结果中删除前导 window.open

【讨论】:

    【解决方案2】:

    这个问题已经回答了here。您需要解析 HTML 以获取您可能需要的 任何 数据。解析是用 Beautiful Soup 完成的。

    当然有人可能会按原样发布代码,但这并不好玩,对吧?

    同样,您必须阅读文档:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-20
      • 1970-01-01
      • 2011-01-30
      • 2023-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多