我想要一个网页。你知道吗
url是https://land.3fang.com/LandAssessment/b6d8b2c8-bd4f-4bd4-9d22-ca49a7a2dc1f.html。你知道吗
这个网页将用javascript生成两个值。你知道吗
只需在文本框中输入5并按下红色按钮。你知道吗
将返回两个红色值。你知道吗
请参考下图。你知道吗
我试过使用pyqt5
、requests_html
和pyppeteer
。你知道吗
以下是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)
然而,结果不是空闲重启就是长时间没有响应。你知道吗
如何正确操作?你知道吗
非常感谢。你知道吗
因为您的页面是使用Javascript呈现的,所以您需要一个像selenium这样的web驱动程序来呈现Javascript内容。你知道吗
检查以下问题以及更好的现有答案 Web-scraping JavaScript page with Python
相关问题 更多 >
编程相关推荐