【.net】获取网页CDM的下载链接的地址
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Framework.Core.Crawl;
using HtmlAgilityPack; namespace WebCaptureSolution
{
static class Program
{
/// <summary>
/// 应用程序的主入口点。
[DllImport("urlmon.dll", CharSet = CharSet.Ansi)]
private static extern int UrlMkSetSessionOption(int dwOption, string pBuffer, int dwBufferLength, int dwReserved); const int URLMON_OPTION_USERAGENT = 0x10000001; const string SPUserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36";
[STAThread] static void Main(string[] args)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
string log_url = "http://www.handsupowo.pl/member.php?action=login"; string url1 = "http://www.handsupowo.pl/archive/index.php?forum-13.html";
List<string> aList = new List<string>();
List<string> lastinfo = new List<string>(); var form = new WebCapture(); form.DocumentOK = false;
#region ログイン
if (!string.IsNullOrEmpty(SPUserAgent))
{
UrlMkSetSessionOption(URLMON_OPTION_USERAGENT, SPUserAgent, SPUserAgent.Length, 0);
}
form.Navigate(log_url);
while (!form.DocumentOK)
{
Application.DoEvents();
} //step 1 login
var s = form.WebBrowser.Document.GetElementById("content");
var input = s.GetElementsByTagName("input"); for (int i = 0; i < input.Count; i++)
{
var p = input[i];
if (p.OuterHtml.Contains("username"))
{
p.SetAttribute("value", "id");
}
else if (p.OuterHtml.Contains("pass"))
{
p.SetAttribute("value", "password");
}
else if (p.OuterHtml.Contains("submit"))
{
p.InvokeMember("Click");
break; } }
var startTime = System.DateTime.Now;
while ((System.DateTime.Now - startTime).TotalSeconds <= 10)
{
Application.DoEvents();
}
// System.IO.File.WriteAllText(form.SavePath, form.WebBrowser.Document.GetElementsByTagName("html")[0].OuterHtml, System.Text.Encoding.UTF8);
// step 2
#endregion
form.DocumentOK = false; form.Navigate(url1);
while (!form.DocumentOK)
{
Application.DoEvents();
}
HtmlAgilityPack.HtmlDocument htmldoc = new HtmlAgilityPack.HtmlDocument();
htmldoc.LoadHtml(form.WebBrowser.Document.GetElementsByTagName("html")[0].OuterHtml);
// div[contains(@class,'ads-creative')]
var anodes = htmldoc.DocumentNode.SelectNodes("//div[@class='threadlist']//a");
foreach (var tn in anodes)
{
aList.Add(tn.Attributes["href"].Value);
}
// 循环访问a
foreach (var cdmurl in aList)
{
form.DocumentOK = false; form.Navigate(cdmurl);
while (!form.DocumentOK)
{
Application.DoEvents();
}
startTime = System.DateTime.Now;
while ((System.DateTime.Now - startTime).TotalSeconds <= 5)
{
Application.DoEvents();
}
htmldoc.LoadHtml(form.WebBrowser.Document.GetElementsByTagName("html")[0].OuterHtml);
var downloadurl = htmldoc.DocumentNode.SelectNodes("//a[@rel='nofollow']");
var info = htmldoc.DocumentNode.SelectSingleNode("//div[@id='fullversion']//a");
if (downloadurl == null)
{
downloadurl = htmldoc.DocumentNode.SelectNodes("//a[@target='_blank']"); }
List<string> dllist = new List<string>();
if (downloadurl.Count == 1)
{
dllist.Add(info.InnerText);
dllist.Add(downloadurl[0].Attributes["href"].Value);
}
else
{
foreach (var dl in downloadurl)
{
if (dllist.Count == 0)
{
dllist.Add(info.InnerText); }
else
{
dllist.Add(dl.Attributes["href"].Value);
} } } lastinfo.Add(string.Join(Environment.NewLine, dllist.ToArray()));
lastinfo.Add(Environment.NewLine); } System.IO.File.WriteAllLines(@"D:\Nodejs\myjs\DownLoadUrl.txt", lastinfo.ToArray(), Encoding.UTF8); }
}
}
【.net】获取网页CDM的下载链接的地址的更多相关文章
- 使用htmlparse爬虫技术爬取电影网页的全部下载链接
昨天,我们利用webcollector爬虫技术爬取了网易云音乐17万多首歌曲,而且还包括付费的在内,如果时间允许的话,可以获取更多的音乐下来,当然,也有小伙伴留言说这样会降低国人的知识产权保护意识,诚 ...
- 【Python项目】简单爬虫批量获取资源网站的下载链接
简单爬虫批量获取资源网站的下载链接 项目链接:https://github.com/RealIvyWong/GotDownloadURL 1 由来 自己在收集剧集资源的时候,这些网站的下载链接还要手动 ...
- 使用htmlparser爬虫技术爬取电影网页的全部下载链接
昨天,我们利用webcollector爬虫技术爬取了网易云音乐17万多首歌曲,而且还包括付费的在内,如果时间允许的话,可以获取更多的音乐下来,当然,也有小伙伴留言说这样会降低国人的知识产权保护意识,诚 ...
- C# 网络编程之webBrowser获取网页url和下载网页中图片
该文章主要是通过C#网络编程的webBrowser获取网页中的url并简单的尝试瞎子啊网页中的图片,主要是为以后网络开发的基础学习.其中主要的通过应用程序结合网页知识.正则表达式实现浏览.获取url. ...
- 一篇文章教会你利用Python网络爬虫获取电影天堂视频下载链接
[一.项目背景] 相信大家都有一种头疼的体验,要下载电影特别费劲,对吧?要一部一部的下载,而且不能直观的知道最近电影更新的状态. 今天小编以电影天堂为例,带大家更直观的去看自己喜欢的电影,并且下载下来 ...
- 使用selenium的方式获取网页中图片的链接和网页的链接,来判断是否是死链(二)
上一篇使用Java正则表达式来判断和获取图片的链接以及跳转的网址,这篇使用selenium的自带的API(getAttribute)来获取网页中指定的内容 实现内容:获取下面所有图片的链接地址以及跳转 ...
- Java正则表达式获取网页所有网址和链接文字
; pos1= urlContent.indexOf(strAreaBegin)+strAreaBegin.length(); pos2=urlContent.inde ...
- 生成Ipa安装包的plist文件后生成下载链接
假设生成的plist文件的下载链接是: https://www.xx.com/download/xx.plist 那么如果想让苹果手机的浏览器点击后开始下载苹果软件包,则网页中的下载链接需要拼接成 i ...
- 获取youku视频下载链接(wireshark抓包分析)
随便说两句 前两天写了一个python脚本,试图以分析网页源码的方式得到优酷视频的下载地址,结果只得到视频的纯播放地址,下载纯播放地址得到的文件也无法正常播放视频. 这里共享一下播放地址得到的方法(想 ...
随机推荐
- requests+beautifulsoup爬取豆瓣图书
使用Xpath和BeautifulSoup来解析网页可以说真的很简便. import requests from bs4 import BeautifulSoup from random import ...
- codeforces 793B - Igor and his way to work(dfs、bfs)
题目链接:http://codeforces.com/problemset/problem/793/B 题目大意:告诉你起点和终点,要求你在只能转弯两次的情况下能不能到达终点.能就输出“YES”,不能 ...
- 愚人节CDACMFinal
这个啊,愚人节的ACM之赛,其实还是很有意思的.之前因为星期天不能休息还怨声载道,但真的打起来了就是觉得特别有意思. 我们队,最开始乱搞电脑,cmd都没有办法调用了,霎时间十分慌张(而且我过于慌张忘了 ...
- 1.C和C++的区别
C和C++的区别 C语言语法简单,但使用不易 C++语法非常庞大复杂,但使用方便,更注重的是它的编程思想(面向对象). 一.第一个C++程序 1.文件扩展名 C++源文件扩展名 .cpp,C ...
- Docker:使用Jenkins构建Docker镜像
Docker 彭东稳 1年前 (2016-12-27) 10709次浏览 已收录 0个评论 一.介绍Jenkins Jenkins是一个开源项目,提供了一种易于使用的持续集成系统,使开发者从 ...
- SQL Server 关于CROSS APPLY 和 OUTER APPLY应用
先看看语法: <left_table_expression> {cross|outer} apply<right_table_expression> 再让我们了解一下appl ...
- InfluxDB、grafana、collect部署监控(centos6.8)
collect部署 1.安装 yum install collectd -y 2.配置/etc/collectd.conf LoadPlugin network <Plugin network& ...
- iPhone电源键坏了怎么开机和关机?
一.开机 1.将USB数据线插到iPhone上,此时先不要将另一头插到电脑上 2.长按Home键不要动 3.将数据线的另一头插到电脑上 这时iPhone就会自动开机 二.关机 1.进入设置找到“通用” ...
- linux 更改文件夹所有者
更改“tp5”文件的所有者为”www” chown -R tp5/ www 修改目录及其子目录的用户组为“www” chgrp -R www tp5 同时更改文件或目录的所有者和用户组 chown - ...
- Postfix - Extmail 邮箱系统
Postfix Dovecot Extmail 邮箱系统早前的内部邮箱系统重新整理下:现在Extmail官方有集成镜像的EMOS_1.6_x86_64免费版:可直接下载安装: 系统环境: linux ...