网页信息抓取软件(在线看电子书怎么办?电子书下载地址及分包处理方法)
优采云 发布时间: 2022-01-15 19:03网页信息抓取软件(在线看电子书怎么办?电子书下载地址及分包处理方法)
最近,我在网上阅读了一本电子书。由于篇幅太长,找不到下载地址,写了一个小工具,将电子书下载到本地。
总体思路:
1、在目录中获取每章的名称和网址
2、遍历章节URL获取具体内容
3、将章节URL分包给多线程处理
4、对处理后的内容重新排序,按章节名排序
5、将内容写入 TXT 文件
先抓取导航页内容,通过WebRequest对象获取网页内容
///
/// 通过链接地址获取HTML内容
///
///
///
private static string GetHtml(string url)
{
string html = "";
try
{
WebRequest request = WebRequest.Create(url);
request.Credentials = CredentialCache.DefaultCredentials;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream stream = response.GetResponseStream();
StreamReader reader = new StreamReader(stream, encoding);
html = reader.ReadToEnd();
reader.Close();
stream.Close();
response.Close();
}
catch
{
}
return html;
}
通过正则表达式获取章节地址和名称
<p>///
/// 获取所有链接地址
///
///
private static Dictionary GetAllUrl(string html)
{
string titlePattern = @"第(?\d+)节";
Dictionary dictRet = new Dictionary();
string pattern = @"]*?href=(['""]?)(?[^'""\s>]+)\1[^>]*>(?(?:(?!