繁体   English   中英

如何从加密网站抓取确切信息

[英]How to scrape EXACT information from a crypto website

我一直在开发一个网络爬虫来抓取 CoinEx 网站,这样我就可以在我的程序中进行比特币的实时交易。 我抓取了这个链接,我期待获得与 class_="ticker-item" 相关的所有信息,但返回的是“--”。 我认为这与抓取政策有关,但有没有办法绕过它。 喜欢模仿普通浏览器所拥有的任何东西。 我也尝试使用标题,但结果是一样的。 我的代码:

import requests
from bs4 import BeautifulSoup

url="https://coinex.com/exchange/btc-usdt"

headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.19582'}

r = requests.get(url,headers = headers)

soup = BeautifulSoup(r.content, "html5lib")

trades = soup.find_all("div", class_="ticker-item")

print(trades[0].div.text)

结果 :

--

问题似乎是您在浏览器中查看页面时看到的 html 与 BeautifulSoup 收到的 html 不同。 原因可能是代码项是使用 javascript 调用的,这是浏览器为您做的事情,但 BeautifulSoup 没有。

如果您想获取数据,最好找到他们的 api(如果有)。 否则,您可以使用检查查看网页,并查看网络选项卡。 在这里您可以找到网站从何处提取数据。 这将是一些挖掘,但在那里你应该能够找到另一个链接,这是网站获取数据的地方。 然后,您可以改用该链接。 数据也可能更容易以这种方式提取。

如果你想要一个快速而肮脏的方法,你可以使用requests-html模块。 这将为您呈现网页,包括所有脚本,因为它在引擎盖下使用网络浏览器。 因此,输出将与您在浏览器中打开网站时看到的 html 相同,并且您的提取方法应该在那里工作。 当然,这有很多开销,因为它会产生 webbrowser 进程,但它在某些情况下很有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM