zoukankan      html  css  js  c++  java
  • Python 爬虫实战入门(下)

    上一篇(

     

    跳转任意门)我们通过requests将豆瓣电影top250的网页内容都爬取下来了,但是爬取的是整个网页内容,我们需要对这些内容进行分析,只将我们需要的内容保存下来,不需要的就直接丢弃。

    那在这呢,给大家介绍另外一个第三方库Beautiful Soup,这里是它的中文介绍:

    https://www.crummy.com/software/BeautifulSoup/bs3/documentation.zh.html

    可以大概看一下它的介绍:Beautiful Soup 是用Python写的一个HTML/XML的解析器,它可以很好的处理不规范标记并生成剖析树(parse tree)。它提供简单又常用的导航(navigating),搜索以及修改剖析树的操作。它可以大大节省你的编程时间。

    那在这呢,咱们大概分析一下我们怎么对页面进行分析截取。

    1.BeautifulSoup是基于标签的,所以我们第一步要准确定位到我们需要信息所在的标签。

    2 .从定位的标签中提取我们需要的信息(一般在属性或者在string中)

    3. 对于提取数据的简单处理

    那我们照着上面的流程,对我们需要实现的程序进行分析

    1. 需要准确定位到我们需要信息的标签,在这里,如果能有UI自动化基础,那就会更好理解一些,我们将标题所在的css selector拷贝出来

    #content > div > div.article > ol > li:nth-child(1) > div > div.info > div.hd > a > span:nth-child(1)

     

    2. 确认需要的信息在text属性里

    那我们来简单的实现一下(test3.py):

     

    根据打印出来的信息,我们已经可以看到,第一条信息被我们截取出来了

     

    我们以标题为例,再来看看每一页不同信息之间的区别

    第一条:#content > div > div.article > ol > li:nth-child(1) > div > div.info > div.hd > a > span:nth-child(1)

    第二条:#content > div > div.article > ol > li:nth-child(2) > div > div.info > div.hd > a > span:nth-child(1)

    第三条:#content > div > div.article > ol > li:nth-child(3) > div > div.info > div.hd > a > span:nth-child(1)

    可以看出来,除了标红的地方不一致之外,其他的内容一毛一样,那我们可以做以下处理(test4.py):

     

    根据打印信息,可以看到,当前单独页面的处理已经输出出来了

     

    现在单独页面处理已经完成,接下来我们结合一下上一步的不同请求操作,和上面的页面处理,将所有的页面都来处理一下,参考以下代码(test5.py):

     

    根据输出信息,可以看到top250的信息。到这里,其实我们的爬虫已经可以工作了。

    现在,大家已经可以将豆瓣电影 top250的内容爬取下来,并提取出需要的信息,可是现在我们能看到信息并没有办法持续存储,每次需要的时候都得重新爬取。那在这呢,我们来试着将爬取出来的信息保存到本地。

    那在这呢,我们需要借助文档写入来对当前内容进行保存,对文档写入的话,我们需要借助open函数来写入。

    先对之前爬取出来的内容进行一下分析:

    第1条信息

    标题为:肖申克的救赎

    评分为:9.7

    标题为:希望让人自由。

    第2条信息

    标题为:霸王别姬

    评分为:9.6

    标题为:风华绝代。

    第3条信息

    标题为:阿甘正传

    评分为:9.5

    标题为:一部美国近现代史。

    第4条信息

    标题为:这个杀手不太冷

    评分为:9.4

    标题为:怪蜀黍和小萝莉不得不说的故事。

    我们可以看出来,每一条信息都是比较规整的,那我们可以将这些数据存储成csv文件。

    那在这里就需要将之前的代码进行一下小改动(testspider.py)

     

    运行代码之后,可以看到当前目录下生成了一个豆瓣电影250.csv的文件,在这里要稍微注意一下,如果直接使用excel打开当前这个csv文件,会出现乱码:

     

    我们可以使用记事本打开之后,另存为 – 选择编码为“ANSI”:再次用excel打开,就可以看到内容了

     

     

    到这里,我们的Python 爬虫实战入门就告一段落,希望大家学习愉快。

    本文所有代码都可以在github上下载,链接地址为:

    https://github.com/chrisblue0605/testspider_for_py.git

    作  者:Testfan Chris

    出  处:微信公众号:自动化软件测试平台

    版权说明:欢迎转载,但必须注明出处,并在文章页面明显位置给出文章链接

     
  • 相关阅读:
    .net中连接远程目录的解决方案
    VS2008+Window Mobile开发环境的搭建(转)
    安装任何版本ActiveSync都出错原因
    问题让人开始慢慢的思考
    [原创]EasyUI的TreeGrid查询功能实现
    听客户说然后再做开发
    EasyUI的DataGrid合击汇总页脚使用教程
    ASP.NET MVC 使用AderTemplate模板引擎进行视图显示
    C#的JSON数据格式转换方法
    Delphi使用ReportMachine制作小计和总计报表
  • 原文地址:https://www.cnblogs.com/testfan2019/p/12525862.html
Copyright © 2011-2022 走看看