标签:sha 推荐 其他 爬虫 lan 框架 获取 网站 indexof
什么是爬虫
爬虫是用来抓取互联网上信息的程序。程序员可以利用爬虫来干很多事,有些挺酷炫,这里贴出知乎相关问题的网址https://www.zhihu.com/question/29372574
爬虫的工作流程
主要的分三步走,第一步把网页下载下来,第二步抽取认为有用的信息,第三步将相关信息保存下来。看是不是很简单嗯。
前期技术储备
1.如何把网页下载下来?
这里我们使用相关的library模拟人使用浏览器对服务器发送请求,然后获得相关网页的源代码。我使用C#语言编程,采用封装强度最高的最简单的WebClient类。WebClient
提供用于将数据发送到由 URI 标识的资源及从这样的资源接收数据的常用方法。
WebClient wb = new WebClient(); html = wb.DownloadString(url);
使用起来非常简单,构建好对象之后我们将网址给它就能下载先关网页的,如果你想对请求有更多的控制,请使用封装强度更弱的类.这个时候你还http相关的知识
2.如何抓取有用的信息?
对于爬虫来说一个网页上有那些有用的信息嗯
1.URL,爬虫拿到这个网页上其他网页的url就可以跳转到其他页面的。
2.这个页面上的媒体资源,比如有些同学需要的图片
3。网页包含的有用信息,比如贴吧上某些网友发志愿,要的留邮箱,在这个网页上面有很多人的邮箱,可能你就需要这些邮箱。那么这就是有用的信息。
好了,该解决问题了。我们爬虫获取信息主要利用正则表达式,string的IndexOf方法来搜索和匹配。
举个例子
<li><a name=‘nav2‘ target=_blank href=http://bang.dangdang.com/books>图书排行榜</a></li> <li><a name=‘nav2‘ target=_blank href=http://book.dangdang.com/children>童书</a></li> <li><a name=‘nav2‘ target=_blank href=http://book.dangdang.com/01.43.htm>教辅</a></li> <li><a name=‘nav2‘ target=_blank href=http://book.dangdang.com/01.03.htm>小说</a></li> <li><a name=‘nav2‘ target=_blank href=http://book.dangdang.com/01.22.htm>管理</a></li> <li><a name=‘nav2‘ target=_blank href=http://book.dangdang.com/01.05.htm>文学</a></li> <li><a name=‘nav2‘ target=_blank href=http://book.dangdang.com/01.21.htm>成功励志</a></li> <li><a name=‘nav2‘ target=_blank href=http://book.dangdang.com/01.01.htm>青春文学</a></li> <li><a name=‘nav2‘ target=_blank href=http://book.dangdang.com/01.36.htm>历史</a></li> <li><a name=‘nav2‘ target=_blank href=http://book.dangdang.com/01.28.htm>哲学宗教</a></li> <li><a name=‘nav2‘ target=_blank href=http://book.dangdang.com/01.38.htm>传记</a></li> <li><a name=‘nav2‘ target=_blank href=http://book.dangdang.com/01.18.htm>保健养生</a></li> <li><a name=‘nav2‘ target=_blank href=http://book.dangdang.com/01.15.htm>亲子家教</a></li> <li><a name=‘nav2‘ target=_blank href=http://book.dangdang.com/20130201_vcey>新书预售</a></li> <li><a name=‘nav2‘ target=_blank href=http://book.dangdang.com/20161108_1tkv>名人书斋</a></li> <li><a name=‘nav2‘ target=_blank href=http://e.dangdang.com/?ref=book-01-A>电子书</a></li> <li><a name=‘nav2‘ target=_blank href=http://chuban.dangdang.com/>当当原创</a></li> </ul> </div></div>
这是当当网站某个页面的源代码的一个部分,相关图书品类的URL,他们是不是有很多相似之处嗯 "ref=http://book.dangdang.com/01.03.htm" href=http://book.dangdang.com/01.18.htm”除了数字不一样,其他都一样我们就可以使用正则表达式
http://book.dangdang.com/[0-9]{2}.[0-9]{2}.hml
具体的正则表达式相关知识请查阅相关书籍
3如何将信息保存下来
我们拿到数据必须对数据进行持久化处理。你可以讲数据写入TXT文件,excel文件等。我推荐的是存进数据库。利用编程语言提供的工具比如C#的ADO.NET,JAVA的JDBC,也可以使用O/RM框架,例如Etity Framework.
其他问题。
遇到反爬虫,我们的IP地址会被服务器疲敝,禁止访问了这个时候WebClient不能用,封装性太强,太傻了。
信息重复问题,有时候某个字符会在一个网页里面出现不止一次,这个时候会出现信息重复,解决办法可以是在添加这条数据之前先检查是否已经存在。或则收集完毕之后删去重复的。
标签:sha 推荐 其他 爬虫 lan 框架 获取 网站 indexof
原文地址:http://www.cnblogs.com/zuin/p/6105762.html