如何使用python从无限滚动网页中提取值?

时间:2018-03-17 08:10:16

标签: python web-scraping python-requests pyquery

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

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

1 个答案:

答案 0 :(得分:0)

您使用的是不会出现在网页源中的类名。最可能的原因是页面使用javascript从服务器加载数据或在加载页面后更改DOM以添加有问题的类名。

由于请求库和您正在使用的pyquery库都没有javascript引擎来复制该专长,因此您将获得不包含tv-screener__symbol的原始静态html。

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

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

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

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