美文网首页
(学习笔记) 爬虫入门(2)

(学习笔记) 爬虫入门(2)

作者: 半颗卷心菜 | 来源:发表于2018-12-20 00:15 被阅读0次

               本次内容学自莫烦Python2.2

    这次要爬的是这个网站https://morvanzhou.github.io/static/scraping/list.html

    网站首页

    图1 要爬取的网站首页

    源码

    图2 要爬取的网站的源码

            这次要爬好像也没有什么很特别的,就是比昨天的多了一些CSS代码,只是要注意一下,下面class="month"和<style>中的.month是对应起来的。看来也要多了解一下CSS了。

    第一步还是和昨天的一样,先把网站的信息抓下来(剩下的电脑不够大,结果截不下了):

    图3 抓取网站信息

            第二步,解析html文档

    图4 解析html文档

            这里的month是一个结果的集合,get_text()就不多说了。

            find_all()第一个参数可以看出来是要查找的标签,第二个参数就相当于是一个字典了,那这句话就可以翻译成:找到soup中的<li>标签里‘class=month'的所有信息。但这里奇怪的是'二月',它的class='feb month'。所以我这里把month中<li>标签的<class>都输出来看了一下:

    图5 class=?

            所以beautifulsoup在解析的时候就以空格为分隔符把他们分成了多个字符串,而不是一个单独的字符串。

            这里的结果也是字典中的value的类型

    图6 m['class']类型 图7 一般的value类型

            然后就是抓取class="jan"的信息,也就是一月的信息了:

    图8 抓取一月的信息

        后面输出一月的文本信息的时候,视频是将jan中的<li>标签再筛选出来,做个子集:

    图9 报错

            不过这里我用python3.7是报错了,不知道是不是版本问题,这里说'beautifulset对象'没有'findAll'这个属性(不是我find_all写错了,用find_all一样报错,后来我发现findAll好像和find_all一样的)

    不过如果只是单纯的想打印出一月中的信息的话还是简单的,这里我用了两种:

    图10 打印一月份的信息

            后来我没事type(jan)和type(jan[0])的时候:

    图11 查看类型

            我发现jan[0]是tag类型的,那么,resultset没有findAll,Tag有啊!果然: 

    图12 jan的子集

            这里我发现一个问题,好像用findAll返回的结果都是resultset,而resultset又不可以用findAll和get_text方法。

            而这里的findAll又可以以list[0]的这种方式把resultset的value(tag)取出来(好绕啊)

    相关文章

      网友评论

          本文标题:(学习笔记) 爬虫入门(2)

          本文链接:https://www.haomeiwen.com/subject/nanskqtx.html