【问题标题】:Python requests: post javascript commandsPython 请求:发布 javascript 命令
【发布时间】:2019-03-14 00:53:30
【问题描述】:

所以,我正在尝试获取网站的内容,但该内容仅在我单击“图表”链接时出现,这是一个像这样的 javascript 命令:

javascript:__doPostBack('fcc1$dgrC$ctl02$ctl00',''

来自这样的元素:

<a href="javascript:__doPostBack(&#39;fcc1$dgrC$ctl02$ctl00&#39;,&#39;&#39;)">Chart</a>

这是网站:

enter image description here

当您点击“图表”时会发生这种情况:

enter image description here

您可以看到链接没有改变,因此获取图表代码的唯一方法是通过某种方式发送该 javascript 命令

如何找到所有图表链接? 如何在图表链接上进行“虚拟点击”? 之后如何获取新的html?

非常感谢您的帮助!

【问题讨论】:

    标签: javascript python python-3.x web-scraping python-requests


    【解决方案1】:

    doPostBack 只设置 __EVENTTARGET 和 __EVENTARGUMENT 表单字段并提交表单。顺便说一句,那些 ' 只是引号。

    【讨论】:

    • 什么?以及如何使用请求来做到这一点?
    • 这是一个 POST 请求。将 __EVENTTARGET 设置为 fcc1$dgrC$ctl02$ctl00 并将 __EVENTARGUMENT 设置为空字符串
    【解决方案2】:

    如果这些链接确实被 javascript 侦听器“点击”了,您可能很难找到真正的点击链接。

    相反,您可以使用工具在 python 中模拟 Web 浏览器,然后“单击”该链接以进入下一页。我用过的最好的是机械汤:https://mechanicalsoup.readthedocs.io/en/stable/introduction.html

    【讨论】:

    • 嘿 Vikas,谢谢你的建议! “图表”链接有一个模式:
    • 第一个是1,第二个是2
    • 我现在如何模拟这个点击?
    猜你喜欢
    • 2020-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多