Python豆瓣电影爬虫Demo

发布于 2020-04-18  148 次阅读


我的毕设题目是‘基于Python的豆瓣网影视数据采集与分析’,花了好几天终于把PY的内容写完了,这只是个Demo虽然可以运行但是存在着诸多不足(又不是不能用),但好在能把整个豆瓣网电影信息爬取完整并存放在自己的数据库中。
PS:这个DEMO并不完善,会有部分电影爬取遗漏,应该是API的问题。

项目

问题

豆瓣反爬虫机制

豆瓣反爬虫机制
1、在没有携带 cookie 的情况下,如果某个 IP 短时间高并发请求网站,该 IP 会立马被封。当 IP 被封,登录豆瓣网站会解封。
2、在携带 cookie 的情况下,某个 IP 请求网站过于频繁。豆瓣的反爬虫机制变为只封 cookie 不封 IP。也就说退出登录或者换个账号还能继续访问网站。

有两种解决思路:第一种可以增加等待时间降低并发数,但是这样就会导致爬取效率降低;第二种就是使用代理IP轮换进行爬取。
我采用的是第二种思路,使用 随机UA + 轮换代理IP 的形式来爬取数据,这样就可以既不影响效率也不会导致IP被封。

豆瓣电影信息存在特殊字符

豆瓣某些电影存在着些特殊字符比如 黃子華棟篤笑之金盤𠺘 ,导致存入数据库报错,由于我不是太了解MySQL的编码,好在他们只是个别情况,我在处理数据的时候把这些特殊字符替换掉就好了,数据库我选用的是 utf8mb4 编码。

豆瓣是否存在API

豆瓣网存在API,具体看我这篇文章:豆瓣电影页API简易分析

演示

数据库

数据库1

数据库2

爬虫运行

爬取开始

爬取出错

爬取完成

前端页DEMO

首页

搜索


Never give up your dreams.