抓取网页数据工具(在线看电子书怎么办?电子书下载地址及分包处理方法)
优采云 发布时间: 2022-01-05 22:11抓取网页数据工具(在线看电子书怎么办?电子书下载地址及分包处理方法)
最近在网上看了一本电子书,但是因为太长,找不到下载地址,所以写了一个小工具在本地下载电子书。
总体思路:
1、抓取目录中各章节的名称和网址
2、遍历章节网址获取具体内容
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[^>]*>(?(?:(?!