复式住宅,怎么使用 C# 爬取「我国图书网 - 计算机与互联网图书销量榜」!,sohu

admin 5个月前 ( 03-30 13:29 ) 0条评论
摘要: 每周一,我们会爬取「京东」、「当当」、「互动出版网」和「中国图书网」的图书7日销量数据并做一份榜单,已经持续一段时间了。...

每周一,咱们会爬取「京东」、「当当」、「互动出书网」和「我国图书网」的图书7日销量数据并做一份榜单,现已继续一段时间了,从后台阅览量的统计数据水理肌来看,对辅佐咱们选购计算机类书籍仍是有协助的。假如咱们对这份榜单有什么新的玩儿法,能够给我留言,彼此沟通,复式住所,怎样运用 C# 爬取「我国图书网 - 计算机与互联网图书销量榜」!,sohu挑选好的主意,我来写代码完成啊。

今日我就为咱们介绍一下怎样运用 C#言语 爬取「我国图书网 - 计算机与互联网图书销量榜」的数据。


首要,咱们来确认爬取网页的地址。

中图原网页

经过调查,咱们发现该热销榜由多个页面构成,第一页的网址复式住所,怎样运用 C# 爬取「我国图书网 - 计算机与互联网图书销量榜」!,sohu如下:

http://www.bookschina.com/24hour/27000000/7_0_1/

第二页的网址如下小小杰鼠标连点器:

http://www.bookschina.com/24hour/27000000/7_0_2/

可见,页码由最终一位数字决议,这样咱们就确认了爬取网页的 Url 地址。

其次,咱们看一下网页的 HTML 魔古命运符文源码,以便寻觅数据的详细位置。

中图源代码

从源码中,咱们能够发现图书的信息存放在 boolList 类的 li 标签内kboss名堂,经过遍历每个 li 标签内的数据咱们能够得到每本书的书名、作者、出书社数据。

最终,咱们挑选开源的 Jumony 东西,来获取所爬取网页的 半空儿HTML DOM TREE。该东西可在 Git 上下载,对应网址为:

https://github.com/Ivony/Jumony

Jumony下载

关于 Jumony 的运用,我在这儿就不详细说明晰,要是有读者对这套开源代码感兴趣,接下来我再写几篇图文来介绍这个东西。


剖析部分,到此就介绍完了,下面来看3u8935详细的代码完成。

1. 结构存储图书的结构 Book,包含销量排名,书名,作者,出书社等。

public class Book
{
///
/// 获取或设置 销量排名
///

public int Num { get; set; }
///
/// 获取或设置 书名
///

public string Title { get; set; }
///
/// 获取或设置 作者
///

public string Author { get; set; }
///
/// 获取或设置 出书社
///

public string Press { get; set; }
///
/// Book实例的格掌富贷式化输出
///

/// Markdown格局文本
public override string ToString()
{
string num = Num.ToString().PadLeft(2,复式住所,怎样运用 C# 爬取「我国图书网 - 计算机与互联网图书销量榜」!,sohu '0');
string temp = "**Top" + num + ":" + Title.Trim() + "**"
+ Environment.NewLine
+ "- 作 者:" + Author + Environment.NewLine
+ "- 出书社:" + Press;
return temp;
}
}

2. 依据网址,获取「我国图书网 - 计算机与互联网图书销量榜」网页的 HTML DOM TREE。

public static IHtmlDocument GetHtmlDocumentZt(int page)
{
stco风湿骨痛宁胶囊ring url = @"http://www.bookschina.com/24hour/27000000"
+ @"/7_0_"
+ page
+ @"/";
IHtmlDocument document;
try
{
documen我的金钱科技帝国t = new Jum秋花孽欲onyParser().LoadDocument(url);
}
catch
{
document = null;
}
return document;
}

3. 获取「我国图书网 - 计算机与互联网图书销量榜」的图书调集List

public static List GetBooksZt(int page)
{
IH弗萨卡tmlDocument doc = GetHtmlDocumentZt(page);
if (doc == null)
return null;
List result = ne麻藤康w List();
List lists = doc.Find(".bookList li").ToList();
int count = lists.Count <= 20 ? lists.Count : 20;
for (int i = 0; i < count; i++)
{
Book book = new Book();
book.Num = i + 1;
List title = lists[i].Find(".name a").ToList();
book.Title = title[0].InnerHtml().Trim(); //得到书的姓名
List author = lists[i].Find(".author a").ToList();
book.Author = author[0].InnerHtml().Trim(); //得到作者的李春生简历姓名
List press = lists[i].Find(".publisher a")复式住所,怎样运用 C# 爬取「我国图书网 - 计算机与互联网图书销量榜」!,sohu.ToList()谭润波长沙;
book.Press = press[0].InnerHtml(镇魂街张颌).Trim(); //得到出书者的姓名
result.Add(book);k968次列车时刻表
}
return result;
}

4. 获取「我国图书网 - 计算机与互联网图书销量榜」的 Markdow秋花孽欲n 格局文本。

private string GetReport(string name, List lst)
{
string result = Environment.NewLine + "---" + Envir合丰混的onment.NewLine复式住所,怎样运用 C# 爬取「我国图书网 - 计算机与互联网图书销量榜」!,sohu
+ "### " + name + Environment.NewLine;
for (int i = 0; i < lst.Count; i++)
{
result += Environment.NewLine + lst[i] + Environment.NewLine;
}
return 复式住所,怎样运用 C# 爬取「我国图书网 - 计算机与互联网图书销量榜」!,sohuresult;
}

5. 对 Markdown 格局文本进行 HTML 烘托。

烘托成果


到此为止,构成 每周一 推送图文的一切技能内容就悉数介绍完了,我做了一个 WinForm 硬起来窗体来集成这些代码。由所以辅佐自己写图文来用的复式住所,怎样运用 C# 爬取「我国图书网 - 计算机与互联网图书销量榜」!,sohu,姿态有些丑啊。勿厌弃!!!

今日就到这儿吧!See You!

软件截图

文章版权及转载声明:

作者:admin本文地址:http://www.foooood.cn/articles/613.html发布于 5个月前 ( 03-30 13:29 )
文章转载或复制请以超链接形式并注明出处竞技宝_csgo竞技宝_竞技宝app