python怎么爬取电影海报_Python3 爬取时光网电影海报和电影数据

总结了一下两年前学习Python爬虫写的一个小程序,发现程序已经无法运行,在调试更新后终于能够再次运行。

先看一下运行效果和能拿到的数据

爬取电影海报到本地截图:

爬取电影数据截图:

基本思路和运行方法

时光网没有做太多的反爬虫策略,也没有太多的动态代码生成,无论是图片URL还是电影数据,还是比较容易拿到的。

使用框架和数据库:scrapy + MongoDB

测试环境:MacOS+python3

基本思路:

先找到一个电影的URL连接,发现是域名加上一个id。比如"http://movie.mtime.com/31889/", 但是通过测试我们发现这个id并不是从0开始的一个连续id,因此我们在设定了一个其实和结束id之后,需要再代码里面处理返回页面为空的情况。

for num in range(40000, 50000):

start_urls.append("http://movie.mtime.com/{0}/".format(num))

要注意如果间隔数目过大的话,爬取时间可能需要很久

此爬虫分成两个小爬虫:

数据爬虫(mtime):

拿到一部电影的标题之后,简单的把电影年份和名字存入本地的MongoDB数据库

图片爬虫(mPicture):

对scrapy自带的图片爬虫进行了简单的重写,下载过程中会对保存图片生成一个唯一的hash id最为图片名字, 这样可以避免图片重复下载,因为scrapy自带的多线程下载机制,下载过程可能会把带宽占满,根据自己机器和网络配置适当设置线程数目。因为是抓取一个页面所有图片然后通过图片尺寸进行筛选,所以有些图片不一定是海报图片。

项目源码:https://github.com/Danielyan86/Movie-scrapy​github.com

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值