【发布时间】:2018-08-07 23:54:59
【问题描述】:
我在 python 中编写了一个脚本,以从 javascript 呈现的网页中获取最后一笔交易的价格。如果我选择使用selenium,我可以获得内容。我的目标是不使用任何浏览器模拟器,如selenium 或其他东西,因为最新版本的Requests-HTML 应该能够解析javascript 加密内容。但是,我无法成功。当我运行脚本时,我收到以下错误。对此的任何帮助将不胜感激。
网站地址:webpage_link
我尝试过的脚本:
import requests_html
with requests_html.HTMLSession() as session:
r = session.get('https://www.gdax.com/trade/LTC-EUR')
js = r.html.render()
item = js.find('.MarketInfo_market-num_1lAXs',first=True).text
print(item)
这是完整的回溯:
Exception in callback NavigatorWatcher.waitForNavigation.<locals>.watchdog_cb(<Task finishe...> result=None>) at C:\Users\ar\AppData\Local\Programs\Python\Python36-32\lib\site-packages\pyppeteer\navigator_watcher.py:49
handle: <Handle NavigatorWatcher.waitForNavigation.<locals>.watchdog_cb(<Task finishe...> result=None>) at C:\Users\ar\AppData\Local\Programs\Python\Python36-32\lib\site-packages\pyppeteer\navigator_watcher.py:49>
Traceback (most recent call last):
File "C:\Users\ar\AppData\Local\Programs\Python\Python36-32\lib\asyncio\events.py", line 145, in _run
self._callback(*self._args)
File "C:\Users\ar\AppData\Local\Programs\Python\Python36-32\lib\site-packages\pyppeteer\navigator_watcher.py", line 52, in watchdog_cb
self._timeout)
File "C:\Users\ar\AppData\Local\Programs\Python\Python36-32\lib\site-packages\pyppeteer\navigator_watcher.py", line 40, in _raise_error
raise error
concurrent.futures._base.TimeoutError: Navigation Timeout Exceeded: 3000 ms exceeded
Traceback (most recent call last):
File "C:\Users\ar\AppData\Local\Programs\Python\Python36-32\experiment.py", line 6, in <module>
item = js.find('.MarketInfo_market-num_1lAXs',first=True).text
AttributeError: 'NoneType' object has no attribute 'find'
Error in atexit._run_exitfuncs:
Traceback (most recent call last):
File "C:\Users\ar\AppData\Local\Programs\Python\Python36-32\lib\shutil.py", line 387, in _rmtree_unsafe
os.unlink(fullname)
PermissionError: [WinError 5] Access is denied: 'C:\\Users\\ar\\.pyppeteer\\.dev_profile\\tmp1gng46sw\\CrashpadMetrics-active.pma'
我想要的价格显示在页面顶部,可以像 177.59 EUR Last trade price 这样看到。我希望得到177.59 或任何当前价格。
【问题讨论】:
-
会不会是因为
render函数没有返回结果对象,但结果对象仍然是r?如果你这样做r.html.search(...)会发生什么? -
没有改善。我尝试使用
.search()并收到此错误AttributeError: 'NoneType' object has no attribute 'search。
标签: python python-3.x web-scraping python-requests python-requests-html