c#语言输入关键字,抓取你想要的所有网址


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using mshtml;
using System.Collections;
using System.Threading;

namespace 遍历百度网页
{
    public delegate void baidu111();
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

        }
        private void Form1_Load(object sender, EventArgs e)
        {
            listView1.GridLines = true;
        }

        Thread thread;
         void baidu()
        {
            baidu111();
        }

         void baidu111()
         {
             if (webBrowser1.InvokeRequired)
             {
                 baidu111 dr = new baidu111(baidu111);
                 this.Invoke(dr);
             }
             else
             {
                 string url = "http://www.baidu.com/s?wd=" + textBox1.Text;
                 webBrowser1.Navigate(url.Trim());
             }
         }
        //点击停止
         private void button2_Click(object sender, EventArgs e)
         {

         }

        private void button1_Click(object sender, EventArgs e)
        {
        // System.Diagnostics.Process.Start("http://www.baidu.com");
          //webBrowser1.Navigate("http://www.baidu.com/");
            thread = new Thread(new ThreadStart(baidu));
            thread.IsBackground = true;
            thread.Start();

            baidu();
        }
        int i = 0;
        public void bianli()
        {
            IHTMLDocument2 doc = webBrowser1.Document.DomDocument as IHTMLDocument2;
            foreach (IHTMLElement ele in doc.all)
            {
                if (ele.innerText == "下一页>")
                {
                    ele.click();
                    i++;
                    if (i==3)
                    {
                        break;
                    }

                }
            }
        }

        /// <summary>
        /// 判读网页是否加载完成
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            if (i==3)
            {
                return;
            }
            if (e.Url == webBrowser1.Document.Url)
            {
                bianliwangye();

            }
        }
        /// <summary>
        /// 枚举获取百度搜索页面的所有网址
        /// </summary>
        /// 

        ArrayList all=new ArrayList();
        string a1;

        public void bianliwangye()
        {
            IHTMLDocument2 document = (IHTMLDocument2)webBrowser1.Document.DomDocument;//获取源代码
            IHTMLElementCollection hc = (IHTMLElementCollection)document.all;//获取所有标签
            //MessageBox.Show(hc.ToString());

            foreach (IHTMLElement h in hc)//遍历标签
            {
                if (h.className == "g" || h.className == "c-showurl")//以标签classname判读
                {
                    string a = h.innerHTML;//获取标签文本内容
                    if (a.Contains("&nbsp"))
                    {
                        int b = a.IndexOf("&nbsp");
                        a1 = a.Substring(0, b);//截取网址
                        MessageBox.Show(a1);
                        all.Add(a1);
                    }
                }
            }
            bianli();//当枚举到当前页面最后一个网址,模拟点击进入下一页   

        }

        private void button3_Click(object sender, EventArgs e)
        {
            listView1.Columns.Add("编号");
            listView1.Columns.Add("获取到的网址",400);

            for (int i = 0; i < all.Count; i++)
            {
                listView1.Items.Add((i+1).ToString());
                listView1.Items[i].SubItems.Add(all[i].ToString());
            }

        }

    }
}
时间: 2024-10-09 19:38:27

c#语言输入关键字,抓取你想要的所有网址的相关文章

(插播)网络爬虫,抓取你想要得东西。

最近,有个朋友说,想在一些页面上获取一些关键性得信息.比如,电话,地址等等.一个个页面去找 又很麻烦.这时候,想起了 何不去用"爬虫"去抓取一些想要得东西.省事,省里.好,今天 我们就讲讲,关于爬虫得一些东西. 这里 自己也是,看了一些关于爬虫得知识,正好,这几日闲来没事.做了一个功能小得爬虫. 这里是使用 java来进行编写得  首先 我们来介绍下.使用得框架,jdk1.6,htmlparser.jar(java 经典访问html页面得类),httpclient-3.01.jar,l

走过路过不要错过~java语言抓取网页想要的内容

学习了正则之后,打算用java玩一玩,所以就决定用它来实现一个好玩的idea import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; //和网络相关的操作 import java.net.URL; import java.net.URLConnection; import java.util.regex.Matcher; import java.util.regex.

新浪新闻按关键字抓取实例

import urllib2 import requests #import MySQLdb import webbrowser import string import re from BeautifulSoup import BeautifulSoup def getHtml(page):#获取网址内容 page=str(page) html=requests.get("http://search.sina.com.cn/?q=%BD%F0%D0%E3%CF%CD&range=all

Android登录客户端,验证码的获取,网页数据抓取与解析,HttpWatch基本使用

大家好,我是M1ko.在互联网时代的今天,如果一个App不接入互联网,那么这个App一定不会有长时间的生命周期,因此Android网络编程是每一个Android开发者必备的技能,博主是在校大学生,自学Android一年半多,正好通过一个模拟登录校园网软件,来给大家演示如何在网页上抓取我们想要的数据,以及将数据Post给服务器.如果有什么错误或改进欢迎大家指正=-= ,如果想交流博主qq 136057505 好的废话不多说看一下我们的重点 Httpwatch等软件抓取Post请求 如何获取验证码

[Python爬虫] 之十九:Selenium +phantomjs 利用 pyquery抓取超级TV网数据

一.介绍 本例子用Selenium +phantomjs爬取超级TV(http://www.chaojitv.com/news/index.html)的资讯信息,输入给定关键字抓取资讯信息. 给定关键字:数字:融合:电视 抓取信息内如下: 1.资讯标题 2.资讯链接 3.资讯时间 4.资讯来源 二.网站信息 三.数据抓取 针对上面的网站信息,来进行抓取 1.首先抓取信息列表 抓取代码:Elements = doc('ul[class="la_list"]').find('li') 2.

scrapy-splash抓取动态数据例子六

一.介绍 本例子用scrapy-splash抓取中广互联网站给定关键字抓取咨询信息. 给定关键字:打通:融合:电视 抓取信息内如下: 1.资讯标题 2.资讯链接 3.资讯时间 4.资讯来源 二.网站信息 三.数据抓取 针对上面的网站信息,来进行抓取 1.首先抓取信息列表 抓取代码:sels = site.xpath('//li[@class="content_list clearfix"]') 2.抓取标题 首先列表页面,根据标题和日期来判断是否自己需要的资讯,如果是,就今日到资讯对应

scrapy-splash抓取动态数据例子二

一.介绍 本例子用scrapy-splash抓取一点资讯网站给定关键字抓取咨询信息. 给定关键字:电视:数字电视:OTT 抓取信息内如下: 1.资讯标题 2.资讯链接 3.资讯时间 4.资讯来源 二.网站信息 三.数据抓取 针对上面的网站信息,来进行抓取 1.首先抓取信息列表,由于信息列表的class值有“item doc style-small-image style-content-middle” 和“item doc style-multi-image”两种情况,所以用contains包含

Linux 抓取网页方式(curl+wget)

Linux抓取网页,简单方法是直接通过 curl 或 wget 两种命令. curl 和 wget支持协议 curl  支持 http,https,ftp,ftps,scp,telnet等网络协议 wget支持 http,https,ftp网络协议 curl 和 wget抓取实例 抓取网页,主要有url 网址和proxy代理两种方式 1. url 网址方式抓取 (1)curl下载百度首页内容,保存在baidu_html文件中 curl  http://www.baidu.com/  -o  ba

scrapy-splash抓取动态数据例子十一

一.介绍 本例子用scrapy-splash抓取活动树网站给定关键字抓取活动信息. 给定关键字:数字:融合:电视 抓取信息内如下: 1.资讯标题 2.资讯链接 3.资讯时间 4.资讯来源 二.网站信息 三.数据抓取 针对上面的网站信息,来进行抓取 1.首先抓取信息列表 抓取代码:sels = site.xpath("//div[@id ='eventList']/div[@class ='list']") 2.抓取标题 抓取代码:title = str(sel.xpath('.//di