Python-S9-Day125-Web微信&爬虫框架之scrapy
01 今日内容概要
02 内容回顾:爬虫
03 内容回顾:网络和并发编程
04 Web微信之获取联系人列表
05 Web微信之发送消息
06 为什么request.POST拿不到数据
07 到底使用json还是data?
08 Web微信之接收消息
09 上述内容总结
10 scrapy安装
11 scrapy基本命令
12 scrapy示例:获取抽屉新闻
13 scrapy创建下载任务
14 今日作业
01 今日内容概要
1.1 Web微信;
1.1.1 获取联系人列表;
1.1.2 发送消息;
1.2 爬虫框架之scrapy(用的多,神箭手工具);
12.1 大而全的Web框架;类比于Django或Flask;
02 内容回顾:爬虫
2.1 第一部分:爬虫
2.1.1 requests和bs4基础
2.1.2 web知识
- 请求和请求
- 携带常见请求头——User-Agent\referer\host\content-type\cookie
- csrf_token——两个tab打开的同时,其中一个tab诱导我们对另外一个tab提交数据;
2.1.3 分析http请求——Chrome浏览器、FireFox浏览器;
2.1.4 爬虫的套路-汽车之家、抽屉、抽屉登录、github、拉钩、Web微信;
- XML-数据交换;配置文件;
03 内容回顾:网络和并发编程
3.1 OSI七层模型
3.2 三次握手和四次挥手
3.3 TCP和UDP的区别
3.4 路由器和交换机的区别
3.5 ARP协议
3.6 DNS解析
3.7 HTTP和HTTPS
3.8 进程、线程和携程
3.9 GIL锁
3.10 进程如何进程共享
04 Web微信之获取联系人列表
05 Web微信之发送消息
06 为什么request.POST拿不到数据
07 到底使用json还是data?
08 Web微信之接收消息
09 上述内容总结
9.1 Goal:锻炼分析HTTP请求的能力;
10 scrapy安装
10.1 在爬虫领域,是一个“大而全”的爬虫组件,涵盖了requests、bs4等组件的功能;
10.2 scrapy框架的安装
- windows——下载Twisted文件;pip3 install pywin32 ; pip3 install wheel
- Linux|Unix下的安装pip3 install scrapy;
11 scrapy基本命令
11.1 Django创建Django项目
- 创建项目django-admin startproject HelloDjango
- cd HelloDjango
- 创建应用python manage.py startapp app01
- python manage.py startapp app02
- 启动项目python manage.py runserver
11.2 Scrapy的基本命令;
- 创建项目 scrapy startproject HelloScrapy
- cd HelloScrapy
- scrapy genspider baidu baidu.com
- scrapy genspider jd jd.com
- scrapy crawl baidu
11.3 Scrapy的目录结构;
- scrapy.cfg#主配置文件;
- 项目名称HelloSrapy
- __init__.py
- items.py#定义爬取的数据结构
- middlewares.py#定义爬取时候的中间件
- pipelines.py#定义数据管道
- settings.py#配置文件;
- spiders目录#存放spiders的文件夹;
- __init__.py
12 scrapy示例:获取抽屉新闻
13 scrapy创建下载任务
14 今日作业
14.1 小结;
- HTML解析:xpath
- 再次发起请求:yield Request对象;
Python-S9-Day125-Web微信&爬虫框架之scrapy的更多相关文章
- 06 爬虫框架:scrapy
爬虫框架:scrapy 一 介绍 Scrapy一个开源和协作的框架,其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的,使用它可以以快速.简单.可扩展的方式从网站中提取所需的数据.但目前S ...
- 九、爬虫框架之Scrapy
爬虫框架之Scrapy 一.介绍 二.安装 三.命令行工具 四.项目结构以及爬虫应用简介 五.Spiders 六.Selectors 七.Items 八.Item Pipelin 九. Dowload ...
- 洗礼灵魂,修炼python(72)--爬虫篇—爬虫框架:Scrapy
题外话: 前面学了那么多,相信你已经对python很了解了,对爬虫也很有见解了,然后本来的计划是这样的:(请忽略编号和日期,这个是不定数,我在更博会随时改的) 上面截图的是我的草稿 然后当我开始写博文 ...
- 爬虫框架之Scrapy
一.介绍 二.安装 三.命令行工具 四.项目结构以及爬虫应用简介 五.Spiders 六.Selectors 七.Items 八.Item Pipelin 九. Dowloader Middeware ...
- 基于Python + requests 的web接口自动化测试框架
之前采用JMeter进行接口测试,每次给带新人进行培训比较麻烦,干脆用python实现,将代码和用例分离,易于维护. 项目背景 公司的软件采用B/S架构,进行数据存储.分析.管理 工具选择 pytho ...
- 爬虫框架:scrapy
一 介绍 Scrapy一个开源和协作的框架,其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的,使用它可以以快速.简单.可扩展的方式从网站中提取所需的数据.但目前Scrapy的用途十分广泛,可 ...
- 爬虫框架之Scrapy(一)
scrapy简介 scrapy是一个用python实现为了爬取网站数据,提取结构性数据而编写的应用框架,功能非常的强大. scrapy常应用在包括数据挖掘,信息处理或者储存历史数据的一系列程序中. s ...
- 爬虫框架之Scrapy(四 ImagePipeline)
ImagePipeline 使用scrapy框架我们除了要下载文本,还有可能需要下载图片,scrapy提供了ImagePipeline来进行图片的下载. ImagePipeline还支持以下特别的功能 ...
- 爬虫框架之Scrapy(三 CrawlSpider)
如何爬取一个网站的全站数据? 可以使用Scrapy中基于Spider的递归方式进行爬取(Request模块回调parse方法) 还有一种更高效的方法,就是基于CrawlSpider的自动爬取实现 简介 ...
随机推荐
- 【Oracle】曾经的Oracle学习笔记(8-15)ER图,三大范式,数据库字典,视图,索引,序列
一.数据库建模 二.建表 三.数据库字典 四.DML语句 五.视图 六.索引 七.序列 八.DDL语句 Lesson 8 Overview of Data Modeling and Database ...
- ADO.net数据访问方法
ADO.NET是一组用于和数据源进行交互的面向对象的类库. 核心组件有两个: DataSet 是 ADO.NET 的非连接(断开)结构的核心组件.DataSet 的设计目的很明确:为了实现独立于任何数 ...
- 获得session中的用户信息
由于每个系统都有往session中放入用户信息以及把用户信息取出来的模块,而且在session中取出用户信息的地方非常之多,所以有必要把session中对用户的操作封装成为一个工具类,以便在以后的使用 ...
- HDU4417 线段树 + 离线处理
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4417 , 线段树(或树状数组) + 离线处理 最近看了几道线段树的题都是需要离线处理数据的,正好这块比 ...
- 如何在Java代码中使用SAP云平台CloudFoundry环境的环境变量
本文使用的例子源代码在我的github上. 在我的公众号文章在SAP云平台的CloudFoundry环境下消费ABAP On-Premise OData服务介绍了如何通过Cloud Connector ...
- Unity结合Flask实现排行榜功能
业余做的小游戏,排行榜本来是用PlayerPrefs存储在本地,现在想将数据放在服务器上.因为功能很简单,就选择了小巧玲珑的Flask来实现. 闲话少叙.首先考虑URL的设计.排行榜无非是一堆分数sc ...
- IOS 截屏(保存到相册中)
@interface NJViewController () /** * 点击截屏按钮 */ - (IBAction)captureView:(UIButton *)sender; /** * 白色v ...
- IOS tableView的数据刷新
1.tableView的刷新 1> 数据刷新的总体步骤 * 修改模型数据 * 刷新表格(刷新界面) 2> 刷新表格(刷新界面)的方法 * 全局刷新(每一行都会重新刷新) - (void)r ...
- sparkSQL中udf的使用
在Spark中使用sql时一些功能需要自定义方法实现,这时候就可以使用UDF功能来实现 多参数支持 UDF不支持参数*的方式输入多个参数,例如String*,不过可以使用array来解决这个问题. 定 ...
- 索引属性 unique指定
比较重要的属性有: 名字 db.collection.ensureIndex({},{name:''}) 在创建索引时,mongodb会自己给索引创建默认的名字,这种名字并不好记,我们看一下mongo ...