为什么要 学习爬虫?

爬来爬去的才好玩呀!需要什么直接上去就是爬,美滋滋(切勿用于商用)

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系统学习资料、电子书、视频、问题解答等等,私信小编发送我要资料,就能自动获取了!

查看原文 >>
相关文章