• 01 今日内容概要

  • 02 内容回顾:爬虫

  • 03 内容回顾:并发和网络

  • 04 Scrapy框架:起始请求定制

  • 05 Scrapy框架:深度和优先级

  • 06 Scrapy框架:内置代理

  • 07 Scrapy框架:自定义代理

  • 08 Scrapy框架:解析器

01 今日内容概要

1.1 starts_url;

1.2 下载中间件;

  • 代理

1.3 解析器

1.4 爬虫中间件

  • 深度
  • 优先级

02 内容回顾:爬虫

2.1 Scrapy依赖Twisted

2.2 Twisted是什么以及他和requests的区别?

  2.2.1 requests是一个Python实现的可以伪造浏览器发送HTTP请求的模块;——封装SOCKET发送请求;

  2.2.2 Twisted是基于事件循环的异步非阻塞循环网络框架; ——封装SOCKET发送请求,单线程完成并发请求;

  • 非阻塞:不等待;
  • 异步:回调;
  • 事件循环:不断地去轮询去检查状态;

2.3 HTTP请求的本质;

  • 请求头
  • 请求体

2.4 Scrapy

  • 创建project
  • 创建爬虫
  • 启动爬虫
  • response对象-text、body、request
  • xpath解析器——/    //   .//  //div[@x = "xx"]    //div/text()    //div/@href    .extract()     .extract_first()

2.5 pipeline持久化

  • pipeline的5个方法
  • 爬虫中:yield Item对象
  • yield Request对象
  • cookie

03 内容回顾:并发和网络

3.1 OSI七层模型,TCP/IP五层模型,

3.2 三次握手和四次挥手

3.3 路由器和交换机的区别?

3.4 ARP协议

3.5 DNS解析

3.6 HTTP和HTTPS

3.7 进程、线程和协程的区别

3.8 GIL锁

3.9 进程如何实现进程共享?

04 Scrapy框架:起始请求定制

4.1 start_urls;

4.2 什么是可迭代对象?

05 Scrapy框架:深度和优先级

5.1 深度

  • 最开始是0
  • 每次yield时候,会根据原来的请求中的depth + 1
  • 通过配置DEPTH_LIMIT 深度控制

5.2 优先级

  • 请求被下载的优先级——深度*配置 DEPTH_PRIORITY
  • 配置DEPTH_PROORITY

06 Scrapy框架:内置代理

6.1 Scrapy内置代理;

6.2 Scrapy自定义代理;

6.3 学习到一定程度,就要读源码;

07 Scrapy框架:自定义代理

7.1 自定义代理池

7.2 商业产品,阿布云

08 Scrapy框架:解析器

8.1 xpath解析器

8.2 css解析器

Python-S9-Day127-Scrapy爬虫框架2的更多相关文章

  1. Python之Scrapy爬虫框架安装及简单使用

    题记:早已听闻python爬虫框架的大名.近些天学习了下其中的Scrapy爬虫框架,将自己理解的跟大家分享.有表述不当之处,望大神们斧正. 一.初窥Scrapy Scrapy是一个为了爬取网站数据,提 ...

  2. Python爬虫教程-31-创建 Scrapy 爬虫框架项目

    本篇是介绍在 Anaconda 环境下,创建 Scrapy 爬虫框架项目的步骤,且介绍比较详细 Python爬虫教程-31-创建 Scrapy 爬虫框架项目 首先说一下,本篇是在 Anaconda 环 ...

  3. Python的两个爬虫框架PySpider与Scrapy安装

    Python的两个爬虫框架PySpider与Scrapy安装 win10安装pyspider: 最好以管理员身份运行CMD,不然可能会出现拒绝访问文件夹的情况! pyspider:pip instal ...

  4. scrapy爬虫框架教程(二)-- 爬取豆瓣电影TOP250

    scrapy爬虫框架教程(二)-- 爬取豆瓣电影TOP250 前言 经过上一篇教程我们已经大致了解了Scrapy的基本情况,并写了一个简单的小demo.这次我会以爬取豆瓣电影TOP250为例进一步为大 ...

  5. Scrapy爬虫框架(实战篇)【Scrapy框架对接Splash抓取javaScript动态渲染页面】

    (1).前言 动态页面:HTML文档中的部分是由客户端运行JS脚本生成的,即服务器生成部分HTML文档内容,其余的再由客户端生成 静态页面:整个HTML文档是在服务器端生成的,即服务器生成好了,再发送 ...

  6. Scrapy爬虫框架与常用命令

    07.08自我总结 一.Scrapy爬虫框架 大体框架 2个桥梁 二.常用命令 全局命令 startproject 语法:scrapy startproject <project_name> ...

  7. python3.7.1安装Scrapy爬虫框架

    python3.7.1安装Scrapy爬虫框架 环境:win7(64位), Python3.7.1(64位) 一.安装pyhthon 详见Python环境搭建:http://www.runoob.co ...

  8. 安装scrapy 爬虫框架

    安装scrapy 爬虫框架 个人根据学习需要,在Windows搭建scrapy爬虫框架,搭建过程种遇到个别问题,共享出来作为记录. 1.安装python 2.7 1.1下载 下载地址 1.2配置环境变 ...

  9. scrapy爬虫框架教程(二)-- 爬取豆瓣电影

    前言 经过上一篇教程我们已经大致了解了Scrapy的基本情况,并写了一个简单的小demo.这次我会以爬取豆瓣电影TOP250为例进一步为大家讲解一个完整爬虫的流程. 工具和环境 语言:python 2 ...

  10. Scrapy 爬虫框架学习笔记(未完,持续更新)

    Scrapy 爬虫框架 Scrapy 是一个用 Python 写的 Crawler Framework .它使用 Twisted 这个异步网络库来处理网络通信. Scrapy 框架的主要架构 根据它官 ...

随机推荐

  1. python 学习之FAQ:find 与 find_all 使用

      FAQ记录   1. 错误源码 错误源码如下 def fillUnivList(_html,_ulist): soup =BeautifulSoup(_html,'html.parser') fo ...

  2. help.hybris.com和help.sap.com网站的搜索实现

    help.hybris.com 我使用help.hybris.com时,发现每次在搜索栏输入文字时,没有发出任何HTTP请求,那么这个自动完成的下拉框里的记录从哪里来的?我看了下实现,发现所有自动完成 ...

  3. Windows底层开发前期学习准备工作

    1.若对Windows底层开发没有兴趣,不建议继续深究, 若有些兴趣可以继续. 2. 先广泛打基础,比如C/ASM/C++/MFC,再学习Windows核心编程,对R3上的一些开发有所熟悉,再系统的学 ...

  4. 【转】iOS开发4:关闭键盘

    在 iOS 程序中当想要在文本框中输入数据,轻触文本框会打开键盘.对于 iPad 程序,其键盘有一个按钮可以用来关闭键盘,但是 iPhone 程序中的键盘却没有这样的按钮,不过我们可以采取一些方法关闭 ...

  5. js数据结构处理--------扁平化数组处理为树结构数据

    将扁平化的数组处理为树结构数据,我们可以利用对象来处理,对象的复制是浅拷贝,指向相同的内存地址: var arr = [ { id: 0, pid: -1, name: 'sadas' }, { id ...

  6. Quartz 配置文件属性

    主要配置 Property Name Req'd Type Default Value org.quartz.scheduler.instanceName no string 'QuartzSched ...

  7. Oracle小知识_长期总结

    更新时间:2018年7月16日 11:22:28 一. 系统 1. 打开防火墙后 Oracle 无法链接 新建1521端口规则. 二.知识 A. 序列 1. nextval ------------- ...

  8. utf8、ansii、unicode编码之间的转换

    #include "stdafx.h"#include "windows.h"#include <iostream>#include <str ...

  9. 当GetWindowText获取不到标题时可以用SendMessage

    GetWindowText所有父窗口标题基本可以获取到, 但是当获取父窗口下的子窗口控件标题文本时有时候就没那么好用了, 这个时候可以通过SendMessage发送消息来获取,也很简单,C/C++代码 ...

  10. [Python]有关pygame库中的flip和update的区别

    pygame.display.flip()和pygame.display.update()的用法上的区别: 资料一.   资料二. (资料最后更新时间:2019年1月9日)