使用HtmlAgilityPack抓取Ethereum Tokens信息

简介: 使用HtmlAgilityPack抓取Ethereum Tokens信息 class Program { static void Main(string[] args) { try {...

使用HtmlAgilityPack抓取Ethereum Tokens信息

    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                for (int i = 1; i <= 11; i++)
                {
                    string url = "https://etherscan.io/tokens?p="+i;
                    HtmlWeb webClient = new HtmlWeb();
                    HtmlDocument doc = webClient.Load(url);

                    var tbody = doc.DocumentNode.SelectSingleNode("//*[@id='ContentPlaceHolder1_divresult']/table/tbody");
                    var trItems = tbody.SelectNodes("tr");
                    foreach (var tr in trItems)
                    {
                        try
                        {
                            var tdItems = tr.SelectNodes("td");
                            string id = tdItems[0].SelectSingleNode("b//span").InnerHtml.Replace(" ", "");
                            string contractAddress = tdItems[1].SelectSingleNode("a").Attributes["href"].Value.Replace("/token/", "");
                            string tokenLogo = "https://etherscan.io" + tdItems[1].SelectSingleNode("a/img").Attributes["src"].Value;
                            string temp = tdItems[2].SelectSingleNode("h5/a").InnerHtml;
                            string tokenName = temp.Substring(0, temp.IndexOf(" "));
                            string tokenSymbol = temp.Substring(temp.IndexOf("(") + 1, temp.IndexOf(")") - temp.IndexOf("(") - 1);
                            string tokenDescribe = tdItems[2].SelectSingleNode("small/font").InnerHtml;

                            string tokenUrl = "https://etherscan.io/token/" + contractAddress;
                            HtmlWeb webtokenClient = new HtmlWeb();
                            HtmlDocument tokendoc = webtokenClient.Load(tokenUrl);
                            string tokenDecimal = tokendoc.DocumentNode.SelectSingleNode("/html[1]/body[1]/div[1]/div[5]/div[1]/div[2]/table[1]/tr[2]/td[2]").InnerHtml.Replace("\n", "");
                            Console.WriteLine($"{id}\t{contractAddress}\t{tokenSymbol}\t{tokenDecimal}\t{tokenName}\t{tokenLogo}\t{tokenDescribe}\t");
                        }
                        catch (Exception ex)
                        {

                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
            Console.Read();
        }
    }

博客内容仅代表个人观点,如发现阐述有误,麻烦指正,谢谢!
目录
相关文章
|
3月前
|
缓存 前端开发 数据可视化
Webpack Bundle Analyzer:深入分析与优化你的包
Webpack Bundle Analyzer是一款可视化工具,帮助分析Webpack构建结果,找出占用空间较大的模块以便优化。首先需安装Webpack和Webpack Bundle Analyzer,接着在`webpack.config.js`中配置插件。运行Webpack后,会在`dist`目录生成`report.html`,展示交互式图表分析包大小分布。为优化可采用代码分割、Tree Shaking、压缩插件、加载器优化、模块懒加载、代码预热、提取公共库、使用CDN、图片优化、利用缓存、避免重复模块、使用Source Maps、优化字体和图标、避免全局样式污染以及优化HTML输出等策略。
132 3
|
6月前
|
数据采集 API C#
网页解析高手:C#和HtmlAgilityPack教你下载视频
使用C#和HtmlAgilityPack解析小红书网页,下载其视频内容。文章涵盖了解析网页、获取视频链接、C#实现、HtmlAgilityPack简化解析、代理IP确保下载稳定及多线程提高下载效率。提供的代码示例展示了如何设置代理和多线程下载视频。实验结果显示,该方法能有效、高效地下载小红书视频。
123 5
网页解析高手:C#和HtmlAgilityPack教你下载视频
攻防世界simple-unpack
攻防世界simple-unpack
|
6月前
|
XML 存储 开发框架
c#教你网站数据轻松解析抓取,HtmlAgilityPack解析的奇妙之处
c#教你网站数据轻松解析抓取,HtmlAgilityPack解析的奇妙之处
214 0
|
11月前
|
数据采集 开发框架 前端开发
使用C#和HtmlAgilityPack打造强大的Snapchat视频爬虫
Snapchat作为一款备受欢迎的社交媒体应用,允许用户分享照片和视频。然而,由于其特有的内容自动消失特性,爬虫开发面临一些挑战。本文将详细介绍如何巧妙运用C#和HtmlAgilityPack库,构建一个高效的Snapchat视频爬虫。该爬虫能够从Snapchat网页版中提取视频链接,并将其下载保存到本地。为了提升爬虫的效率和可靠性,我们将使用代理IP技术和多线程技术,以规避Snapchat的反爬机制。
|
开发框架 移动开发 前端开发
如何使用C#和HTMLAgilityPack抓取网页
HTMLAgilityPack是一款备受欢迎的用于解析和操作HTML文档的库。在使用之前,开发者需要考虑一些优缺点。下面是一些值得注意的优点: 1. 强大的错误容忍性 2. 灵活的API 3. 广泛的应用场景 然而,也有一些缺点需要考虑: 1. 性能问题 2. 对最新HTML特性的支持限制 3. 可能存在依赖和冲突
126 0
webpack原理篇(五十四):Tapable是如何和webpack进行关联起来的?
webpack原理篇(五十四):Tapable是如何和webpack进行关联起来的?
68 0
webpack原理篇(五十四):Tapable是如何和webpack进行关联起来的?
|
JSON JavaScript 数据格式
HackerNews05-通过使用url模块的parse方法获取用户get提交的数据|学习笔记
快速学习 HackerNews05-通过使用url模块的parse方法获取用户get提交的数据
HackerNews05-通过使用url模块的parse方法获取用户get提交的数据|学习笔记
|
Web App开发 前端开发
webpack4.0各个击破(8)—— tapable篇
webpack作为前端最火的构建工具,是前端自动化工具链最重要的部分,使用门槛较高。本系列是笔者自己的学习记录,比较基础,希望通过问题 + 解决方式的模式,以前端构建中遇到的具体需求为出发点,学习webpack工具中相应的处理办法。
1588 0
|
Web App开发 自然语言处理 前端开发
node.js爬虫应用——前端程序员的词典command-translator
虽然高考英语考了135分,大学英语四级也过了,可到现在,写了两年代码,经常在写一个变量的时候,想半天也想不出来对应的英文单词是什么,总不能很可 (sha) 爱(bi) 的去用拼音吧,最后还是只能去求助有道了。虽然说打开有道网页,然后输入词语翻译不算太麻烦,担保每次都这样,总觉得不够方便,也不够逼格。
1937 0