新書推薦:
《
伟大民族:从路易十五到拿破仑的法国史(方尖碑)
》
售價:HK$
193.2
《
古今“书画同源”论辨——中国书法与中国绘画的关系问题兼中国画笔墨研究
》
售價:HK$
135.7
《
《日本文学史序说》讲演录
》
售價:HK$
74.8
《
无尽的海洋:美国海事探险与大众文化(1815—1860)
》
售價:HK$
102.4
《
治盗之道:清代盗律的古今之辨
》
售價:HK$
125.4
《
甲骨文丛书·剑桥世界暴力史(第一卷):史前和古代世界(套装全2册)
》
售價:HK$
210.6
《
甲骨文丛书·中华早期帝国:秦汉史的重估
》
售價:HK$
300.2
《
欲望与家庭小说
》
售價:HK$
101.2
|
內容簡介: |
本书基于C#语言介绍网络爬虫开发的基本原理、技巧和应用实例,适合网络爬虫开发的爱好者和研究者阅读。读者最好具备一定的编程基础,或者正在学习C#编程,以便更好地理解本书的内容。本书具有以下特点:1)内容简明、由浅入深。本书不追求内容上的面面俱到,而是围绕网络爬虫的核心环节,介绍其基本原理和实现方法,并进行适当的功能扩展。与其他同类书籍相比,本书篇幅适中,适合初学者阅读。2)实例丰富,代码翔实。书中尽量选择逻辑简明、功能完整的典型实例,从需求、设计、实现的角度分别进行介绍。而且,几乎所有实例都给出了主要实现代码,并对关键代码进行了详细注释,方便读者进行实践。
|
目錄:
|
目 录前言第1章 网络爬虫概述11.1 网络基础11.1.1 网络的基本概念11.1.2 HTTP61.1.3 会话机制111.2 网页知识141.2.1 HTML141.2.2 CSS171.2.3 JavaScript201.3 网络爬虫的原理221.3.1 网络爬虫概述221.3.2 Robots协议251.3.3 网络爬虫框架29第2章 C#编程基础312.1 C#语言概述312.1.1 C#与.NET框架312.1.2 开发环境332.1.3 语言生态372.2 数据和运算402.2.1 C#数据类型402.2.2 常用运算符452.3 流程控制502.3.1 分支结构512.3.2 循环结构542.4 常用数据结构562.4.1 字符串562.4.2 数组602.4.3 列表622.4.4 字典65第3章 网络资源下载703.1 同步下载703.1.1 网页下载703.1.2 编码检测723.1.3 参数设置763.2 异步下载833.2.1 实现方式833.2.2 性能分析853.3 通用资源下载器 863.3.1 下载器的设计863.3.2 下载器的实现88第4章 网页数据抽取954.1 正则表达式抽取954.1.1 正则表达式简介954.1.2 使用Regex类974.2 XPath抽取1004.2.1 XPath简介1004.2.2 使用HtmlAgilityPack1034.3 HTML解析器1074.4 综合实例:新闻资讯爬虫1104.4.1 爬虫设计1104.4.2 爬虫实现111第5章 其他数据抽取1195.1 XML数据抽取1195.1.1 XML简介1195.1.2 使用System.Xml1205.2 JSON数据抽取1235.2.1 JSON简介1235.2.2 使用Newtonsoft.Json1255.3 综合实例1:天气爬虫1285.3.1 问题描述与分析1285.3.2 爬虫设计1315.3.3 爬虫实现1315.4 综合实例2:音乐爬虫1365.4.1 问题描述1365.4.2 逆向分析1385.4.3 爬虫设计1415.4.4 爬虫实现143第6章 数据存储1506.1 数据的维度1506.2 文件存储1516.2.1 低维数据存储1516.2.2 高维数据存储1546.3 数据库存储1586.3.1 MySQL的安装和配置1586.3.2 将数据存入MySQL162第7章 爬虫控制1677.1 爬虫搜索方式1677.1.1 深度优先搜索1677.1.2 广度优先搜索1717.1.3 性能分析1727.2 爬虫控制器1757.2.1 控制器设计1757.2.2 控制器的实现1767.2.3 实时控制器1797.3 综合实例:站内文章爬虫1837.3.1 爬虫设计1837.3.2 爬虫实现1857.3.3 爬虫测试186第8章 多线程爬虫1898.1 多线程机制1898.1.1 Thread对象1898.1.2 BackgroundWorker控件1928.1.3 系统线程池1948.2 多线程爬虫1978.2.1 实现方法1978.2.2 性能对比1998.3 自定义线程池2028.3.1 线程池设计2028.3.2 线程池实现2038.3.3 性能测试2068.4 多线程爬虫控制器2078.4.1 多线程控制器实现2078.4.2 访问序列分析210第9章 使用代理2139.1 代理机制2139.1.1 使用WebProxy对象2139.1.2 使用全局代理2159.2 自定义代理池2179.2.1 代理池设计2179.2.2 代理池实现218第10章 模拟浏览器22510.1 浏览器的工作原理22510.1.1 网页解析过程22510.1.2 常见的浏览器内核22610.2 使用浏览器内核22610.2.1 Trident内核22610.2.2 Gecko内核23110.3 综合实例:网页翻译爬虫24010.3.1 问题描述24010.3.2 爬虫设计24110.3.3 爬虫实现24210.3.4 算法改进247第11章 可视化模板配置25011.1 可视化模板配置方法25011.1.1 抽取原理25011.1.2 模板表示25311.1.3 可视化配置25411.2 综合实例:可视化网页文章 爬虫25911.2.1 爬虫设计25911.2.2 爬虫实现260参考文献264
|
內容試閱:
|
前 言虽然Python爬虫依靠强大的第三方库能够快速实现某些特定功能,但由于这些库封装的层次较高,隐藏了大量内部细节,使用者往往知其然而不知其所以然,遇到问题难以延展。学习基于C#的爬虫开发虽然起步稍慢,但能够更好地理解底层网络原理和爬虫架构;借助强大的VS平台和C#优秀的语言特性,更容易开发出专业级的可视化爬虫工具。相对于Python的“人生苦短”,我们追求的是“诗和远方”。本书基于C#语言介绍网络爬虫开发的基本原理、技巧和应用实例,适合网络爬虫开发的爱好者和研究者阅读。读者要是具备一定的编程基础,或者正在学习C#编程,能更好地理解本书的内容。本书具有以下特点:1)内容简明、由浅入深。本书不追求内容上的面面俱到,而是围绕网络爬虫的核心环节,介绍其基本原理和实现方法,并进行适当的功能扩展。与其他同类书籍相比,本书篇幅适中,适合初学者阅读。2)实例丰富,代码翔实。书中尽量选择逻辑简明、功能完整的典型实例,从需求、设计、实现的角度分别进行介绍。而且,几乎所有实例都给出了主要实现代码,并对关键代码进行了详细注释,方便读者进行实践。全书共分11章。第1章介绍网络爬虫的基础知识,包括网络、网页和爬虫概述;第2章简要介绍C#编程,并侧重与网络爬虫相关的内容;第3章介绍网络资源下载的方法,并实现通用资源下载器;第4章介绍网页数据抽取的方法,重点实现HTML解析器;第5章介绍XML和JSON数据抽取的方法,从而获得更丰富的目标数据;第6章介绍爬虫数据的存储,从而将采集结果保存到文件或数据库;第7章介绍网络爬虫的搜索方式,包括深度优先搜索和广度优先搜索,并实现爬虫控制器;第8章介绍多线程爬虫,并实现自定义线程池以提高爬虫效率;第9章介绍如何使用代理服务器,并实现自定义代理池;第10章介绍常见的浏览器内核,以及如何使用GeckoFx模拟浏览器获取深层数据;第11章介绍抽取模板的表示、管理以及可视化配置方法。由于网站更新,一段时间后实例中的某些URL链接可能会失效,部分网页结构也会发生变化,此时相关实例需要做相应的代码调整才能正确运行。技术是中立的,本书所述内容仅用于技术交流,任何人若将相关技术用于商业或其他用途,需自行承担由此产生的影响和后果。致谢在本书即将出版之际,首先感谢我的合作者种惠芳老师,种老师专业过硬、认真负责,承担了大量撰写工作;特别感谢恩师张克亮教授一直以来对我的指导和鼓励;感谢易绵竹教授、马延周副教授、唐亮副教授、王亚利副教授对本书提出的许多宝贵意见;感谢任静静老师、张婷老师、沈丽民老师、王帅鸽老师参与了本书初稿的校对。最后,感谢我的妻子赵盼,她对家庭双倍的付出才让我有时间完成本书。限于作者的学识,书中难免有表述不当或疏漏之处,恳请各位读者指正。李健2022年5月
|
|