第十一讲:爬取猫眼网站上的前100名电影

本次我们来通过翻页爬取的方式爬取猫眼电影里面推荐的前100名电影,并存储到数据库。

1、我们登录猫眼,看下我们的数据在哪里

d6075c77492b8059b399f882a625a858382.jpg

然后点击今日TOP100,看下具体的网页数据

299a28a6440051e9b9cf854a4245214cfcb.jpg

最下面我们看到底部有页码,并分析页码与地址栏的关系。

1f026f85adf581531a107885f0646757e33.jpg

7cd3a7737c6ff76fe3ef9c623086e5b73bf.jpg

b2118abb2549cdbf366db358a21cb241605.jpg

我们可以总结出以下规律:

a94c432102494fb68dc3f09bc4c5c9dd251.jpg

后续我们通过不断变化地址栏就可以实现翻页搜索信息的效果。

 

而,我们要获取的影片内容有哪些?下面这些:排名、影片名称、主演、上映时间、评分。

1e7233998e2f1c064ea955bc4f6a963a1c0.jpg

对于我们要获取的信息,我们要查看源码,看下对应的信息的通用格式是怎样的。

按F12键,在调试模式里面点击小箭头,选中对应的页面元素就可以看到元素的源代码了。

aacfc3a5a58571e2258c770309556c32753.jpg

1、排名:

元素格式:<i class="board-index board-index-1">1</i>

上面格式中的红色字体是可以改变的,比如第二名就是:<i class="board-index board-index-2">2</i>

我们可以用\d{1,3} 代替1-100的数字,那么对应的正则表达式可以写成:

p=r'<i class="board-index board-index-\d{1,3}">\d{1,3}'

所以,我们获取排名的代码如下:

d1c35afdb527d55202c79c05b587d59c3b9.jpg

最后在修改一下,把数字提取出来,用split()函数:

b396a7caa73331ffbd725934060212f7fc5.jpg

2、电影名称:

53183e7577679931eb1cca3ec80519c31ca.jpg

有两条,我们只取一条就可以了。

元素格式:<a href="/films/1203" title="霸王别姬" class="image-link" 

根据上面,我们可以写正则表达式为:p2=r'<a href="/films/\d{1,}" title="\S{1,}" class="image-link" 

代码如下:

d501c171967d418827f275a081427794851.jpg

最后,我们要修改下,只过滤电影名称,采用split()函数

1c093ef3a0f8accbd1697aaea1066ac6f66.jpg

3、主演与上映时间:

a5052ed473e4edbbd4ba11ef5879caf073a.jpg

2fd96807f7c9fdc8709c6dc051dff71492e.jpg

4、最后是评分

0e0b55df13f6175810873fb68d6b69e186e.jpg

8589fdf37c66d9d9f7bd40329688745a194.jpg

最后,我们要做的是:

1、分值合并。

2、以上各个值的组装。

3、写入数据库。

4、翻页

先写到这里,同学们思考上面两个,答案下面一讲再公布。

注:其实我们的正则表达式更加精准的话,就不用截取那么多次。后续再重点讲正则表达式这块知识。

转载于:https://my.oschina.net/u/4082616/blog/3074932

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值