大佬用python写了个豆瓣短评爬虫,来试试你喜欢的电影吧!

前言

本篇主要实现的是对任意一部电影短评(热门)的抓取以及可视化分析。 也就是你只要提供链接和一些基本信息,他就可以

 

分析

对于豆瓣爬虫,what shold we 考虑?怎么分析呢?豆瓣电影首页

这个首先的话尝试就可以啦,打开任意一部电影,这里以姜子牙为例。打开姜子牙你就会发现它是非动态渲染的页面,也就是传统的渲染方式,直接请求这个url即可获取数据。但是翻着翻着页面你就会发现:未登录用户只能访问优先的界面,登录的用户才能有权限去访问后面的页面。

 

所以这个流程应该是 登录——> 爬虫——>存储——>可视化分析

这里提一下环境和所需要的安装,环境为python3,代码在win和linux可成功跑,如果mac和linux不能跑友字体乱码问题还请私我。其中pip用到包如下,直接用清华 镜像下载不然很慢很慢(够贴心不)。如果大家在学习中遇到困难,想找一个python学习交流环境,可以加入我们的python圈,裙号930900780,可领取python学习资料,会节约很多时间,减少很多遇到的难题。

 
  1. pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple

  2. pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple

  3. pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple

  4. pip install xlrd -i https://pypi.tuna.tsinghua.edu.cn/simple

  5. pip install xlwt -i https://pypi.tuna.tsinghua.edu.cn/simple

  6. pip install bs4 -i https://pypi.tuna.tsinghua.edu.cn/simple

  7. pip install lxml -i https://pypi.tuna.tsinghua.edu.cn/simple

  8. pip install wordcloud -i https://pypi.tuna.tsinghua.edu.cn/simple

  9. pip install jieba -i https://pypi.tuna.tsinghua.edu.cn/simple

  10. 复制代码

登录

豆瓣的登录地址

进去后有个密码登录栏,我们要分析在登录的途中发生了啥,打开F12控制台是不够的,我们还要使用Fidder抓包。

 

打开F12控制台然后点击登录,多次试探之后发现登录接口也很简单:

 

查看请求的参数发现就是普通请求,无加密,当然这里可以用fidder进行抓包,这里我简单测试了一下用错误密码进行测试。如果失败的小伙伴可以尝试手动登陆再退出这样再跑程序。

 

这样编写登录模块的代码:

 
  1. url='https://accounts.douban.com/j/mobile/login/basic'

  2. header={'user-agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36',

  3. 'Referer': 'https://accounts.douban.com/passport/login_popup?login_source=anony',

  4. 'Origin': 'https://accounts.douban.com',

  5. 'content-Type':'application/x-www-form-urlencoded',

  6. 'x-requested-with':'XMLHttpRequest',

  7. 'accept':'application/json',

  8. 'accept-encoding':'gzip, deflate, br',

  9. 'accept-language':'zh-CN,zh;q=0.9',

  10. 'connection': 'keep-alive'

  11. ,'Host': 'accounts.douban.com'

  12. }

  13. data={

  14. 'ck':'',

  15. 'name':'',

  16. 'password':'',

  17. 'remember':'false',

  18. 'ticket':''

  19. }

  20. def login(username,password):

  21. global data

  22. data['name']=username

  23. data['password']=password

  24. data=urllib.parse.urlencode(data)

  25. print(data)

  26. req=requests.post(url,headers=header,data=data,verify=False)

  27. cookies = requests.utils.dict_from_cookiejar(req.cookies)

  28. print(cookies)

  29. return cookies

  30. 复制代码

这块高清之后,整个执行流程大概为:

 

爬取

成功登录之后,我们就可以携带登录的信息访问网站为所欲为的爬取信息了。虽然它是传统交互方式,但是每当你切换页面时候会发现有个ajax请求。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值