精华内容
下载资源
问答
  • 本文告诉大家如何模拟登陆csdn,这个方法可以用于模拟登陆其他网站

    本文告诉大家如何模拟登陆csdn,这个方法可以用于模拟登陆其他网站。

    我们可以使用下面代码让 HttpClient 使用 Cookie ,有了这个才可以保存登陆,不然登陆成功下次访问网页还是没登陆。

                CookieContainer cookies = new CookieContainer();
    
                HttpClientHandler handler = new HttpClientHandler();
                handler.CookieContainer = cookies;
                HttpClient http = new HttpClient(handler);

    虽然已经有Cookie,但是还缺少一些请求需要带的头,因为浏览器是会告诉网站,需要的Accept,为了假装这是一个浏览器,所以就需要添加AcceptAccept-Encoding Accept-Language User-Agent

    添加 Accept

    下面的代码可以添加Accept,这里后面的字符串可以自己使用浏览器查看,复制。

                http.DefaultRequestHeaders.TryAddWithoutValidation("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");

    添加 Accept-Encoding

                http.DefaultRequestHeaders.TryAddWithoutValidation("Accept-Encoding", "gzip, deflate, br");
    

    如果有 gzip 就需要解压,这个现在不太好弄,建议不要加。

    添加 Accept-Language

                http.DefaultRequestHeaders.TryAddWithoutValidation("Accept-Language", "zh-CN,zh;q=0.8");
    

    添加 User-Agent

    http.DefaultRequestHeaders.TryAddWithoutValidation("User-Agent", "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36");

    更多User-Agent请看win10 uwp 如何让WebView标识win10手机

    ContentType

    如果设置 ContentType 需要在发送的内容进行添加

                content = new StringContent("{\"loginName\":\"lindexi\",\"password\":\"csdn\",\"autoLogin\":false}")
                {
                    Headers = { ContentType = new MediaTypeHeaderValue("application/json") }
                };

    发送数据

    如果需要使用 Post 或 get 发送数据,那么可以使用HttpContent做出数据,提供的类型有StringContentFormUrlEncodedContent等。

    其中StringContent最简单,而FormUrlEncodedContent可以自动转换。

                str = $"username={account.UserName}&password={account.Key}&lt={lt}&execution={execution}&_eventId=submit";
                str = str.Replace("@", "%40");
    
                HttpContent content = new StringContent(str, Encoding.UTF8);

    上面代码就是使用 StringContent 可以看到需要自己转换特殊字符,当然一个好的方法是使用 urlencoding 转换。

    如果使用FormUrlEncodedContent就不需要做转换

              content=new FormUrlEncodedContent(new List<KeyValuePair<string, string>>()
                {
                    new KeyValuePair<string, string>("username",account.UserName),
                    new KeyValuePair<string, string>("password",account.Key),
                    new KeyValuePair<string, string>("lt",lt),
                    new KeyValuePair<string, string>("execution",execution),
                    new KeyValuePair<string, string>("_eventId","submit")
                });

    如果需要上传文件,那么需要使用MultipartFormDataContent

                content = new MultipartFormDataContent();
                ((MultipartFormDataContent)content).Headers.Add("name", "file1");
    
                ((MultipartFormDataContent)content).Headers.Add("filename", "20170114120751.png");
                var stream = new StreamContent(await File.OpenStreamForReadAsync());
                ((MultipartFormDataContent)content).Add(stream);

    登陆方法

    打开 https://passport.csdn.net/account/login 可以看到这个界面

    右击查看源代码,可以拿到上传需要使用的两个变量 lt 和 execution

    在登陆的时候,使用 post 把账号密码、lt execution 上传就可以登陆

    模拟登陆csdn

    于是下面就是模拟登陆

    1. 获得账号信息

          AccountCimage account = AppId.AccoutCimage;
      
    2. cookie

          CookieContainer cookies = new CookieContainer();
      
          HttpClientHandler handler = new HttpClientHandler();
          handler.CookieContainer = cookies;
          HttpClient http = new HttpClient(handler);
      
    3. 获得登陆需要的流水号

          var url = new Uri("https://passport.csdn.net/account/login");
      
          http.DefaultRequestHeaders.TryAddWithoutValidation("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
          //http.DefaultRequestHeaders.TryAddWithoutValidation("Accept-Encoding", "gzip, deflate, br");
          http.DefaultRequestHeaders.TryAddWithoutValidation("Accept-Language", "zh-CN,zh;q=0.8");
          http.DefaultRequestHeaders.TryAddWithoutValidation("User-Agent", "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36");
      
      
          handler.UseCookies = true;
          handler.AllowAutoRedirect = true;
      
          string str = await http.GetStringAsync(url);
          Regex regex = new Regex(" type=\"hidden\" name=\"lt\" value=\"([\\w|\\-]+)\"");
          var lt = regex.Match(str).Groups[1].Value;
          regex = new Regex("type=\"hidden\" name=\"execution\" value=\"(\\w+)\"");
          var execution = regex.Match(str).Groups[1].Value;
      
    4. 登陆

          str = $"username={account.UserName}&password={account.Key}&lt={lt}&execution={execution}&_eventId=submit";
          str = str.Replace("@", "%40");
      
          HttpContent content = new StringContent(str, Encoding.UTF8);
      
      
          str = await content.ReadAsStringAsync();
          content=new FormUrlEncodedContent(new List<KeyValuePair<string, string>>()
          {
              new KeyValuePair<string, string>("username",account.UserName),//.Replace("@", "%40")),
              new KeyValuePair<string, string>("password",account.Key),
              new KeyValuePair<string, string>("lt",lt),
              new KeyValuePair<string, string>("execution",execution),
              new KeyValuePair<string, string>("_eventId","submit")
          });
          str = await content.ReadAsStringAsync();
      
          str = await (await http.PostAsync(url, content)).Content.ReadAsStringAsync();
      
    5. 查看登陆

      url = new Uri(“http://write.blog.csdn.net/“);
      str = await http.GetStringAsync(url);

    6. 上传文件

         content = new MultipartFormDataContent();
          ((MultipartFormDataContent)content).Headers.Add("name", "file1");
      
          ((MultipartFormDataContent)content).Headers.Add("filename", "20170114120751.png");
          var stream = new StreamContent(await File.OpenStreamForReadAsync());
          ((MultipartFormDataContent)content).Add(stream);
          str = await ((MultipartFormDataContent)content).ReadAsStringAsync();
          url = new Uri("http://write.blog.csdn.net/article/UploadImgMarkdown?parenthost=write.blog.csdn.net");
          var message = await http.PostAsync(url, content);
          if (message.StatusCode == HttpStatusCode.OK)
          {
              ResponseImage(message);
          }
      
       private async void ResponseImage(HttpResponseMessage message)
       {
          using (MemoryStream memoryStream = new MemoryStream())
          {
              int length = 1024;
              byte[] buffer = new byte[length];
              using (GZipStream zip = new GZipStream(await message.Content.ReadAsStreamAsync(), CompressionLevel.Optimal))
              {
                  int n;
                  while ((n = zip.Read(buffer, 0, length)) > 0)
                  {
                     memoryStream.Write(buffer, 0, n);
                  }
              }
      
              using (StreamReader stream = new StreamReader(memoryStream))
              {
                  string str = stream.ReadToEnd();
              }
          }
      }
      

    使用 WebView 模拟登陆 csdn

    下面给大家一个叫简单方法模拟登陆csdn

              GeekWebView.Navigate(new Uri("http://passport.csdn.net/"));
    
                GeekWebView.NavigationCompleted += OnNavigationCompleted;
    
    
                F = async () =>
                {
    
                    var functionString = string.Format(@"document.getElementsByName('username')[0].value='{0}';", "lindexi_gd@163.com");
                    await GeekWebView.InvokeScriptAsync("eval", new string[] { functionString });
                    functionString = string.Format(@"document.getElementsByName('password')[0].value='{0}';", "密码");
                    await GeekWebView.InvokeScriptAsync("eval", new string[] { functionString });
    
                    functionString = string.Format(@"document.getElementsByClassName('logging')[0].click();");
                    await GeekWebView.InvokeScriptAsync("eval", new string[] { functionString });
                };
    
            private Action F { set; get; }
    
            private void OnNavigationCompleted(WebView sender, WebViewNavigationCompletedEventArgs args)
            {
                F();
            }

    当然,这时需要修改登陆信息,我上面写的是我的。如果遇到有验证码,那么这个方法是不可使用,因为输入验证码暂时还没法做。

    知识共享许可协议
    本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:http://blog.csdn.net/lindexi_gd ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系

    展开全文
  • vagrant是一个链接虚拟机工具,用vagrant和VirtualBox搭配使用是一个不错的选择,VirtualBox会开放一个创建虚拟机的接口,vagrant会利用这个接口创建虚拟机,并且通过vagrant来管理和配置这些虚拟机。
  • title author date CreateTime categories ... win10 uwp csdn 博客阅读器 lindexi 2018-2-13 17:23:3 +0800 2018-2-13 17:23:3 +0800 Win10 UWP 本文告诉大家如何写一个 r...
        
    title author date CreateTime categories
    win10 uwp csdn 博客阅读器
    lindexi
    2018-2-13 17:23:3 +0800
    2018-2-13 17:23:3 +0800
    Win10 UWP

    本文告诉大家如何写一个 rss 阅读器,并且用它来获得 csdn 博客。 因为 csdn 的首页有很多文章,但是我喜欢的文章很少,于是我需要一个可以过滤关键词的工具。如果文章包含了某些关键词就把文章给我,这样就可以减少我去找文章的时间。

    为了做这个软件,我需要下面的技术:

    一开始我使用的是 ms 的 Rss 类,但是很不好用,很多信息无法得到,于是我就对 csdn 使用了 xml 的方法解析。需要知道,因为我是对 csdn 博客使用 xml 解析,所以这个软件可能无法在其他地方使用,因为 csdn 使用的不是标准的。最少不是垃圾微软的标准,所以对于一些其他博客,可能解析就出错了。

    项目放在 全球交友平台 ,如果有兴趣 开发的话,请直接下载代码到本地,编辑之后提交。如何使用 github 参见 Git教程

    于是可以看到,我需要的软件只有两个页面,一个是显示博客,一个是设置。

    为了简单,我也不上 MVVM 啦,直接的代码就是点击确定,扫描所有的 rss ,获取他们的内容,然后判断是否存在关键词,如果存在的话,就显示,如果不存在,就不显示。

    软件的功能,获取csdn推荐的博客,包括首页和 web 、前端、编程语言这些页面的推荐博客,判断这些内容中的文章,是否包含了用户设置的关键字,如果包含了,那么就是判断这个文章是用户喜欢的,显示出来。

    用户可以通过点击自己喜欢的文章,跳转到浏览器去看文章。

    看起来软件的功能很简单,做起来基本没有遇到什么难的地方,但是界面我做的不好看,我觉得这个功能应该放在 之前的 csdn 阅读软件。不过因为今天已经到了吃饭的时间,我需要回去了,所以就没有做。这个软件是为了我可以在手机看 csdn 博客,因为是 UWP ,在手机上也可以使用。

    本来想告诉大家,这个软件是如何做的,但是感觉这个会用很长时间,于是我就不多说啦,反正代码已经开源,大家可以去看看。

    展开全文
  • 装的win10 ubuntu双系统,ubuntu下不能访问csdn,如题,在win10下可以正常访问csdn,而进入ubuntu时,进不去csdn,就连www.csdn.net都进不去,直接显示的就是白色页面什么都没有,用火狐和谷歌浏览器都试过,一样,...
  • 请教WIN10无法安装.net framework 3.5的问题!(CSDN论坛的方法都试过了都不行) 先说下我的电脑环境,电脑装的系统是windows 10 企业版 2016 长期服务版。在安装.net framework3.5过程中,我试过了在线安装 不行,...

    请教WIN10无法安装.net framework 3.5的问题!(CSDN论坛的方法都试过了都不行)

    先说下我的电脑环境,电脑装的系统是windows 10 企业版 2016 长期服务版。在安装.net framework3.5过程中,我试过了在线安装 不行,离线安装一、下载win 10 企业版 系统IOS镜像文件的SXS文件,二、单独下载了.NET FRAMEWORK3.5组件的SXS文件,也不行。

    之后,按照CSDN上介绍的几种方式都试过了都不能安装(运行命令也都用管理员命令、每次操作后也都清理了注册表)。

    一、SFC /scannow 修复系统的命令 结束后显示 扫描完成但不能完成修复
    无法修复
    然后用C:\Windows\system32>findstr /C:"[SR] Cannot repair member file" %windir%\logs\cbs\cbs.log >"%userprofile%\Desktop\sfcdetails.txt"命令导出日志
    无法修复日志
    但网上搜了一圈没找到解决方案
    二、dism /online /cleanup-image /restorehealth

    无法还原

    三、dism.exe /online /enable-feature /featurename:NetFX3 /Source:c:\sxs

    离线安装读条能读到100%但是安装失败。

    请CSDN大神指教,是不是系统本身问题,还是那个DLL的问题,DLL我看下应该是directx9.0,我也重新装了下directx9.0也没有用。(能有详细步骤最好,兄弟现在这里谢了!)

    展开全文
  • CSDN博客中对博主发布评论及博主回复访客时,没有提供表情,但Win10系统下,默认的微软键盘中有表情符号可用,Shift切换为中文输入法,Ctrl+Shift+B弹出表情窗口,除表情符号外,还有单位,序号等更多符号可选,类似...

    CSDN博客中对博主发布评论及博主回复访客时,没有提供表情,但Win10系统下,默认的微软键盘中有表情符号可用,Shift切换为中文输入法,Ctrl+Shift+B弹出表情窗口,除表情符号外,还有单位,序号等更多符号可选,类似于搜狗输入法的符号大全功能,在记事本、Word等编辑工具中也可以正常使用,在微信等已经有表情功能的应用中,此表情窗口中的表情等符号无法正常使用。推荐评论及回复中大家可以方便地使用表情等符号。

    展开全文
  • Nessus-8 最新版windows 64位 win7 win8 win10 win2008 windows server,linux版地址: https://download.csdn.net/download/moziyu93/12709135
  • win10+ubuntu 默认启动win10 首先,记住自己启动那个页面win在第x个选项。(比如我的是在第三个) 然后进入terminal,sudo gedit /etc/default/grub 接下来,把grub-default改为x-1(比如我就改为) 最后,执行...
  • win10 uwp 如何让WebView标识win10手机

    千次阅读 2016-07-29 13:22:35
    本文主要:如何让WebView访问的网页设别为手机,当然这句话我说不好,换个,如何让WebView设别为手机。上面两句话都是错的,因为是...当然本文发在csdnwin10.me,在他地方并没有发,不过我的gitbook.io还是有的。
  • 我在今年年初有个计划是对python的爬虫进行一些学习,同时争取在年底CSDN个人访问量达到5万。然后我就想到写一个爬虫对CSDN个人的访问量进行记录。 实现 首先应该先了解怎么获取相关信息:Python爬虫学习–获取...
  • CSDN的源码又更新了,现在的最新版本的代码如下: import requests,time from bs4 import BeautifulSoup res = requests.get('http://blog.csdn.net/sayWhat_sayHello?ref=toolbar') res.encoding = 'utf-8' soup...
  • win10+ubuntu16.04安装教程:https://blog.csdn.net/qq_41581769/article/details/90345184 修改第一启动项 在系统安装时,因为是先安装的win10,后安装的ubuntu,安装成功后重启进入引导界面,第一项是ubuntu,...
  • win10上使用win-sshfs

    2020-08-19 12:04:43
    win10上使用win-sshfs将服务器挂载到本地 准备 安装 配置 准备 首先在GitHub上下载DokanSetup-1.0.5.1000和WinSSHFS-1.6.1.13-devel注意:Dokan不能使用最新的版本,得使用1.0.5版本。要不win-sshfs会报Dokan...
  • win10端口中转

    2019-09-10 12:05:27
    开发需要,通过手机的apk连接到win10的电脑,通过win10的电脑再连接到VMWare的ubuntu虚拟机,即 Phone -> win10(AP) ->VMware 设置方法 参考https://blog.csdn.net/yanchenyu365/article/details/78851193 将...
  • Win10.设置

    2019-07-23 08:16:00
    1、ZC:我从感觉,我在Win10 里面截图 貌似被放大了,尤其是 在往... win10系统qq截图时屏幕局部自动放大怎么办 解决方法 - qq_21008423的博客 - CSDN博客.html(https://blog.csdn.net/qq_21008423/article/d...
  • C#仿win10计算器

    2019-06-12 19:47:47
    C#仿win10计算器 https://blog.csdn.net/qq_43479622/article/details/91599602 可以到github下载https://github.com/BuXianShan/Calculator win10自带的计算器挺好用的,有很多模式(标准、科学、程序员等等),...
  • 关闭win10自动更新

    2019-08-15 09:16:54
    参看资料来源:CSDN-解决win10烦人的自动更新
  • ati x1350 win8 win10 64位驱动程序。请强行安装。 32位请自行前往 http://download.csdn.net/detail/jjjabc/8598963
  • 原文地址:https://blog.csdn.net/erdfty/article/details/86076477 现在市面上大致有两种主流激活...现在已经过了win10系统免费推广期了,所以如果现在安装win10官方原版的系统,安装后都是未激活的。 下面为大家...
  • 目前CSDN下载频道中的微软调试工具WinDbg(即Debugging Tools for Windows)大都不适用于Win10系统,在Windows10中会报错:Could not find the xxx\MEMORY.DMP Dump File,Win32 error On87。这里提供的WinDbg10下载...
  • win10+ubuntu

    2018-02-05 02:06:46
    win10是uefi的启动方式。 在装了win10后安装ubuntu,采用ubuntu原有选项,与windows共存的安装方式。安装后开机无ubuntu的选择项,直接进入win10。 解决 1.按下列方法操作。 ...
  • 问题: 无意中出现过几次键入字体是繁体的情况,每次都要搜索。...Win10自带输入法有繁简切换快捷键【Control+Shift+F】 参考 https://blog.csdn.net/LIU_YANZHAO/article/details/67648751 ...
  • Win10 adb工具包

    2019-03-30 17:10:14
    Win10适用的adb工具包 比如可用于科大讯飞唤醒词的替换写入等等 亲测好用 结合文档使用说明https://blog.csdn.net/DragonGirI/article/details/88914482
  • win10 2016 LTSB

    千次阅读 2018-10-06 11:31:10
    win10 2016 LTSB win10 2016 长期服务版的ISO文件中本身就带有KMS激活KEY,不用输入任何KEY,连接网络进入CMD,只要输入: slmgr /skms kms.digiboy.ir slmgr /ato 这两条命令,就可以KMS激活。 转自...
  • 给实验室的同学在win10下装了Ubuntu14.04,安装完了在电脑重启后,竟然没有进入win10的选项,我开始有点方了,要知道在windows上可是配了不少东西的。还好,通过在ubuntu里修改启动引导,还是能解决问题的 进入...
  • 因此,从Win 10 磁盘管理中删除了linux 占用的磁盘空间,重启后无法进入win 10 ,出现如下情况: 有人提出,此时需要重装系统,并不用如此麻烦,通过Win 10 安装U盘选择修复计算机,进入命令行模式,或者在进入...
  • win10安装docker

    2020-10-20 14:04:02
    2020年10月win10安装docker,记录。 主要参考文档:https://blog.csdn.net/hunan961/article/details/79484098?biz_id=102&utm_term=win%20docker&utm_medium=distribute.pc_search_result.none-task-blog-...
  • 关闭Win10自动更新

    2021-04-11 15:08:16
    垃圾Win10总是偷偷摸摸自动更新,网上尝试了各种关闭办法都无效,最后找到一个软件,可以一键直接关闭Win10更新,关机时瞬间清爽了。 https://download.csdn.net/download/mmhh3000/16618604
  • win10启动mongodb: http://blog.csdn.net/yy211zhu/article/details/53393928 win10 以管理员模式进入及其重要: http://jingyan.baidu.com/article/ceb9fb10b53ab88cac2ba05b.html 感谢网上的教程~~~ ...
  • 某一天在查询资料的过程中,看到了老罗的CSDN 博客,里面写到如何在Ubuntu 系统上运行android源码,我这个喜欢倒腾东西的,也就各种查阅各种安装,我电脑是win10系统,按照网上的方式做了一个Ubuntu的系统盘,然后就...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,868
精华内容 2,747
关键字:

csdnwin10