如何解决从数据中抓取表格后拆分字符串
我正在从网页中抓取数据,想看看是否有一种简单的方法来分隔字符串。总长度是 100 种不同的山寨币,包含名称、价格、流通供应和数量供应。名称包含名称和总和。
例如:比特币BTC 目标:把名字和符号分开,所以我只得到名字
价格有美元符号 例如:1.00 美元 目标:分离美元符号,所以我只得到值
流通量供应有价有符号
例如:1,000,000 BTC 目标:分开所以我只得到价值
我可以这样做,但问题是抓取是在循环中完成并存储在字典中。然后我在循环之外创建一个数据框。
coin_name = coin_name.split('\n')[0]
prices = prices.split('$')[1]
market_caps = market_caps.split('$')[1]
cir_sup = cir_sup.split()[0]
volume_sup = volume_sup.split()[0]
这是在循环内:
results = [{"Alt coin name": coin.text,"Price": price.text,"Market cap": cap.text,"Circulating supply":cir.text,"Volume": vol.text} for coin,price,cap,cir,vol in zip(coin_name,prices,market_caps,cir_sup,volume_sup)]
解决方法
数据由 GET Restful API 调用填充。
import requests
session = requests.Session()
URI = "https://web-api.coinmarketcap.com/v1/cryptocurrency/listings/latest"
params = dict(
start=101,limit=100,sort='market_cap',sort_dir='desc',convert='USD',cryptocurrency_type='all',aux='circulating_supply,max_supply,total_supply'
)
headers = {'User-Agent': ('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) '
'AppleWebKit/537.36 (KHTML,like Gecko) '
'Chrome/39.0.2171.95 Safari/537.36'),'Content-Type': 'application/json'}
session.headers.update(headers)
# probably you can put this in a while-loop and call it every N-time
# as the data updates
r = session.get(URI,params=params)
data = r.json()
print(data)
使用 BeautifulSoup
from bs4 import BeautifulSoup
import requests
URL = 'https://coinmarketcap.com/1/'
r = requests.get(URL)
soup = BeautifulSoup(r.text,'lxml')
table = soup.find('table')
#columns = ' '.join([item.get_text(',') for item in table.find('thead').find_all('tr')]).split(',')
rows = [i.split(',') for i in [item.get_text(',') for item in table.find('tbody').find_all('tr')]]
print(rows)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。