首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >需要帮助来抓取网页

需要帮助来抓取网页
EN

Stack Overflow用户
提问于 2020-12-20 19:49:18
回答 1查看 168关注 0票数 1

我开始了一个迷你项目,我想检索硬币名称,价格,硬币市值,流通供应和第一页前100枚硬币的数量。到目前为止,(在问了几个问题并得到了很好的输入之后)我能够检索到第一页上的所有硬币名称。然而,对于价格,我只能得到前11个名字,而硬币市值我什么也得不到。我真的很想收集数据,这样我就可以开始做一些数据分析了,但我总是碰壁。谁能再给我指个方向??我知道有一个api,但我想扩展我的知识。

代码语言:javascript
运行
复制
import requests
from lxml import html
from selenium import webdriver

url = "https://coinmarketcap.com/"

driver = webdriver.Chrome()

driver.get(url)

coin_name = [name.text for name in driver.find_elements_by_xpath('//td[3]/a[@class="cmc-link" and starts-with(@href, "/currencies/")]')]
print(coin_name)
print(len(coin_name))
price = [p.text for p in driver.find_elements_by_xpath('//td[4]/div/a[@class = "cmc-link" and contains(@href, "/markets/")]')]
print(price)
print(len(price))

market_cap = [m.text for m in driver.find_elements_by_xpath('//p[@class = "cmc-link" and contains(@style, "white-space:nowrap")]//p[@color="text"]')]

print(len(market_cap))
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-20 20:32:58

需要将图元滚动到视图中。只要继续向下发送页面就行了。

代码语言:javascript
运行
复制
import time

import requests
from lxml import html
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

url = "https://coinmarketcap.com/"

driver = webdriver.Chrome(executable_path='C:/chromedriver.exe')

driver.get(url)
driver.maximize_window()
for i in range(22):
    coin_name = driver.find_elements_by_xpath('//td[3]/a[@class="cmc-link" and starts-with(@href, "/currencies/")]')

    prices = driver.find_elements_by_xpath('//td[4]/div/a[@class = "cmc-link" and contains(@href, "/markets/")]')

    market_caps = driver.find_elements_by_xpath('//p[@class="sc-1eb5slv-0 kDEzev"]')
    
    html = driver.find_element_by_tag_name('html')
    html.send_keys(Keys.PAGE_DOWN)
    for coin, price, cap in zip(coin_name, prices, market_caps):
        print("Coin :", coin.text, "Price :", price.text, "Market_caps:", cap.text)

输出:-

代码语言:javascript
运行
复制
CETH Price : $648.10 Market cap : $435,982,385,626
Coin : XRP
XRP Price : $0.573805 Market cap : $73,825,115,056
Coin : Tether
USDT Price : $1.00 Market cap : $26,053,047,457
Coin : Litecoin
LTC Price : $117.47 Market cap : $20,302,149,320
Coin : Bitcoin Cash
BCH Price : $350.85 Market cap : $7,768,463,654
Coin : Chainlink
LINK Price : $13.34 Market cap : $6,526,170,500
Coin : Cardano
ADA Price : $0.163470 Market cap : $5,300,831,845
Coin : Binance Coin
BNB Price : $34.82 Market cap : $5,085,969,556
Coin : Polkadot
DOT Price : $5.25 Market cap : $5,027,979,819
Coin : Stellar
XLM Price : $0.178429 Market cap : $4,683,566,948
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65379546

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档