Scrapy抓取微信demo

1. Scrapy是什么?

2. 如何安装Scrapy?

2. 如何构建一个简单的spider?

3. 如何解析HTML?

4. 如何写入数据库?

关于Scrapy

Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。

安装Scrapy

1. 需要安装Python2.7

2. 安装pip

下载get-pip.py 然后执行python get-pip.py

3. 安装lxml

pip install lxml

4. 安装OpenSSL

pip install pyopenssl

5. 安装Scrapy

pip install Scrapy

6. 如果是在windows平台需要安装Python Windows扩展

到这里http://sourceforge.net/projects/pywin32/files/pywin32/Build%20219/ 下载对应版本

Scrapy简单使用

    参考:http://doc.scrapy.org/en/0.24/intro/tutorial.html

1. 创建一个Scrapy项目

scrapy startproject tutorial

2. 定义解析对象

3. 定义spider

注意:

1. 需要指定spider的name属性并且是唯一的,用来标识当前spider

2. 定义爬虫的入口 start_urls 可以是一个或多个

3. parse()方法是每个start_url的响应回调

4. 启动spider

scrapy crawl dmoz

数据解析

数据解析可以使用正则或XPath,可以在parse方法中对response对象进行解析

以搜狗微信为例:

1. 获取微信文章列表

这样就匹配了所有列表

2. 从列表中解析每条微信的标题,链接,公众号,发布时间等属性

获取标题

从HTML结构来看,标题文字是包含在<h4><a>标题</h4>中,所以使用“h4/a”获取a标签

因为其中包含<em>标签,这里做了去除操作,使用正则把标签都去掉了

如何自动翻页?

1. 找到下一页链接

2. 把链接解析出来

3. 将"下一页"链接作为请求对象继续抓取

数据存储

在Scrapy框架中,有pipeline模块专门做数据存储,只需简单定义即可

1. 定义数据库链接对象

指定数据库为NewsDB

2. 写入数据

Scrapy调试

使用srcapy shell "url"进行调试,前提是需要安装ipython

例如:

1. 准备链接进行调试http://weixin.sogou.com/weixin?type=2&ie=utf-8&query=%E4%B8%87%E5%9C%A3%E8%8A%82

2. 启动shell

3. 使用XPath解析列表

总结:

1. Scrapy是一个异步的爬虫框架,只需做好数据解析就相当于完成了一个spider

2. 在将抓取到的数据保存为文件时,默认会显示成unicode,需要借助工具转换为中文,但保存到数据库时不需要做处理

3. 在parse()方法中可以设置休眠时间用来控制抓取频率

4. 在setting.py中设置user-agent用来模拟浏览器

时间: 2024-11-14 15:53:39

Scrapy抓取微信demo的相关文章

如何利用Python网络爬虫抓取微信朋友圈的动态(上)

今天小编给大家分享一下如何利用Python网络爬虫抓取微信朋友圈的动态信息,实际上如果单独的去爬取朋友圈的话,难度会非常大,因为微信没有提供向网易云音乐这样的API接口,所以很容易找不到门.不过不要慌,小编在网上找到了第三方工具,它可以将朋友圈进行导出,之后便可以像我们正常爬虫网页一样进行抓取信息了. [出书啦]就提供了这样一种服务,支持朋友圈导出,并排版生成微信书.本文的主要参考资料来源于这篇博文:https://www.cnblogs.com/sheng-jie/p/7776495.html

scrapy抓取的页面中文会变成unicode字符串

不了解编码的,需要先补下:http://www.cnblogs.com/jiangtu/p/6245264.html 现象:从scrapy抓取的页面中文会变成unicode字符串,如下图 2017-03-28 23:00:12 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.lagou.com/jobs/2617468.html> {'describe': [u'<div>\n <p>\u5c97\u

分布式爬虫:使用Scrapy抓取数据

分布式爬虫:使用Scrapy抓取数据 Scrapy是Python开发的一个快速,高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据.Scrapy用途广泛,可以用于数据挖掘.监测和自动化测试. 官方主页: http://www.scrapy.org/ 中文文档:Scrapy 0.22 文档 GitHub项目主页:https://github.com/scrapy/scrapy Scrapy 使用了 Twisted 异步网络库来处理网络通讯.整体架构大致如下(注:图片来自

通过Scrapy抓取QQ空间

毕业设计题目就是用Scrapy抓取QQ空间的数据,最近毕业设计弄完了,来总结以下: 首先是模拟登录的问题: 由于Tencent对模拟登录比较讨厌,各个防备,而本人能力有限,所以做的最简单的,手动登录后,获得Cookie信息,然后携带访问. 其次是数据接口: 通过对QQ空间的网页分析,数据主要是通过Json的形式返回.选择了两个数据接口进行数据抓取 每个QQ的详细信息接口: "http://user.qzone.qq.com/p/base.s8/cgi-bin/user/cgi_userinfo_

php 抓取微信列表中的最新的一组微信消息

<?php $_G['wx_g'] = array('init' => array( "wx_content" => array("weixin_user" => "微信号码", "weixin_pass" => "微信密码") ) ); wx_login(); $messge_list = get_message_list(); $file_id=$messge_list['

如何利用Python网络爬虫抓取微信好友数量以及微信好友的男女比例

前几天给大家分享了利用Python网络爬虫抓取微信朋友圈的动态(上)和利用Python网络爬虫爬取微信朋友圈动态--附代码(下),并且对抓取到的数据进行了Python词云和wordart可视化,感兴趣的伙伴可以戳这篇文章:利用Python词云和wordart可视化工具对朋友圈数据进行可视化. 今天我们继续focus on微信,不过这次给大家带来的是利用Python网络爬虫抓取微信好友总数量和微信好友男女性别的分布情况.代码实现蛮简单的,具体的教程如下. 相信大家都知道,直接通过网页抓取微信的数据

利用Python网络爬虫抓取微信好友的所在省位和城市分布及其可视化

前几天给大家分享了如何利用Python网络爬虫抓取微信好友数量以及微信好友的男女比例,感兴趣的小伙伴可以点击链接进行查看.今天小编给大家介绍如何利用Python网络爬虫抓取微信好友的省位和城市,并且将其进行可视化,具体的教程如下. 爬取微信好友信息,不得不提及这个itchat库,简直太神奇了,通过它访问微信好友基本信息可谓如鱼得水.下面的代码是获取微信好友的省位信息: 程序运行之后,需要扫描进行授权登录,之后在Pycharm的控制台上会出现如下图的红色提示,这些红色的字体并不是我们通常遇到的Py

利用Python网络爬虫抓取微信好友的签名及其可视化展示

前几天给大家分享了如何利用Python词云和wordart可视化工具对朋友圈数据进行可视化,利用Python网络爬虫抓取微信好友数量以及微信好友的男女比例,以及利用Python网络爬虫抓取微信好友的所在省位和城市分布及其可视化,感兴趣的小伙伴可以点击进去看看详情,内容方面不是很难,即使你是小白,也可以通过代码进行实现抓取.今天,小编继续给大家分享如何利用Python网络爬虫抓取微信好友的签名及其可视化展示,具体的教程如下所示. 1.代码实现还是基于itchat库,关于这个神奇的库,在之前的文章中

Scrapy抓取起点中文网排行榜

项目名称:qidian 项目描述:利用scrapy抓取七点中文网的"完本榜"总榜的500本小说,抓取内容包括:小说名称,作者,类别,然后保存为CSV文件 目标URL:https://www.qidian.com/rank/fin?style=1 项目需求: 1.小说名称 2.作者 3.小说类别 第一步:在shell中创建项目 scrapy startproject qidian 第二步:根据项目需求编辑items.py 1 #-*- coding: utf-8 -*- 2 import