如何获得javascrip呈现的网页

2024-05-19 00:03:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我想要一个网页。你知道吗

url是https://land.3fang.com/LandAssessment/b6d8b2c8-bd4f-4bd4-9d22-ca49a7a2dc1f.html。你知道吗

这个网页将用javascript生成两个值。你知道吗

只需在文本框中输入5并按下红色按钮。你知道吗

将返回两个红色值。你知道吗

请参考下图。你知道吗

enter image description here

我试过使用pyqt5requests_htmlpyppeteer。你知道吗

以下是pyqt5的代码:

import sys
from PyQt5 import QtCore, QtWidgets, QtWebEngineWidgets
from bs4 import BeautifulSoup

class Render(QtWebEngineWidgets.QWebEnginePage):
    def __init__(self, url):
        self.html = ""
        self.first_pass = True
        self.app = QtWidgets.QApplication(sys.argv)
        super(Render, self).__init__()
        self.loadFinished.connect(self._load_finished)
        self.loadProgress.connect(print)
        self.load(QtCore.QUrl(url))
        self.app.exec_()

    def _load_finished(self, result):
        if result:
            self.call_js()

    def call_js(self):
        self.runJavaScript('document.getElementById("txtDistance").value = "5";')
        self.runJavaScript("void(0)")
        self.runJavaScript("CheckUserWhere();")
        self.toHtml(self.callable)

    def callable(self, data):
        self.html = data
        self.app.quit()

url = "https://land.3fang.com/LandAssessment/b6d8b2c8-bd4f-4bd4-9d22-ca49a7a2dc1f.html"
web = Render(url)
soup = BeautifulSoup(web.html, 'html.parser')
_bpgj = soup.find('b', {'id':"_bpgj"}).string
_bSumPrice = soup.find('b', {'id':"_bSumPrice"}).string
print(_bpgj, _bSumPrice)

然而,结果不是空闲重启就是长时间没有响应。你知道吗

如何正确操作?你知道吗

非常感谢。你知道吗


Tags: httpsimportselfappurl网页defhtml

热门问题