Bing搜索背景图抓取

首先是两个读取html的方法。两个编码格式,两个不同的方法(哪个都可以,第二个乱码,待处理)

  private static string  ReturnUTF8Html()
        {
            try
            {
                WebClient MyWebClient = new WebClient();
                MyWebClient.Credentials = CredentialCache.DefaultCredentials;//获取或设置用于向Internet资源的请求进行身份验证的网络凭据
                Byte[] pageData = MyWebClient.DownloadData("http://www.bing.com"); //从指定网站下载数据
                //  string pageHtml = Encoding.Default.GetString(pageData);  //如果获取网站页面采用的是GB2312,则使用这句
                string pageHtml = Encoding.UTF8.GetString(pageData); //如果获取网站页面采用的是UTF-8,则使用这句
            //    Console.WriteLine(pageHtml);//在控制台输入获取的内容
                using (StreamWriter sw = new StreamWriter("F:\\Desktop\\txt2.html"))//将获取的内容写入文本
                {
                    sw.Write(pageHtml);
                }
                return pageHtml;
            }
            catch (WebException webEx)
            {
              //  Console.WriteLine(webEx.Message.ToString());
                return webEx.Message.ToString();
            }
        }
    public static string ReturnGB2312Html()
        {
            string getWeatherUrl = "http://www.ithome.com/";

            //WebRequest webReq = WebRequest.Create(getWeatherUrl);
            //WebResponse webResp = webReq.GetResponse();
            //Stream stream = webResp.GetResponseStream();
            Stream 请求字节 = WebRequest.Create(getWeatherUrl).GetResponse().GetResponseStream();
            StreamReader 获取内容 = new StreamReader(请求字节, Encoding.GetEncoding("gb2312"));
            string html = 获取内容.ReadToEnd();
            获取内容.Close();
            请求字节.Close();
            //保存网页
            FileStream fstream = new FileStream(@"F:\Desktop\txt.html", FileMode.OpenOrCreate, FileAccess.Write);
            byte[] buffer = Encoding.Default.GetBytes(html);
            fstream.Write(buffer, 0, buffer.Length);
            fstream.Close();
            fstream.Dispose();
            return html;
        }

抓取文件

  public static string 抓取文件(string strUrl)

        {
            string strMsg = string.Empty;
            try
            {
                WebRequest request = WebRequest.Create(strUrl);
                WebResponse response = request.GetResponse();
                Stream reader = response.GetResponseStream();
                FileStream writer = new FileStream(Program.path, FileMode.OpenOrCreate, FileAccess.Write);
                //  FileStream writer = new FileStream(@"F:\Desktop\Bing"+name+".jpg", FileMode.OpenOrCreate, FileAccess.Write);
                byte[] buff = new byte[512];
                int c = 0; //实际读取的字节数
                while ((c = reader.Read(buff, 0, buff.Length)) > 0)
                {
                    writer.Write(buff, 0, c);
                }
                writer.Close();
                writer.Dispose();
                reader.Close();
                reader.Dispose();
                response.Close();
                strMsg = "保存成功";
            }
            catch
            { }
            return strMsg;
        }

入口

 1 static void Main(string[] args)
 2         {
 3             Console.WriteLine("正在读取网页...");
 4             string html= ReturnUTF8Html();
 5             Console.WriteLine("网页读取正常...");
 6             Console.WriteLine("正在匹配正则表达式...");
 7             // Console.WriteLine(html);
 8             //string w = Program.ReturnGB2312Html();
 9             //Console.WriteLine(w);
10             //匹配正则表达式
11             Match match=   Regex.Match(html, @"http://s.cn.bing.net/az/hprichbg/rb/[a-zA-Z]+_ZH-CN[0-9]{11}_1920x1080.jpg");
12
13             Console.WriteLine(match.Value);
14
15              Program.抓取文件(match.Value.ToString());
16              Console.WriteLine("下载完毕!");
17
18             Thread.Sleep(3000);
19             //  Console.ReadKey();
20            // SystemParametersInfo(20, 0, "D:\\AAA.bmp", 0x2);
21         }

路径

 //路径
 public static  string path = "E:\\background\\Bing\\bing" + DateTime.Now.ToString("yyyy-MM-dd HH:m:ss") + ".jpg";

  

时间: 2024-08-27 21:24:16

Bing搜索背景图抓取的相关文章

淘搜索之网页抓取系统分析与实现(2)—redis + scrapy

1.scrapy+redis使用 (1)应用 这里redis与scrapy一起,scrapy作为crawler,而redis作为scrapy的调度器.如架构图中的②所示.图1 架构图 (2)为什么选择redis redis作为调度器的实现仍然和其特性相关,可见<一淘搜索之网页抓取系统分析与实现(1)--redis使用>(http://blog.csdn.net/u012150179/article/details/38226711)中关于redis的分析. 2.redis实现scrapy sc

一淘搜索之网页抓取系统分析与实现(3)—scrapy+webkit &amp; mysql+django

结构图 scrapy+webkit: 如结构图③. scrapy不能实现对javascript的处理,所以需要webkit解决这个问题.开源的解决方案可以选择scrapinghub的scrapyjs或者功能更强大的splash. 关于scrapy+webkit的使用后期进行分析. scrapy+django: 如结构图④. django实现的配置界面主要是对抓取系统的管理和配置,包括:站点feed.页面模块抽取.报表系统的反馈等等. 请直接参考: [1]快速构建实时抓取集群 [2]淘宝摘星 文章

淘搜索之网页抓取系统分析与实现(4)- 实现&amp;总结

以一淘搜索的crawler为核心展开的分析到此基本结束了,除了django和mysql部分没有涉及,其它部分都进行了test,尤其是围绕crawler,所展开的分析和实现主要有: 1. 分布式crawler与分布式pipeline处理. 使用scrapy+redis实现,用到了scrapy+scrapy-redis.关于自己相关代码也在fork的repo做了探索与实现. 2. javascript rendering content处理. 使用scrapy+webkit+jswebkit+gtk

ajax分析-今日头条街拍美图抓取

我们知道,有时候直接利用requests请求得到的原始数据是无效的,因为很多时候,这样获取的一个网页的源代码很可能就几行,明显不是我们想要的东西,这个时候,我们就可以分析,这样的网页中是不是加入了ajax请求,即原始页面加载完成后,会再向服务器请求某个接口去获取数据,然后才被呈现到网上的. ajax并不是一门语言,而是一门技术,它可以在页面不被刷新的情况下,利用javascript进行数据交换,渲染网页进而呈现,我们平时用手机刷微博,往下拉就会出现加载的小圆圈,那个就是加入了ajax请求. 所以

[Python爬虫] 之九:Selenium +phantomjs抓取活动行中会议活动(单线程抓取)

思路是这样的,给一系列关键字:互联网电视:智能电视:数字:影音:家庭娱乐:节目:视听:版权:数据等.在活动行网站搜索页(http://www.huodongxing.com/search?city=%E5%85%A8%E5%9B%BD&pi=1)的文本输入框中分别输入每个关键字,在搜索结果中抓取需要的数据. 首先通过Selenium+IE驱动得到每个关键字搜索结果的url(首页,因为以后各个页的url就是索引不一样)和总页数,保存的列表里面.然后再循环列表,用Selenium +phantomj

[Python爬虫] 之十一:Selenium +phantomjs抓取活动树中会议活动

最近在抓取活动树网站 (http://www.huodongshu.com/html/find.html) 上数据时发现,在用搜索框输入中文后,点击搜索,phantomjs抓取数据怎么也抓取不到,但是用IE驱动就可以找,后来才发现了原因. 例如URL: http://www.huodongshu.com/html/find_search.html?search_keyword=数字, phantomjs抓取的内存中url变成了http://www.huodongshu.com/html/find

搞数据抓取搞得整个人都不好了

背景:抓取各个医药网站关于“肝炎”的疾病的问答. 分别是两个问题: 1.用PHPEXCEL保存到excel文件出现中文乱码怎么解决,查了百度查了好久,都没有搞定.百度到的基本是因为是从数据库取数据而数据库编码不一致.可是我是从网站根据phpquery取得数据,所以没有找到有用的东西. 待解决. 2.为什么根据百度到的url https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&ch=1&tn=98010089_dg&wd=sit

scrapy抓取国家社科基金项目数据库

1.明确任务 目标网站:http://fz.people.com.cn/skygb/sk/index.php/Index/seach 抓取任务:抓取近五年某关键词(例如"能源".”大数据“等)的搜索结果,抓取内容包括项目编号.项目名称.学科分类等十一个字段. 2.网站分析 利用Fiddler工具分析,输入关键词,指定年份后,点击搜索,针对有多页码搜索结果点击下一页,发现此过程共包括一个POST请求和一个GET请求:其中,指定关键词和年份点击搜索的过程为POST请求,点击下一页的过程为G

sqlserver 抓取所有执行语句 SQL语句分析 死锁 抓取

原文:sqlserver 抓取所有执行语句 SQL语句分析 死锁 抓取 在多人开发中最头疼的是人少事多没有时间进行codereview,本来功能都没时间写,哪有时间来开会细细来分析代码.软件能跑就行,但是一些影响性能的语句写出来,有可能本人都不知道.找就更 麻烦了.幸亏sqlserver提供了工具可以导出执行语句进行分析.可以看看是哪些语句影响整体性能.工具叫sql server profiler,这玩意可以抓取实例上执行的所有语句\死锁\事物,为分析提供帮助. 开始->sqlserver目录-