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

可能看着文章很短,但大家想想高考时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. [FOJ 1752] A^B mod C

    Problem 1752 A^B mod C Accept: 750    Submit: 3205Time Limit: 1000 mSec    Memory Limit : 32768 KB   ...

  2. ☀【window.self / window.parent / window.top】

    Js中的window.parent ,window.top,window.self 详解 √http://blog.csdn.net/zdwzzu2006/article/details/604763 ...

  3. spring log4j.properties

    log4j.properties log4j.rootLogger=info,appender2,appender3 #appender2\u914D\u7F6E FileAppender log4j ...

  4. SharePoint 2010在win7 x64 安装

    转:http://kaneboy.blog.51cto.com/1308893/328000 关于<SharePoint 2010应用程序开发指南>,我和杜伟同学正在撰写中,希望下半年早点 ...

  5. wpa_supplicant使用笔记

    还在搞8634,看不到头了..唉.wireless_tools的缺点是不支持WPA认证,所以有必要把wpa_supplicant也移植过来.无线 网卡是基于zydas芯片的,正好可以在网上搜到wpa_ ...

  6. bzoj 1483 [HNOI2009]梦幻布丁(链表+启发式合并)

    1483: [HNOI2009]梦幻布丁 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 1818  Solved: 761[Submit][Status ...

  7. ubuntu14.04安装opencv3.0

    sudo apt-get update sudo apt-get upgrade 搭建C/C++编译环境: sudo apt-get install build-essential 安装关联库: su ...

  8. 使用正则表达式匹配JS函数代码

    使用正则表达式匹配JS函数代码 String someFunction="init"; Pattern regex = Pattern.compile("function ...

  9. Oracle数据库自我总结(转)

    Oracle数据库自我总结 1.Oracle连接远程服务器,需要安装客户端的同时需要覆盖D:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora ...

  10. SVN版本控制安装配置说明

    版本控制好工具有SVN.CVS.VSS等多种,他们的优劣在此不说明,请网络参阅. SVN支持多种平台,此文仅描述Windows平台下使用说明. SVN客户包含客户端和服务端.Windows平台下客户端 ...