簡體   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