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


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

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

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

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

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

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

      做点调整:

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

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

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

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

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

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

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

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

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

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

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

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

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

    五、最后扩充

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

  • 相关阅读:
    函数中的参数说明
    向脚本传递参数
    声明变量类型,数据类型转换
    获取脚本所在目录
    CSV输入输出
    判断计算机是否可以ping通
    REST风格框架:从MVC到前后端分离***
    angularjs + springmvc 上传和下载
    JDBC进行简单的增删改查
    关于有时候导入maven项目时候报错(有红色叹号,类中导入的包提示"the import java.util cannot be resolve,")
  • 原文地址:https://www.cnblogs.com/happpytoo/p/5936799.html
Copyright © 2020-2023  润新知