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

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

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

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

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

一、项目描述:

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

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

二、所需技术点:

XPath

WebRequest请求

Winform

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提取热门电影:

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

做点调整:

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

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

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

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

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

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

五、最后扩充

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏程序人生

程序员效率指南

最近很多朋友都是春节前后看了知乎日报的「年度热门·能花钱的,就不要花时间」关注「程序人生」的,所以寂静了很长一段时间的后台消息,随着新读者的加入,又活跃了起来。...

39660
来自专栏阮一峰的网络日志

Google日历简易版

我试过自己搭建软件,但又懒得维护。使用过twitter,但它的档案查阅和时间序列功能实在太弱了。

18830
来自专栏coder修行路

Python爬虫从入门到放弃(二十二)之 爬虫与反爬虫大战

爬虫与发爬虫的厮杀,一方为了拿到数据,一方为了防止爬虫拿到数据,谁是最后的赢家? 重新理解爬虫中的一些概念 爬虫:自动获取网站数据的程序 反爬虫:使用技术手段防...

26950
来自专栏编程

常见测试术语解析

BAT,Build Acceptance Testing,工作版本可接受测试。新工作版本正式测试前进行的一项快速测试过程,目的是保证软件的基本功能和内容正确完整...

24970
来自专栏SAP最佳业务实践

想学FM系列(8)-SAP FM模块:主数据(6)-主数据细分

3.1.5 主数据的细分 FM模块还提供了对账户分配要素主数据的细分支持,将账户分配要素的主数据,按照企业需要的规则来细分段,每一段的单独编码都有着相应的含意,...

50090
来自专栏web前端教室

【全栈】web前端全栈开发,该怎么学?(我个人主观看法)

前端全栈,现在学前端不提全栈好像都不好意思跟人打招呼一样。今天周末就写一篇文章来跟大家交流一下,我心中的前端全栈开发,大概是个什么样子。

13940
来自专栏包子铺里聊IT

包子分布式系统科普系列 1

欢迎大家订阅包子leetcode的视频讲解: https://www.youtube.com/c/baozitraining 通过这一段时间的观察发现,多数学员...

37380
来自专栏Android开发实战

360开源全面插件化方案RePlugin—让你像玩乐高一样开发APP

6月30日,360手机卫士插件化RePlugin正式开源,该款插件化方案可以帮助主程序在“确保极其稳定”的前提下,做到“无需升级主程序”就能支持新增组件、插件。...

52520
来自专栏机器学习AI算法工程

不编程,手把手教你如何从网络采集海量数据

作者:赵一鸣 摘自:微信公号“沙漠之鹰” 不少朋友都会问:几十万条租房,二手房,薪酬,乃至天气数据都是从哪里来的?其实这些数据在十几分钟内就可以采集到! ...

46780
来自专栏大数据和云计算技术

超融合产品分析系列(1):nutanix方案

导言 上篇概述了一下现在非常火的超融合《超融合概述》。接下来要分析一下各家的超融合方案,今天开始第一家的分析:nutanix的超融合方案分析。 根据各种公...

94660

扫码关注云+社区

领取腾讯云代金券