新普金娱乐网址


天文医声故事|黑夜将一直,必见晨光

天文冬到

C#写爬虫,版本V1.0

  • 十一月 15, 2018
  • 天文
  • 没有评论

       
2017年7月4日,暑假刚起,为了响应湖南科技大学2017年大学生志愿者暑期“文化、科技、卫生”三下乡的感召,引导广大学生当社会实践备受增强才干,培养其劳动同担负意识,物理与电子科学学院团委学生会的45叫做大学生志愿者以辅导员杨廷良先生的引导下到了湘潭市万楼街道红星村,同时带来的还有一样分外批判电器维修工具、天文望远镜、科普知识宣传单等等。

    之前看了Sql
Server中之中心数据列,发现image这个项目或者比较特别之。

图片 1

图片 2

       
志愿者们及在七月之火热走家串户,向本地村民们详解夏季用电防火的平安文化,对农们提出的关于电器修理、维护、使用等问题展开随机解答,还一并宣传了无偿维修、天文知识普遍服务站点。那同样及到小红帽一时之间成了同一志靓丽的风景线。在村委会的义诊维修点,志愿者等刚专心致志地修缮着农民们送来之毁伤电器,专业的演示、细心的讲课,赢得了村民们的平等赞赏。因为送来的维修的电器多,很多志愿者连午饭都看不上吃。天文仪器摆点处,志愿者等刚承受在地方的孩子辈观察天文,并主讲最基础之天文知识。孩子辈率先潮零距离接触这些仪器,兴奋之情显。

乃就做了一个以图片为第二上前制流形式储存的次序http://www.cnblogs.com/JsonZhangAA/p/5568575.html,现在如果我想批量ed存储网上一个网站的图片,难道我要手写n多地址吗?显然这是不可取的,针对这种情况,就用C\#写了一个简单的爬虫,我们所爬的对象是天文网http://www.tianwenwang.cn/

图片 3

图片 4

       
学院负责人同先生对此次运动十分重视,院党委副秘书杜鑫先生带在中午的盒饭亲临现场进行慰问,关心同学等的就餐及身体状况,并对准此次活动志愿者们的呈现给予肯定。下午,院党委书记周文革也带党支部的几乎叫教师一起验证了实践走,对志愿者们表示慰问。

 

图片 5

次第的规律是用WebRequest和WebResponse来对号入座网站(不晓,只能如此说0.0),而后利用StreamWrite将网站的源文件存储到txt文本文件被,这是咱得以窥见一个

       
本次活动及下午五点才收,志愿者的劳作备受了当地村民与村委会工作人员的高度肯定,红星村村企业主表示,这样的走很有义,他感谢物理及电子科学学院的管理者对此次移动之大力支持,感谢志愿者们的服务。志愿者等尽管很辛苦,因为获了满满当当的深信与赞许,心快乐着。

此情此景,图片地址都是相近于http://p.tianwenwang.cn/upload/150318/68181426648163.jpg!list.jpg,http://p.tianwenwang.cn/upload/150312/58341426094069.jpg!list.jpg这种的,于是可以利用正则表达式来将里面的http:全部取出,放到一个字符串数组中,最后就是判断地址时候包含典型的jpg,gif等图片类型后缀了(V1.0最大的缺陷),如果包含就将其存储到数据库中。

                                新闻:张煜翀  摄影:楼愉康

后台代码如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace 网络爬虫
{
    public partial class Form1 : Form
    {
        private static string[] getLinks(string html)
        {
            const string pattern = @"http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?";
            Regex r = new Regex(pattern, RegexOptions.IgnoreCase); //新建正则模式
            MatchCollection m = r.Matches(html); //获得匹配结果
            string[] links = new string[m.Count];

            for (int i = 0; i < m.Count; i++)
            {
                links[i] = m[i].ToString(); //提取出结果
            }
            return links;
        }
        private static bool isValiable(string url)
        {
            if (url.Contains(".jpg") || url.Contains(".gif")||url.Contains(".png"))
            {
                return true; //得到一些图片之类的资源
            }
            return false;
        }
        private static void savePicture(string path)
        {
            DataClasses1DataContext db = new DataClasses1DataContext();
            Uri url = new Uri(path);
            WebRequest webRequest = WebRequest.Create(url);
            WebResponse webResponse = webRequest.GetResponse();

            if (isValiable(path))//判断如果是图片,就将其存储到数据库中。
            {
                Bitmap myImage = new Bitmap(webResponse.GetResponseStream());

                MemoryStream ms = new MemoryStream();
                myImage.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
                var p = new pictureUrl
                {
                    pictureUrl1 = ms.ToArray()
                };
                db.pictureUrl.InsertOnSubmit(p);
                db.SubmitChanges();
            }

        }
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            string rl;
            string path = this.textBox1.Text;
            Uri url = new Uri(path);
            WebRequest webRequest = WebRequest.Create(url);
            WebResponse webResponse = webRequest.GetResponse();
            Stream resStream = webResponse.GetResponseStream();
            StreamReader sr = new StreamReader(resStream, Encoding.UTF8);
            StringBuilder sb = new StringBuilder();
            while ((rl = sr.ReadLine()) != null)
            {
                sb.Append(rl);
            }
            FileStream aFile = new FileStream("../../txt.txt", FileMode.OpenOrCreate);
            StreamWriter sw = new StreamWriter(aFile);//将网页存储到了txt文本文件中
            sw.WriteLine(sb.ToString());
            sw.Close();
            string[] s;
            s = getLinks(sb.ToString());
            int i = 0;
            foreach (string sl in s)
            {
                i++;
                savePicture(sl);
            }
        }
    }
}

本版本只能对类似于天文网的立刻仿佛网站开展爬虫,我会继续升级爬虫,争取做出一个通用的爬虫O(∩_∩)O~!

相关文章

No Comments, Be The First!
近期评论
    分类目录
    功能
    网站地图xml地图