我的第一个网络爬虫 C#版 福利 程序员专车

最近在自觉python,看到了知乎上一篇文章(https://www.zhihu.com/question/20799742),在福利网上爬视频。。。

由是我就开始跟着做了,但答主给的例子是基于python2.x的,而我开始学的是3.x,把print用法改了以后还是有很多模块导入不了,新手又不知道该怎么解决。

于是,为了学(shang)习(che),我就把其中的一段代码用C#写了一次。在加了一些延时的情况下,一会儿硬盘就被占用了3个多g了。。。同学们,要注意身体啊

下面贴出代码。。代码中故意留了几个bug,避免非程序员上车

class Program
    {
        static void Main(string[] args)
        {
            var baseString = "http://w*w.46ek.c*m/view/{0}.html";
            Regex regex = new Regex(@"http://m4.26ts.com/[.0-9-a-zA-Z]*.mp4");
            WebClient wc = new WebClient();

            uint startIndex = ReadStartIndex();
            uint loop = ReadLoopLen();

            for (int i = 0; i < lop; i++)
            {
                var subUrl = string.Format(baseString, startIndex + i);
                WebRequest wReq = System.Net.WebRequest.Create(subUrl)

                try
                {
                    WebResponse wResp = wReq.GetResponse();
                    Stream respStream = wResp.GetResponseStream();

                    using (StreamReader reader = new StreamReader(respStream, Encoding.GetEncoding("GB18030")))
                    {
                        var htmlString = reader.ReadToEnd();

                        Match m = regex.Match(htmlString);
                        if (m.Success)
                        {
                            DownloadFile(wc, m.Value, string.Format("{0}.mp4", startIndex + i));
                        }
                    }
                }
                catch (Exception exc)
                {
                    Console.WriteLine("Error : {0}", exc.Message);
                }

                Thread.Sleep(5);
            }

        }

        private static uint ReadStartIndex()
        {
            while (true)
            {
                Console.Write("Set start index :");

                string line = Console.ReadLine();

                uint index = 0;

                if (UInt32.TryParse(line, out index))
                {
                    Console.WriteLine("Start index setted : "+ index);
                    return index;
                }

                Thread.Sleep(500);
            }
        }

        private static uint ReadLoopLen()
        {
            while (true)
            {
                Console.Write("Set loop len :");

                string line = Console.ReadLine();

                uint index = 0;

                if (UInt32.TryParse(line, out index))
                {
                    Console.WriteLine("Loop len setted : " + index);
                    return index;
                }

                Thread.Sleep(500);
            }
        }

        private static void DownloadFile(WebClient wc, string url, string localname)
        {
            Console.WriteLine("Downloading file {1} to {2}", url, localname);

            wc.DownloadFile(url, localname);

            Console.WriteLine("File {0} download completed!", localname);
        }

原文地址:https://www.cnblogs.com/GuoRL/p/8328329.html

时间: 2024-11-02 14:40:03

我的第一个网络爬虫 C#版 福利 程序员专车的相关文章

第一章 网络爬虫简介

本章将介绍如下主题: 网络爬虫领域介绍 爬虫的合法与非法性 对目标网站进行背景调研 逐步完善一个高级网络爬虫 1.1 网络爬虫的使用场景 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁.自动索引.模拟程序或者蠕虫. 爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件.  

网络爬虫java版

java版的网络爬虫基本思路是,先获取网页信息,再根据正则表达式提取网页内容 package xuexi; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.MalformedURLException; import java.net.URL; import java.nio.charset.Charset; import jav

使用Python写的第一个网络爬虫程序

今天尝试使用python写一个网络爬虫代码,主要是想访问某个网站,从中选取感兴趣的信息,并将信息按照一定的格式保存早Excel中. 此代码中主要使用到了python的以下几个功能,由于对python不熟悉,把代码也粘贴在下面. 1, 使用url打开网站网页 import urllib2 data = urllib2.urlopen(string_full_link).read().decode('utf8') print data 2,使用正则表达式匹配 import re #一般的英文匹配 r

爬虫神器XPath,程序员带你免费获取周星驰等明星热门电影

本教程由“做全栈攻城狮”原创首发,本人大学生一枚平时还需要上课,但尽量每日更新文章教程.一方面把我所习得的知识分享出来,希望能对初学者有所帮助.另一方面总结自己所学,以备以后查看. 可能看着文章很短,但大家想想高考时800字的作文用了多长时间.字都是一个字一个字的码出来的,也需要很多精力. 非常需要各位的支持,哪怕点个赞,评论一下.更多技术方向的文章可以关注我.力求写出高质量文章.帮助更多学习技术的人. 本人大学生一枚,如各位有Asp.Net和安卓开发方向的兼职,可以联系微信:cxx7177.感

第一个网络爬虫程序

import re import requests    #启动两个模块,pycharm5.0.1里貌似不用特别启动os模块,也可以open# html=requests.get("http://tu.xiaopi.com/tuku/3823.html") AAA=html.text     #从目标网站上捕获源代码# body=re.findall('<img src="(.*?)" alt=',AAA,re.S) #此时你肯定要先看一眼源代码,找到你需要找

Python 网络爬虫单线程版

re.S让.能够匹配\n,默认情况点是不能匹配换行符的 1.爬取网页源码中的图片 #-*- coding:utf-8 -*- import re import requests with open('source.txt', 'r') as f:     html = f.read() #匹配图片网址,括号中为需要返回的内容 pic_url = re.findall('img src="(.*?)" class="lessonimg"', html, re.M) i

第一个网络爬虫——简单的抓取网页

早上还有实验验收,先上代码,早上再写. import urllib2 import re from bs4 import BeautifulSoup content = urllib2.urlopen("http://www.cnblogs.com/ly941122/").read(); soup=BeautifulSoup(content) siteUrls = soup.findAll('div',{'class':'postTitle'}) tag=re.compile('<

第一个网络爬虫

import requestsres=requests.get('http://news.sina.com.cn/china/')res.encoding='utf-8'print(res.text)

用Python写网络爬虫(高清版)PDF

用Python写网络爬虫(高清版)PDF 百度网盘 链接:https://pan.baidu.com/s/1kdRFAEuze-A9ToWVXHoCXw 提取码:8ib1 复制这段内容后打开百度网盘手机App,操作更方便哦 内容简介  · · · · · · 作为一种便捷地收集网上信息并从中抽取出可用信息的方式,网络爬虫技术变得越来越有用.使用Python这样的简单编程语言,你可以使用少量编程技能就可以爬取复杂的网站. <用Python写网络爬虫>作为使用Python来爬取网络数据的杰出指南,