美文网首页
python+正则表达式实现爬取猫眼电影排行top100

python+正则表达式实现爬取猫眼电影排行top100

作者: 采星星的小太阳BavaLI | 来源:发表于2020-04-06 22:28 被阅读0次

    需求:

    爬取猫眼电影排名前一百的电影基本信息,图片链接,主演等

    编辑器:

    pycharm

    代码演示:

    1.首先import 我们所需要的库文件

    1

    2.定义一个获取page,也就是HTML文本的方法:

    在这里,我们为了代码的见解复用性,定义一个函数来获取指定url,默认headers=None的函数,并进行了异常的处理,需要用到requests.exceptions 里面的RequestException,为什么使用它呢,因为python是支持继承的,而RequestException恰恰是所有Error或者是exception的父类,所以为了可以简便操作,直接引入父类。由状态码是否等于200来进行判断请求是否成功!

    2

    3.定义一个parse HTML的函数

    在这里我们使用的是正则表达式,虽然有点繁琐,但是可以让初学者对正则表达式有一个很好的理解!

    调用它的findall方法即可进行匹配。注意:这里有一个关键字,‘yield’,可能好多人都是第一次看到这个关键字,他其实类似于return,还有你要记住,带有该关键字的函数已经不再是简单意义上面的函数了,他已经是一个迭代器了!!在这里,为了是我们的数据更加的规整,我们使用yield关键字生成字典,并返回每一次for循环遍历的结果。在findall返回的结果中(是一个列表)我们使用了strip()方法进行去除换行符,使用了字符串的切片去除我们不需要的值,这样方便我们进行本地存储!

    3

    4.定义一个主方法

    模块化很重要,所以在这里我定义了一个主方法

    offset参数其实是一个我们为了爬取top100的参数,由于top100处于不同的分页之中,如果你细心的话,每一个分页其实就是改变这个参数。这里需要读者去猫眼官网排行页面自行查看。注意:在第三部分说了,带有yield的函数已经不再是一个简单的函数了,他是一个迭代器,你可以理解为一个对象,所以可以使用for遍历,wite_to_file()是一个把内容写入本地txt文件的方法,将在下面给出。

    4

    5.定义一个保存文件的方法:

    有一个content内容参数,代表我们写入的内容,指定encoding='utf-8',ensure_ascii=False,可以解决中文被写成二进制的问题,注意要关闭f

    5

    运行结果:

    程序入口:

    for循环是为了抓取top100,也就是10页的内容,读者可以去猫眼官网查看offset参数观察规律。

    控制台输出:

    6

    保存的txt文件:

    7

    总结

    这里我就没有分享源码了,实践最好,希望对大家有所帮助,谢谢,喜欢的可以点赞哦!!!

    相关文章

      网友评论

          本文标题:python+正则表达式实现爬取猫眼电影排行top100

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