当前位置:首页 » 《资源分享》 » 正文

(二)requests爬取智能合约账户地址及其交易记录_DUYIDONG105的博客

10 人参与  2021年10月14日 11:03  分类 : 《资源分享》  评论

点击全文阅读


1 背景

​ 之前使用Selenium爬取 https://eth.btc.com/accounts 上的账户地址及其交易记录,但是运行时间很长,而且老报一些错误,所以想到换一种方式来爬取智能合约。

2 方法

  • 先对其抓包,获取请求路径和参数
  • 循环构造参数
  • 使用requests.get(url, params).json()请求获取数据并使用json方法序列化结果
  • 处理获取到的数据并将其写入文件

3 步骤

(1)抓包

在这里插入图片描述
在这里插入图片描述

通过分析,获取请求地址和参数,发现只有page和size两个参数。

(2)构造参数 获取数据

A.txt中是爬取的一些账户地址,通过账户地址跟上图中的请求url组合形成请求地址来获取其交易记录

A.txt部分数据示例:

外部地址,1,https://eth.btc.com/accountinfo/0x00000000219ab540356cbb839cbe05303d7705fa,0x00000000219ab540356cbb839cbe05303d7705fa,7513890.00007 ETH,152468
合约地址,2,https://eth.btc.com/accountinfo/0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2,0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2,6942619.43722 ETH,2774885
外部地址,3,https://eth.btc.com/accountinfo/0xbe0eb53f46cd790cd13851d5eff43d12404d33e8,0xbe0eb53f46cd790cd13851d5eff43d12404d33e8,2296896.46551 ETH,963
外部地址,4,https://eth.btc.com/accountinfo/0x73bceb1cd57c711feac4224d062b0f6ff338501e,0x73bceb1cd57c711feac4224d062b0f6ff338501e,1899046.59613 ETH,320

代码:

import requests

headers = {
    'Cookie': 'OCSSID=4df0bjva6j7ejussu8al3eqo03',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36(KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36',
}


def getManyPages(address, total):
    params = []
    for i in range(1, int(total / 500) + 2):
        params.append({"page": i, "size": 500})
    url = 'https://explorer-web.api.btc.com/v1/eth/accounts/' + address + '/txns'
    print('正在爬取', url, '...')
    data = []
    for i in params:
        print(i)
        json = '$$'
        try:
            json = requests.get(url, params=i, allow_redirects=False, headers=headers).json()
        except:
            continue
        finally:
            if json != '$$':
                data.append(json.get('data'))
    print('爬取结束!', url)
    print('================================================================================================')
    return data


# 获取哈希值地址和总共的条数
def getAddressAndTotal():
    res = []
    with open('../data/A.txt', 'r', encoding='utf-8') as f:
        for line in f.readlines():
            sp = line.split(',')
            res.append({
                'address': sp[3],
                'total': int(str(sp[5]).strip())
            })
    return res


if __name__ == '__main__':
    addrTotal = getAddressAndTotal()  # 获取A.txt中的url和total总数
    for at in addrTotal:
        dataList = getManyPages(at.get('address'), at.get('total'))
        with open('../data/req.txt', 'a', encoding='utf-8') as f:
            for r in dataList:
                for d in r.get('list'):
                    f.write(str(d))
                    f.write('\n')


点击全文阅读


本文链接:http://m.zhangshiyu.com/post/29868.html

地址  获取  请求  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 山海不相逢内容精选(温逸尘沈衿)_山海不相逢内容精选(温逸尘沈衿)
  • (番外)+(全书)霍沉洲沈青禾此去经年人未还(霍沉洲沈青禾)_(霍沉洲沈青禾此去经年人未还)列表_笔趣阁(霍沉洲沈青禾)
  • (番外)+(全书)霍沉洲沈青禾(此去经年人未还霍沉洲沈青禾)完结_(霍沉洲沈青禾)列表_笔趣阁(此去经年人未还霍沉洲沈青禾)
  • 「重回八零,拒绝替嫁冲喜」章节彩蛋限时释出‌_卫东玉兰苏夏人气小说未删减节选
  • 重生七零祁同伟不再是农民儿子结局+番外纯净版全书免费重生七零祁同伟不再是农民儿子结局+番外纯净版全书免费
  • 傅雅宁的神女老婆,却在背地承欢作乐顾尘傅雅宁全书在线
  • 全文神女老婆,却在背地承欢作乐全局(顾尘傅雅宁)列表_全文神女老婆,却在背地承欢作乐全局
  • (番外)+(全书)此去经年人未还全书+番外+后续免费下载_(沈青禾霍沉洲)此去经年人未还全书+番外+后续列表_笔趣阁(沈青禾霍沉洲)
  • 完结文毁容的姐姐和瞎眼的我离开后,姜家两兄弟悔哭了+后续列表_完结文毁容的姐姐和瞎眼的我离开后,姜家两兄弟悔哭了+后续(林梦婉)
  • 妻子辱我爸受贿自杀,我掏出一等军功章节选推荐_[陈素云辰朋友]小说精彩章节分享
  • 全书浏览苔藓爬满旧日诺言新上(顾砚廷慕晚夏)_苔藓爬满旧日诺言新上(顾砚廷慕晚夏)全书结局
  • 顾尘傅雅宁(神女老婆,却在背地承欢作乐+后续+结局)结局_(顾尘傅雅宁神女老婆,却在背地承欢作乐+后续+结局全书结局)结局列表_笔趣阁(顾尘傅雅宁)

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1