0

我无法从该网站提取任何数据。此代码适用于其他网站。此外,如果注册用户向下滚动,该网站是可扩展的。如何从此类网站的表中提取数据?

from pyquery import PyQuery as pq
import requests

url = "https://uk.tradingview.com/screener/"
content = requests.get(url).content
doc = pq(content)
Tickers = doc(".tv-screener__symbol").text()

Tickers
4

1 回答 1

0

您正在使用未出现在页面源中的类名。最可能的原因是页面使用 javascript 从服务器加载数据或在页面加载后更改 DOM 以添加相关类名。

由于您使用的 requests 库和 pyquery 库都没有 javascript 引擎来复制该功能,因此您会得到不包含 tv-screener__symbol 的原始静态 html。

要解决这个问题,请查看您实际从服务器收到的文档,并尝试在您收到的原始 HTML 文档中找到您感兴趣的数据:

...
content = requests.get(url).content
print(content)

(或者您可以在浏览器中查看数据,但您必须关闭 Javascript 才能看到与 Python 相同的文档)

如果数据不在原始 HTML 中,您必须查看 javascript 以了解它如何向服务器后端发出请求以加载数据,然后使用您的 python 请求库复制该请求。

于 2018-03-17T08:30:23.007 回答