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

可能看着文章很短,但大家想想高考时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,程序员带你免费获取周星驰等明星热门电影的更多相关文章

  1. 程序员带你十天快速入门Python,玩转电脑软件开发(四)

    本系列文章立志于从一个已经习得一门编程语言的基础之上,全面介绍Python的相关开发过程和相关经验总结.本篇文章主要是基于上一篇的程序员带你十天快速入门Python,玩转电脑软件开发(三)的基础之上, ...

  2. 程序员带你学习安卓开发-XML文档的创建与解析

    这是程序员带你学习安卓开发系列教程.本文章致力于面向对象程序员可以快速学习开发安卓技术. 上篇文章:程序员带你学习安卓开发系列-Android文件存储 因知识连贯性推荐关注头条号:做全栈攻城狮.从头开 ...

  3. 程序员带你学习安卓开发系列-Android文件存储

    这是程序员带你学习安卓开发系列教程.本文章致力于面向对象程序员可以快速学习开发安卓技术. 上篇文章:.Net程序员快速学习安卓开发-布局和点击事件的写法 主要讲解了布局和点击事件的写法. 上篇文章补充 ...

  4. 程序员带你十天快速入门Python,玩转电脑软件开发(三)

    声明:本次教程主要适用于已经习得一门编程语言的程序员.想要学习第二门语言.有梦想,立志做全栈攻城狮的你 . 如果是小白,也可以学习本教程.不过可能有些困难.如有问题在文章下方进行讨论.或者添加QQ群5 ...

  5. 程序员带你十天快速入门Python,玩转电脑软件开发(二)

    关注今日头条-做全栈攻城狮,学代码也要读书,爱全栈,更爱生活.提供程序员技术及生活指导干货. 如果你真想学习,请评论学过的每篇文章,记录学习的痕迹. 请把所有教程文章中所提及的代码,最少敲写三遍,达到 ...

  6. 程序员带你十天快速入门Python,玩转电脑软件开发(一)

    关注今日头条-做全栈攻城狮,学代码也要读书,爱全栈,更爱生活.提供程序员技术及生活指导干货. 如果你真想学习,请评论学过的每篇文章,记录学习的痕迹. 请把所有教程文章中所提及的代码,最少敲写三遍,达到 ...

  7. 程序员带你学习安卓开发,十天快速入-对比C#学习java语法

    关注今日头条-做全栈攻城狮,学代码也要读书,爱全栈,更爱生活.提供程序员技术及生活指导干货. 如果你真想学习,请评论学过的每篇文章,记录学习的痕迹. 请把所有教程文章中所提及的代码,最少敲写三遍,达到 ...

  8. 好程序员带你了解一下HTTPS和SSL/TLS协议的背景与基础

    >> 相关背景知识 要说清楚 HTTPS 协议的实现原理,至少需要如下几个背景知识. 大致了解几个基本术语(HTTPS.SSL.TLS)的含义 大致了解 HTTP 和 TCP 的关系(尤其 ...

  9. <转载>国外程序员推荐的免费编程书籍资源

    一.George Stocker 提供了一大串,分类如下: How to Design Programs: An Introduction to Computing and Programming 2 ...

随机推荐

  1. ThreadLocal实现方式&使用介绍---无锁化线程封闭

    虽然现在可以说很多程序员会用ThreadLocal,但是我相信大多数程序员还不知道ThreadLocal,而使用ThreadLocal的程序员大多只是知道其然而不知其所以然,因此,使用ThreadLo ...

  2. Hierarchy--分层。单词意思即为分层视图。

    英文释义:Hierarchy--分层.单词意思即为分层视图. 功能:层次Viewer允许你调试和优化您的用户界面.还可以学习别人做好的UI界面,它提供了一个布局的视图层次结构(布局视图)的视觉表现和放 ...

  3. @DataProvider ITestContext 参数

    package roger.testng; import java.util.Random; import org.testng.ITestContext; import org.testng.ann ...

  4. FP-Tree算法的实现

    在关联规则挖掘领域最经典的算法法是Apriori,其致命的缺点是需要多次扫描事务数据库.于是人们提出了各种裁剪(prune)数据集的方法以减少I/O开支,韩嘉炜老师的FP-Tree算法就是其中非常高效 ...

  5. Android Fragment 基本介绍[转]

    Fragment Android是在Android 3.0 (API level 11)开始引入Fragment的. 可以把Fragment想成Activity中的模块,这个模块有自己的布局,有自己的 ...

  6. localtime和localtime_r

    上程序: #include <cstdlib> #include <iostream> #include <time.h> #include <stdio.h ...

  7. [Locked] Range Sum Query 2D - Mutable

    Range Sum Query 2D - Mutable Given a 2D matrix matrix, find the sum of the elements inside the recta ...

  8. A Tour of Go Numeric Constants

    Numeric constants are high-precision values. An untyped constant takes the type needed by its contex ...

  9. zoj 2588 Burning Bridges【双连通分量求桥输出桥的编号】

    Burning Bridges Time Limit: 5 Seconds      Memory Limit: 32768 KB Ferry Kingdom is a nice little cou ...

  10. linux定时器用法

    linux定时器  原文出自http://www.cnblogs.com/processakai/archive/2012/04/11/2442294.html 今天看书看到了关于alarm的一些用法 ...