前言:打算做一个药材价格查询的功能,但刚开始一点数据都没有靠自己找信息录入的话很麻烦的,所以只有先到其它网站抓取存到数据库再开始做这个了。HtmlAgilityPack在c#里应该很多人用吧,简单又强大。之前也用它做过几个爬取信息的小工具。不过很久了源代码都没有了,都忘了怎么用了 ...
前言:打算做一个药材价格查询的功能,但刚开始一点数据都没有靠自己找信息录入的话很麻烦的,所以只有先到其它网站抓取存到数据库再开始做这个了。
HtmlAgilityPack在c#里应该很多人用吧,简单又强大。之前也用它做过几个爬取信息的小工具。不过很久了源代码都没有了,都忘了怎么用了,这次也是一点一点找资料慢慢做出来的!
(不过最麻烦的是将数据存到mysql,.net数据库我一直用的都是mssql,所以第一次做连接mysql遇到了好多问题。)
1、使用HtmlAgilityPack
- 下载HtmlAgilityPack类库,并引用到你的项目
我这里使用的控制台项目
项目添加引用
代码里添加引用
2、分析网页
- 网页地址:http://www.zyctd.com/jiage/1-0-0-0.html
首先看每一页的url变化,观察后发现这个很简单:
第一页就是:1-0-0或者1-0-0-1表示第一页
第二页就是:1-0-0-2一次类推
- 然后再分析他的源代码
很明显这一页的数据都放在了ul标签里了,而且还有类名:<ul >,
然后再看下ul下的li标签,li标签里的html写的也都相同,然后就可以开始写代码抓取了。
3、抓取信息
- 首先新建一个类文件,来存储抓取的信息。因为我是直接存到数据库用的是ado.net实体数据模型生成的文件。
- 下面是ado.net实体数据模型生成的文件:
//------------------------------------------------------------------------------// <auto-generated>// 此代码已从模板生成。//// 手动更改此文件可能导致应用程序出现意外的行为。// 如果重新生成代码,将覆盖对此文件的手动更改。// </auto-generated>//------------------------------------------------------------------------------namespace 测试项目1{ using System; using System.Collections.Generic; public partial class C33hao_price { public long ID { get; set; } public string Name { get; set; } public string Guige { get; set; } public string Shichang { get; set; } public decimal Price { get; set; } public string Zoushi { get; set; } public decimal Zhouzd { get; set; } public decimal Yuezd { get; set; } public decimal Nianzd { get; set; } public int editDate { get; set; } public string other { get; set; } }}
原标题:使用HtmlAgilityPack爬取网站信息并存储到mysql
关键词:MYSQL
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。