经过一个多星期的学习,对 python 的语法有了一定了解,马上动手做了一个爬虫,检验学习效果。
这次爬取数据的目标是:豆瓣电影 Top250 中每一部电影的名称、排名、链接、名言 和 评分。
准备工作
运行平台:windows10
IDE:PyCharm
requests、BeautifulSoup库(使用pip进行安装)
第一步:向服务器发送请求,获得响应
由于豆瓣电影 Top250 上信息均在 html 源码中,故需获取其源码,使用 requests 库。代码如下:
第二步:对源码进行解析,提取
单页分析
首先分析原网页代码:
img01
发现我们所需要的信息都在标签中,所以我们需要定位。在标签中提取信息。但是,我们又发现:在真正含有我们所需要的信息的标签前,还有19个不含我们所需信息的标签:
img02
img03
所以,在提取信息的时候需要将前19个标签排除在外,在对含有我们所需内容的标签进行分析:
可以看到:
影片名为
排名为
链接是
名言为标签
评分为
利用这些信息就可以利用函数定位信息,进行提取。
代码如下:
以上完成了对豆瓣电影一页源代码的解析,接下来进行多页的解析,将250部电影的信息全部爬取下来:
多页爬取
在换页的时候,我们发现网页的 URL 发生了改变:
第二页的URL:https://movie.douban.com/top250?start=25&filter=
第三页的URL:https://movie.douban.com/top250?start=50&filter=
我们发现,每跳一页,URL中参数的值就增加25,所以可将作为偏移量,来定位每一页网址。
代码如下:
将爬取到的信息写入txt文件:
定义如下函数,实现将数据写入txt文件的操作
这样就实现了豆瓣电影top250的爬取。
全部代码:
从中的感觉就是,基本的语法、函数的使用是比较简单的;关键之处在于对网页源码的分析,找到合适的提取信息的方式。
输出结果
是不是很有趣,好了今天就到这里吧!See You!
本篇图文由团队 郭维强 同学提供,他的 CSDN Blog 地址为:
经过8年多的发展,LSGO软件技术团队在地理信息系统、数据统计分析、计算机视觉领域积累了丰富的研发经验,也建立了人才培养的完备体系。
欢迎对算法设计与实现感兴趣的同学加入,与我们共同成长进步。
团队寻求论文合作,我们可以辅助对方构建模型,验证算法。
团队寻求项目合作,我们可以辅助对方搭建软件系统。
领取专属 10元无门槛券
私享最新 技术干货