
python
qichangjian
菜鸟的学习之路(博客仅用于基础整理,方便查看)
展开
-
python基础笔记分享1-爬虫介绍
1. 什么是爬虫?网络爬虫也叫网络蜘蛛,如果把互联网比喻成一个蜘蛛网,那么蜘蛛就是在网上爬来爬去的蜘蛛,爬虫程序通过请求url地址,根据响应的内容进行解析采集数据,比如:如果响应内容是html,分析dom结构,进行dom解析、或者正则匹配,如果响应内容是xml/json数据,就可以转数据对象,然后对数据进行解析。2. 有什么作用?通过有效的爬虫手段批量采集数据,可以降低人工成本,提高有效数...原创 2019-01-24 10:53:55 · 245 阅读 · 0 评论 -
python爬虫Scrapy框架笔记分享4-Scrapy 数据保存
1. 数据的提取1.1 控制台打印import scrapyclass DoubanSpider(scrapy.Spider): name = 'douban' allwed_url = 'douban.com' start_urls = [ 'https://movie.douban.com/top250/' ] def par...原创 2019-01-26 16:34:37 · 328 阅读 · 0 评论 -
python爬虫Scrapy框架笔记分享5-Scrapy Pipeline
1. Item Pipeline 介绍当Item 在Spider中被收集之后,就会被传递到Item Pipeline中进行处理每个item pipeline组件是实现了简单的方法的python类,负责接收到item并通过它执行一些行为,同时也决定此Item是否继续通过pipeline,或者被丢弃而不再进行处理item pipeline的主要作用:清理html数据验证爬取的数据去重并丢...原创 2019-01-26 16:35:21 · 700 阅读 · 0 评论 -
python爬虫Scrapy框架笔记分享6-Scrapy 框架Settings讲解
Scrapy内置设置下面给出scrapy提供的常用内置设置列表,你可以在settings.py文件里面修改这些设置,以应用或者禁用这些设置项BOT_NAME默认: ‘scrapybot’Scrapy项目实现的bot的名字。用来构造默认 User-Agent,同时也用来log。当你使用 startproject 命令创建项目时其也被自动赋值。CONCURRENT_ITEMS默认...原创 2019-01-26 16:36:44 · 202 阅读 · 0 评论 -
python爬虫Scrapy框架笔记分享7-Scrapy 框架爬取卓越小说网小说案例
爬取小说spiderimport scrapyfrom xiaoshuo.items import XiaoshuoItemclass XiaoshuoSpiderSpider(scrapy.Spider): name = 'xiaoshuo_spider' allowed_domains = ['zy200.com'] url = 'http://www.zy...原创 2019-01-26 16:38:19 · 408 阅读 · 0 评论 -
python爬虫Scrapy框架笔记分享8-Scrapy 框架CrawlSpider讲解
1. CrawlSpiders原理图sequenceDiagramstart_urls ->>调度器: 初始化url调度器->>下载器: request下载器->>rules: responserules->>数据提取: responserules->>调度器: 新的url通过下面的命令可以快速创建 CrawlSpide...原创 2019-01-26 16:39:30 · 381 阅读 · 0 评论 -
python爬虫Scrapy框架笔记分享9-图片管道使用
1. 介绍Scrapy提供了一个 item pipeline ,来下载属于某个特定项目的图片,比如,当你抓取产品时,也想把它们的图片下载到本地。这条管道,被称作图片管道,在 ImagesPipeline 类中实现,提供了一个方便并具有额外特性的方法,来下载并本地存储图片:将所有下载的图片转换成通用的格式(JPG)和模式(RGB)避免重新下载最近已经下载过的图片缩略图生成检测图像的宽/...原创 2019-01-26 16:40:54 · 537 阅读 · 0 评论 -
python爬虫Scrapy框架笔记分享10-Spider 下载中间件(Middleware)
1. Spider 下载中间件(Middleware)Spider 中间件(Middleware) 下载器中间件是介入到 Scrapy 的 spider 处理机制的钩子框架,您可以添加代码来处理发送给 Spiders 的 response 及 spider 产生的 item 和 request2. 激活一个下载DOWNLOADER_MIDDLEWARES要激活一个下载器中间件组件,将其添加到...原创 2019-01-26 16:41:54 · 537 阅读 · 0 评论 -
python爬虫Scrapy框架笔记分享12-Splash 的使用
1. Splash介绍Splash是一个JavaScript渲染服务,是一个带有HTTP API的轻量级浏览器,同时它对接了Python中的Twisted和QT库。利用它,我们同样可以实现动态渲染页面的抓取2. 安装2.1 安装docker2.2 拉取镜像docker pull scrapinghub/splash2.3 用docker运行scrapinghub/splashd...原创 2019-01-26 16:48:31 · 1008 阅读 · 0 评论 -
python爬虫Scrapy框架笔记分享11-模拟登录-Request、Response
1. Scrapy-Request和Response(请求和响应)Scrapy的Request和Response对象用于爬网网站。通常,Request对象在爬虫程序中生成并传递到系统,直到它们到达下载程序,后者执行请求并返回一个Response对象,该对象返回到发出请求的爬虫程序。sequenceDiagram爬虫->>Request: 创建Request->>R...原创 2019-01-26 16:48:37 · 452 阅读 · 0 评论 -
python爬虫Scrapy框架笔记分享13-爬取JS生成的动态页面
问题有的页面的很多部分都是用JS生成的,而对于用scrapy爬虫来说就是一个很大的问题,因为scrapy没有JS engine,所以爬取的都是静态页面,对于JS生成的动态页面都无法获得官网http://splash.readthedocs.io/en/stable/解决方案利用第三方中间件来提供JS渲染服务: scrapy-splash 等利用webkit或者基于webkit库S...原创 2019-01-26 16:48:23 · 2149 阅读 · 0 评论 -
python爬虫Scrapy框架笔记分享14-分布式
1. 介绍scrapy-redis框架scrapy-redis一个三方的基于redis的分布式爬虫框架,配合scrapy使用,让爬虫具有了分布式爬取的功能。github地址:https://github.com/darkrho/scrapy-redis2. 分布式原理scrapy-redis实现分布式,其实从原理上来说很简单,这里为描述方便,我们把自己的核心服务器称为master,...原创 2019-01-26 16:48:14 · 228 阅读 · 0 评论 -
python爬虫Scrapy框架笔记分享15-Scrapy-Redis 使用配置以及其他
setting文件配置#启用Redis调度存储请求队列SCHEDULER = "scrapy_redis.scheduler.Scheduler" #确保所有的爬虫通过Redis去重DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter" #默认请求序列化使用的是pickle 但是我们可以更改为其他类似的。PS:这玩意儿2....原创 2019-01-26 16:48:06 · 198 阅读 · 0 评论 -
python爬虫Scrapy框架笔记分享16-Scrapyd的安装及使用
Scrapyd的安装及使用1. 安装scrapyd pip install scrapyd 2. 安装setuptools为什么要安装这个工具?因为部署的应用需要打包成*.egg才能运行官网地址:https://pypi.python.org/pypi/setuptools下载pip install setuptools-38.5.2-py2.py3-none-any3. ...原创 2019-01-26 16:49:50 · 222 阅读 · 0 评论 -
Python爬虫番外1-分布式环境安装scrapy
使用CentOS6 标准版系统因为CentOS默认是python2安装 python3安装装python3的环境yum install -y gcc,zlib*,openssl*解压压缩包tar -xf python3.6.1.tar(参考Linux安装python3)安装scrapy安装装scrapy的环境 yum install -y wge...原创 2019-01-26 16:54:55 · 178 阅读 · 0 评论 -
Python爬虫番外2-爬虫结构大纲步骤讲解
爬虫顺序优化爬虫(静态)user-agent的使用代理timeout请求转码问题post请求ajax异常处理cookie内容的提取HTMLrexpath(DOM)beautifulSoupJSONjson ,jsonpath,dump,dumps动态页面抓取slennium + ChromJSScrapy框架学习sp...原创 2019-01-26 16:54:48 · 253 阅读 · 0 评论 -
python爬虫Scrapy框架笔记分享3-Scrapy 数据提取
1 Scrapy提取项目从网页中提取数据,Scrapy 使用基于 XPath 和 CSS 表达式的技术叫做选择器。以下是 XPath 表达式的一些例子:这将选择 HTML 文档中的 <head> 元素中的 <title> 元素/html/head/title这将选择 <title> 元素中的文本/html/head/title/text()...原创 2019-01-26 16:33:41 · 339 阅读 · 0 评论 -
python爬虫Scrapy框架笔记分享2-Scrapy 框架使用
1 基本使用1.1 创建项目运行命令:scrapy startproject myfrist(your_project_name)文件说明:名称作用scrapy.cfg项目的配置信息,主要为Scrapy命令行工具提供一个基础的配置信息。(真正爬虫相关的配置信息在settings.py文件中)items.py设置数据存储模板,用于结构化数据,如:Django...原创 2019-01-26 16:32:41 · 185 阅读 · 0 评论 -
python基础笔记分享2-爬虫常用工具的使用
1. 常用的工具pythonpycharm浏览器chrome火狐fiddler2 fiddler的使用2.1 操作界面2.2 界面含义请求 (Request) 部分详解名称含义Headers显示客户端发送到服务器的 HTTP 请求的,header 显示为一个分级视图,包含了 Web 客户端信息、Cookie、传输状态等Textview...原创 2019-01-24 10:56:00 · 207 阅读 · 0 评论 -
python基础笔记分享3- 爬取数据-urllib库
1. 小试牛刀怎样扒网页呢?其实就是根据URL来获取它的网页信息,虽然我们在浏览器中看到的是一幅幅优美的画面,但是其实是由浏览器解释才呈现出来的,实质它是一段HTML代码,加 JS、CSS,如果把网页比作一个人,那么HTML便是他的骨架,JS便是他的肌肉,CSS便是它的衣服。所以最重要的部分是存在于HTML中的,下面我们就写个例子来扒一个网页下来from urllib.request imp...原创 2019-01-24 11:01:16 · 159 阅读 · 0 评论 -
python基础笔记分享4-urllib库的高级用法
1. 伪装自己有些网站不会同意程序直接用上面的方式进行访问,如果识别有问题,那么站点根本不会响应,所以为了完全模拟浏览器的工作1.1 设置请求头其中User-Agent代表用的哪个请求的浏览器代码如下:from urllib.request import urlopenfrom urllib.request import Requesturl = 'http://www.serv...原创 2019-01-24 11:02:34 · 128 阅读 · 0 评论 -
python基础笔记分享5- URLError与Cookie
1. Cookie为什么要使用Cookie呢?Cookie,指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)比如说有些网站需要登录后才能访问某个页面,在登录之前,你想抓取某个页面内容是不允许的。那么我们可以利用Urllib库保存我们登录的Cookie,然后再抓取其他页面就达到目的了。1.1 Opener当你获取一个URL你使用一个opener...原创 2019-01-24 11:03:56 · 181 阅读 · 0 评论 -
python基础笔记分享6-Requests库的用法
1. 介绍对了解一些爬虫的基本理念,掌握爬虫爬取的流程有所帮助。入门之后,我们就需要学习一些更加高级的内容和工具来方便我们的爬取。那么这一节来简单介绍一下 requests 库的基本用法2. 安装利用 pip 安装pip install requests3. 基本请求req = requests.get("http://www.baidu.com")req = requests...原创 2019-01-24 11:04:50 · 141 阅读 · 0 评论 -
python基础笔记分享7-数据提取-正则表达式
1. 提取数据在前面我们已经搞定了怎样获取页面的内容,不过还差一步,这么多杂乱的代码夹杂文字我们怎样把它提取出来整理呢?下面就开始介绍一个十分强大的工具,正则表达式!正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。正则表达式是用来匹配字符串非常强大的工具,在其他编程语言...原创 2019-01-24 11:05:44 · 341 阅读 · 0 评论 -
python基础笔记分享8- 数据提取-Beautiful Soup
1. Beautiful Soup的简介Beautiful Soup提供一些简单的、python式的函数用来处理导航、搜索、修改分析树等功能。它是一个工具箱,通过解析文档为用户提供需要抓取的数据,因为简单,所以不需要多少代码就可以写出一个完整的应用程序。Beautiful Soup自动将输入文档转换为Unicode编码,输出文档转换为utf-8编码。你不需要考虑编码方式,除非文档没有指定...原创 2019-01-24 11:06:57 · 219 阅读 · 0 评论 -
python基础笔记分享9-数据提取-XPath
1. 介绍之前 BeautifulSoup 的用法,这个已经是非常强大的库了,不过还有一些比较流行的解析库,例如 lxml,使用的是 Xpath 语法,同样是效率比较高的解析方法。如果大家对 BeautifulSoup 使用不太习惯的话,可以尝试下 Xpath官网 http://lxml.de/index.htmlw3c http://www.w3school.com.cn/xpath/...原创 2019-01-24 11:07:52 · 231 阅读 · 0 评论 -
python基础笔记分享10-数据提取-JsonPath
1. JSON与JsonPATHJSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,它使得人们很容易的进行阅读和编写。同时也方便了机器进行解析和生成。适用于进行数据交互的场景,比如网站前台与后台之间的数据交互。JSON和XML的比较可谓不相上下。Python 中自带了JSON模块,直接import json就可以使用了。官方文档:http://do...原创 2019-01-24 11:08:48 · 197 阅读 · 0 评论 -
python基础笔记分享11-数据提取-PyQuery
1. pyquery1.1 介绍如果你对CSS选择器与Jquery有有所了解,那么还有个解析库可以适合你–Jquery官网https://pythonhosted.org/pyquery/1.2 安装pip install pyquery1.3 使用方式1.3.1 初始化方式字符串 from pyquery import PyQuery as pq ...原创 2019-01-24 11:25:18 · 268 阅读 · 0 评论 -
python基础笔记分享12- 爬虫之多线程
1. 引入我们之前写的爬虫都是单个线程的?这怎么够?一旦一个地方卡到不动了,那不就永远等待下去了?为此我们可以使用多线程或者多进程来处理。不建议你用这个,不过还是介绍下了,如果想看可以看看下面,不想浪费时间直接看2. 如何使用爬虫使用多线程来处理网络请求,使用线程来处理URL队列中的url,然后将url返回的结果保存在另一个队列中,其它线程在读取这个队列中的数据,然后写到文件中去...原创 2019-01-24 11:24:27 · 194 阅读 · 0 评论 -
python基础笔记分享13- Selenium与PhantomJS
1. SeleniumSelenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,类型像我们玩游戏用的按键精灵,可以按指定的命令自动操作,不同是Selenium 可以直接运行在浏览器上,它支持所有主流的浏览器(包括PhantomJS这些无界面的浏览器)。Selenium 可以根据我们的指令,让浏览器自动加载页面,获取需要的数据,甚至页面截屏,或者判断网站上某些动作是否发生。...原创 2019-01-24 11:25:28 · 264 阅读 · 0 评论 -
python基础笔记分享14- Selenium 处理滚动条
Selenium 处理滚动条selenium并不是万能的,有时候页面上操作无法实现的,这时候就需要借助JS来完成了当页面上的元素超过一屏后,想操作屏幕下方的元素,是不能直接定位到,会报元素不可见的。这时候需要借助滚动条来拖动屏幕,使被操作的元素显示在当前的屏幕上。滚动条是无法直接用定位工具来定位的。selenium里面也没有直接的方法去控制滚动条,这时候只能借助J了,还好selenium提...原创 2019-01-24 11:25:35 · 992 阅读 · 1 评论 -
python基础笔记分享15- Python下Tesseract Ocr引擎及安装介绍
1. Tesseract介绍tesseract 是一个google支持的开源ocr项目其项目地址:https://github.com/tesseract-ocr/tesseract目前最新的源码可以在这里下载2. Tesseract安装包下载Tesseract的release版本下载地址:https://github.com/tesseract-ocr/tesseract/wiki...原创 2019-01-24 11:23:39 · 235 阅读 · 0 评论 -
python爬虫Scrapy框架笔记分享1-Scrapy 框架介绍与安装
1. Scrapy 框架介绍Scrapy是Python开发的一个快速,高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy = Scrach+PythonScrapy用途广泛,可以用于数据挖掘、监测和自动化测试、信息处理和历史档案等大量应用范围内抽取结构化数据的应用程序框架,广泛用于工业Scrapy 使用Twisted 这个异步网络库来处...原创 2019-01-26 16:31:48 · 327 阅读 · 0 评论