接触python一个月吧,平时在学校,课也比较多,学python的初衷就是觉得爬虫真的很有趣,也很有成就感。昨天刚刚完成了豆瓣电影top250的爬取,就突然想写篇博客,顺便梳理一下自己的思路。

    1.写在前面

        环境的搭建实在没什么好说的,本次爬取使用用的方法requests完成请求,正则表达式用于整理数据,字符串、列表、字典的操作,文件的基本操作。程序中定义了很多的函数,但是写完之后发现虽然更加方便阅读和修正,但也是代码看起来没那么好看了,因为没有在开始写程序的时候就截图,所以下面的代码是在写这篇博客的时候在新文件中进行的,源代码会在最后附上。

        ps:不知道为什么插入源代码会出现乱码,只能放截图了....

    2.正式开始

            2.1  分析首页结构

        

python 安装包 豆瓣源 python豆瓣影评_字符串

            由网页结构看出,所有的电影信息都保存在<li></li>标签中,所以第一步,请求这个网页,用正则表达式定位出li标签的信息,这里选择从<div>到</li>,因为在电影信息的上面还有一个<li>标签,为了方便提取就从<div>开始了,先将提取到的html进行初步的整理,代码和结果如下:

            

python 安装包 豆瓣源 python豆瓣影评_字符串_02

python 安装包 豆瓣源 python豆瓣影评_写入文件_03

            到此,首页的信息已全部整合到一个filtration_li_html的列表中,列表的每一个元素为一部电影的信息

            2.2  对需要的电影信息进行提取


                由提取到的电影信息可知,需要的有电影名、别名、导演、主演、上映年份、国家、类别、评分、简介


                开始提取需要信息时,写了一个很长的正则表达式,但是对正则表达式的了解还不是很彻底,提取信息时会有不符合的结果出现,所以在程序中对需要信息的提取写了很多个正则表达式,以达到需要的结果,并将信息以字符串的形式从函数中返回。


            2.3  将提取到的信息存入字典


                  所有的需要信息的提取已全部由各个函数完成,并且是以字符串的形式返回,在这一步新建字典,将获取到的信息写入,value值为各个函数返回的值,key为自定义的信息类别


            2.4  将字典中的信息写入文件


                   直接将字典写入文件,看起来并不是很好,也不利于其他格式信息的存储,因此在写入文件时将信息进行格式化


            2.5  爬取所有页面的信息


                    在第一页,只显示了25条信息,后续的信息在另外的url中,豆瓣的信息是需要在url中加入偏移量来组成新的url


                    第一页的url(需先点第一页之后的页面,再点击第一页方可显示)




python 安装包 豆瓣源 python豆瓣影评_写入文件_04



                    第二页的url



python 安装包 豆瓣源 python豆瓣影评_正则表达式_05



                    第二页相比第一页,传入了start=25


   

python 安装包 豆瓣源 python豆瓣影评_正则表达式_06



                2.7  成果



python 安装包 豆瓣源 python豆瓣影评_python 安装包 豆瓣源_07



        3. 源代码

python 安装包 豆瓣源 python豆瓣影评_正则表达式_08

python 安装包 豆瓣源 python豆瓣影评_python 安装包 豆瓣源_09

python 安装包 豆瓣源 python豆瓣影评_python 安装包 豆瓣源_10

python 安装包 豆瓣源 python豆瓣影评_python 安装包 豆瓣源_11