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

    1.写在前面

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

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

    2.正式开始

            2.1  分析首页结构

        python豆瓣top250

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

            python豆瓣top250

python豆瓣top250

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

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

                由提取到的电影信息可知,需要的有电影名、别名、导演、主演、上映年份、国家、类别、评分、简介
                开始提取需要信息时,写了一个很长的正则表达式,但是对正则表达式的了解还不是很彻底,提取信息时会有不符合的结果出现,所以在程序中对需要信息的提取写了很多个正则表达式,以达到需要的结果,并将信息以字符串的形式从函数中返回。

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

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

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

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

            2.5  爬取所有页面的信息

                    在第一页,只显示了25条信息,后续的信息在另外的url中,豆瓣的信息是需要在url中加入偏移量来组成新的url
                    第一页的url(需先点第一页之后的页面,再点击第一页方可显示)
python豆瓣top250
                    第二页的url
python豆瓣top250
                    第二页相比第一页,传入了start=25
   python豆瓣top250

                2.7  成果

python豆瓣top250

        3. 源代码

python豆瓣top250

python豆瓣top250

python豆瓣top250

python豆瓣top250

相关文章:

  • 2021-08-30
  • 2021-07-08
  • 2022-02-07
  • 2021-08-12
  • 2021-10-25
  • 2021-08-01
  • 2021-09-21
猜你喜欢
  • 2021-11-18
  • 2021-05-17
  • 2021-05-22
  • 2021-05-07
  • 2021-08-20
  • 2021-08-21
  • 2021-11-19
相关资源
相似解决方案