本文就豆瓣8分以上电影进行爬取-存储-可视化分析。 不足之处欢迎在评论区指出讨论。 当然,如果觉得不错,要帮助的话,还请点个赞。
爬取网页链接如下: URL:https://movie.douban.com/tag/#/?sort=U&range=8,10&tags=%E7%94%B5%E5%BD%B1
动态网页和静态网页
在爬取前要先分析网页是动态还是静态的。 动态网页和静态网页的最大区别是:
1.静态页面是不能随时改动的,静态是一次性bai写好放在服务器上进行浏览的,如果想改动,必须在页面上修改,然后再上传服务器覆盖原来的页面,这样才能更新信息,比较麻烦,使用者不能随时修改。
2.动态页面是可以随时改变内容的,有前后台之分,管理员可以在后台随时更新网站的内容,前台页面的内容也会随之更新,比较简单易学。
静态网页是指:
不应用程序而直接或间接制作成html的网页,这种网页的内容是固定的,修改和更新都必须要通过专用的网页制作工具,比如Dreamweaver。
动态网页是指:
使用网页脚本语言,比如php、asp、asp.net等,通过脚本将网站内容动态存储到数据库,用户访问网站是通过读取数据库来动态生成网页的方法。
网站上主要是一些框架基础,网页的内容大都存储在数据库中。 扩展资料: 动态网页:
1.所谓的动态网页,是指跟静态网页相对的一种网页编程技术。
2.静态网页,随着html代码的生成,页面的内容和显示效果就基本上不会发生变化了,除非你修改页面代码。
3.而动态网页则不然,页面代码虽然没有变,但是显示的内容却是可以随着时间、环境或者数据库操作的结果而发生改变的。
静态网页:
1.在网站设计中,纯粹HTML格式的网页通常被称为“静态网页”,早期的网站一般都是由静态网页制作的。
2.静态网页是相对于动态网页而言,是指没有后台数据库、不含程序和不可交互的网页。
3.你编的是什么它显示的就是什么、不会有任何改变。
4.静态网页相对更新起来比较麻烦,适用于一般更新较少的展示型网站。
观察网页,发现数据是动态加载的,所以这是一个动态网页,那我们就要找到真正显示电影信息的链接。 检查网页,选中Network-XHR-(ctrl+R)刷新网页。Name中出现的第一个URLhttps://movie.douban.com/j/new_search_subjects?sort=U&range=8,10&tags=%E7%94%B5%E5%BD%B1&start=0就是当前页的链接,点击加载更多时,会出现下一页的URL。
请求网页用的是Requests库(Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用)。 注意,header可通过检查网页-刷新-在header的最后找到。 观察可知,我们需要的数据就在一个JSON串里。那么只要将网页用JSON解析后,想要那个数据就可以任我们取了。 比如获得所有电影的名称:
从JSON串里,我们可以获得电影的演员列表、封面、导演、评分、名称、URL,如下图所示: 那么,我们要进一步获取电影的介绍时,就可以直接通过JSON串提供的URL去到电影的详情页。这时,详情页是一个静态网页直接检查网页,如图: 电影剧情简介是不是就躺在标签里,等我们抱。上代码:
值得注意的是,由于编码不同,解码译码都会出现问题。这里用到如下代码:
至此,对一部电影的数据爬取已经完成了,那么,怎么爬取更多数据呢? 继续分析URL。 Request URL: https://movie.douban.com/j/new_search_subjects?sort=U&range=8,10&tags=%E7%94%B5%E5%BD%B1&start=0 Request URL: https://movie.douban.com/j/new_search_subjects?sort=U&range=8,10&tags=%E7%94%B5%E5%BD%B1&start=20 Request URL: https://movie.douban.com/j/new_search_subjects?sort=U&range=8,10&tags=%E7%94%B5%E5%BD%B1&start=40 观察可知,每一个请求里有20条数据,且URL的变化就在于star=?,而间隔就是20,那么我们要请求的链接就可以写成这样:
如此一来,就可以访问多条数据了。
本文中介绍了两种存储的方法。
EXCEL相比CSV就是可存储的容量更大。