史诗级爬虫神器scrapy框架实战(爬取微博个人信息并存入MySQL)
为什么要 学习爬虫?
爬来爬去的才好玩呀!需要什么直接上去就是爬,美滋滋(切勿用于商用)
Faceless man in a hooded robe sits at a table with
准备环境
1、准备好Python环境
2、部署好scrapy框架
导入相关包,没有报错则安装成功。
全部下载安装成功后,在cmd命令中输入scrapy 如果没有报错 则部署成功。
3、mysql的部署
heidiSQL数据库可视化
小编是win 64,所以以上都是兼容64位!
scrapy组件简介和数据流简介
1、Scrapy architecture
2、数据流
Scrapy中的数据流由执行引擎控制,其过程如下:
以上组件和数据流的部分是参考别的的介绍,觉得描述的挺好,比较容易理解整个框架的结构。下面是干货:
scrapy工程对象
在你需要创建工程的目录底下启动cmd命令(按住shift键右键选择在此处打开命令窗口) 执行:scrapy startproject weibo
会在当前目录下生成scrapy框架的目录结构:
本人用的IDE是pycharm ,用IDE打开工程,工程最终的目录结构如图所示:
item.py的内容:
定义了两个类,InformationItem获取关注列表用户的个人信息,TweetsItem获取微博内容
weibo_spider.py的内容:
每个微博用户都有唯一的标识uid,此uid是获取需要对象的关键。修改start_url里面的ID(0123456789),比如换成留几手的ID(1761179351),即把地址换成你想获取的用户的关注人列表的信息,可以对多个用户的关注列表用redis_keyf方式进行分布式操作。内容比较多就不一一介绍,代码不理解的可以留言探讨。
获取cookies模拟登陆微博:
在myAcount中输入你自己拥有的微博账号密码,就可以模拟登陆微博啦:
这里有两种方式:
【1】模拟浏览器提交表单登陆(推荐)
【2】通过selenium WebDriver 方式登陆
验证码暂时还是先手动输一下吧,还没有找到快速有效的方式破解。
反正只要拿到cookie保存下来就可以进行抓取操作啦。
数据管道pipeline存入MySQL数据库:
MySQL部署好之后只要输入自己的用户名密码就可以存到数据库当中去
因为我的创建表格没有写到pipeline中,就先自己建好数据库和表格好了:
需要注意的是:为了让mysql正常显示中文,在建立数据库的时候使用如下语句:
创建 表格followinfo
创建表格tweets
中间组建middleware:
设置相关settings:
数据爬取效果展示:
总结
1、学习了解scrapy框架写代码熟悉数据流的流程收获还是很多的。
2、感觉不是太复杂的网站应该都是可以抓的。形成了自己的一套系统知识体系,具体情况具体分析吧。
3、验证码这块简单的还能识别,复杂的可能得稍微用点深度学习了,识别率很一般,暂时还是人工输入吧。
4、爬虫只是很入门的技术,后续需要学的东西还好多。
小伙伴们都会了吗?赶紧去试试吧!
Coding symbol on virtual screen about developing
Python系统学习资料、电子书、视频、问题解答等等,私信小编发送我要资料,就能自动获取了!
查看原文 >>