苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 5648|回复: 4

[其他] c#根据关键句抓取百度搜索结果网页,感觉好慢好慢(第一次研究这个东西)

[复制链接]
发表于 2019-2-13 16:28:31 | 显示全部楼层 |阅读模式
        private bool GetHttpHtml(string title)
        {
            HttpHelper helper = new HttpHelper();
            HttpItem item = new HttpItem();
            item.URL = @"https://www.baidu.com/s?wd=" + title + "&rsv_spt=1";//请求url
            item.Method = "get";//请求方式
            item.ResultType = ResultType.Byte;//返回类型
            HttpResult result = helper.GetHtml(item);//获取页面内容
            byte[] bytes = result.ResultByte;
            Stream stream = new MemoryStream(bytes);

            //将抓取的stream转化为html格式doc
            HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
            doc.Load(stream, Encoding.UTF8);

            //doc下取  div节点class="c-abstract"
            HtmlNodeCollection kwBox = doc.DocumentNode.SelectNodes("//div[@class='c-abstract']");

            //对比title和抓取结果
            List<string> emList = new List<string>();
            string temp = string.Empty;
            foreach (HtmlNode hn in kwBox)
            {
                temp = HttpHelper.GetBetweenHtml(hn.OuterHtml, "<em>", "</em>");
                if (title.Equals(temp))
                {
                    return false;
                }
            }
            return true;
        }

第一次弄这个东西,求教大家一下。
具体操作是:数据库有很多数据,根据数据的title,抓取按title百度搜索得到网页的结果,跟结果描述飘红的字体做对比。但是我按数据循环抓取的时候很慢。
如果数据多的话岂不是要处理很久。
原数据存的title是db3数据库文件,我打算每个文件开一个线程跑。先试了跑一个文件感觉很慢。半个小时5000条。


1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2019-2-13 17:22:15 | 显示全部楼层
不算太慢了,这个受网速影响,同时打开多少网页本身就慢,可以尝试放服务器,或者带宽性能更高的电脑上试试
 楼主| 发表于 2019-2-13 17:40:39 | 显示全部楼层
站长苏飞 发表于 2019-2-13 17:22
不算太慢了,这个受网速影响,同时打开多少网页本身就慢,可以尝试放服务器,或者带宽性能更高的电脑上试试

好的,谢飞哥。这我就放心了
发表于 2019-2-14 17:13:34 | 显示全部楼层
回复

使用道具 举报

发表于 2019-2-25 17:14:34 | 显示全部楼层
用正则提取,百度搜索结果最大可以每页展现50条数据,100条数据2页就够了,很快的,你可以边采集边过虑重复再入库,入库后再处理,或者直接把你想要的飘红字符串进行Hash编码,然后查比较,又或者可以先预载入部分数据库里的数据到客户端,过虑的时候判断,具体怎么样我没试过,抓取我感觉用正则挺快的。
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-12-26 04:22

© 2014-2021

快速回复 返回顶部 返回列表