码迷,mamicode.com
首页 > 其他好文 > 详细

爬虫神器XPath,程序员带你免费获取周星驰等明星热门电影

时间:2016-10-07 22:57:16      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:

技术分享

本教程由“做全栈攻城狮”原创首发,本人大学生一枚平时还需要上课,但尽量每日更新文章教程。一方面把我所习得的知识分享出来,希望能对初学者有所帮助。另一方面总结自己所学,以备以后查看。

可能看着文章很短,但大家想想高考时800字的作文用了多长时间。字都是一个字一个字的码出来的,也需要很多精力。

非常需要各位的支持,哪怕点个赞,评论一下。更多技术方向的文章可以关注我。力求写出高质量文章。帮助更多学习技术的人。

本人大学生一枚,如各位有Asp.Net和安卓开发方向的兼职,可以联系微信:cxx7177.感谢您。

一、项目描述:

作为资深电影迷,最新的电影是什么?热门电影又是啥?这些问题一直困扰着我。恰逢休息无聊,想找个电影看一下,而众所周知各大搜索引擎设有热搜榜单。我们可以通过榜单进行查看最热热搜电影。而作为程序员,总得把学得的技术应用一下。当然这段时间程序员抢月饼事件,却吓得除了一阵冷汗。当然,我们做的事情是合乎道德的。不能因为我们爬了个电影热榜成为众讨的对象的。哈哈,开个玩笑。

开发爬虫程序,爬取360电影热搜榜的热门电影。地址:http://top.so.com/index?c=%E7%94%B5%E5%BD%B1。

二、所需技术点:

  1. XPath

  2. WebRequest请求

  3. Winform

  4. HTML解析器:HtmlAgilityPack DLL地址:http://htmlagilitypack.codeplex.com/

三、XPath:

1.XPath介绍:

XPath是对XML文档通过路径表达式,进行信息查找的一种语言。同样XPath支持Html,类似于javascript的形式,通过XPath,可以进行标签的获取了。配合请求逻辑。这可以堪称开发爬虫的神器。

2.XPath语法:

//定位根节点

/往下层寻找

/text()提取文本内容

/@xxx提取属性xxx的值

例如:

//ul/li[@id="test"]/text() -------表示根节点下面ul下id为test的li标签的文本内容

3.WebRequest 进行Get请求:

我这里写了个helper的Get方法供以参考:

技术分享

四、使用XPath提取热门电影:

  1. 新建Winform项目,如图添加如下控件:

    技术分享

    做点调整:

    技术分享

  2. 为了使用HtmlAgilityPack我们先进行引用。访问:http://htmlagilitypack.codeplex.com/并下载。引用。

    技术分享

  3. 为了方便使用,添加一个根据XPATH获取筛选的字符串的方法:

    技术分享

  4. 书写XPath字符串:(根据插件获取XPath,然后修改一下)

    技术分享

    多获取几个电影标题,如图:

    技术分享

    即可找到规律,所以最终的XPath:

    技术分享

  5. 抓爬热门电影,按钮点击事件:

    技术分享

五、最后扩充

这只是简单的获取第一页的热门电影情况,仍然可以通过以上的方式,爬取下方换页按钮的链接,进行跳转,抓取更多的电影名称。

爬虫神器XPath,程序员带你免费获取周星驰等明星热门电影

标签:

原文地址:http://www.cnblogs.com/happpytoo/p/5936799.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!