Python高级
本专栏主要介绍python的基础、高级和算法应用
Jeremy_Lee123
AI Everywhere!
展开
-
Pycharm基于Anaconda配置PySpark
一、开发PySpark 所需准备环境安装python环境:下载安装Anaconda。参考:https://lixinkuan.blog.csdn.net/article/details/104636483 安装PyCharm:下载安装PyCharm。 官网下载Spark安装包:由于PyCharm开发spark 需要本地Spark环境,所以要在官网中下载Spark安装包到本地(这里我们下载S...原创 2020-03-03 18:22:26 · 1117 阅读 · 1 评论 -
Mysql之python API实例代码
一、封装观察前面的文件发现,除了sql语句及参数不同,其它语句都是一样的 创建MysqlHelper.py文件,定义类#encoding=utf8import MySQLdbclass MysqlHelper(): def __init__(self,host,port,db,user,passwd,charset='utf8'): self.host=ho...原创 2020-02-17 22:03:32 · 306 阅读 · 0 评论 -
Mysql之python API使用
安装引入模块安装mysql模块sudo apt-get install python-mysql在文件中引入模块import MysqldbConnection对象用于建立与数据库的连接 创建对象:调用connect()方法conn=connect(参数列表)参数host:连接的mysql主机,如果本机是'localhost' 参数port:连接的mysq...原创 2020-02-17 21:55:35 · 634 阅读 · 0 评论 -
Redis之python API使用
一、NoSQL简介NoSQL,全名为Not Only SQL,指的是非关系型的数据库 随着访问量的上升,网站的数据库性能出现了问题,于是nosql被设计出来优点/缺点优点: 高可扩展性 分布式计算 低成本 架构的灵活性,半结构化数据 没有复杂的关系 缺点: 没有标准化 有限的查询功能(到目前为止) 最终一致是不直观的程序 分类:类型 ...原创 2020-02-17 21:00:50 · 741 阅读 · 0 评论 -
Scrapy实战之存储在MySQL中
爬取自己在CSDN博客的数据(https://movie.douban.com/top250),并保存在MongoDB中。使用Scrapy命令生成项目工程和爬虫类:scrapy startproject doubanscrapy genspider DoubanSpider"movie.douban.com"编码步骤1.items.pyclass Doubanspid...原创 2020-02-17 20:32:40 · 488 阅读 · 1 评论 -
Scrapy实战之存储在Excel中
爬取自己在CSDN博客的数据(https://blog.csdn.net/lixinkuan328/article/list/1),并保存在MongoDB中。使用Scrapy命令生成项目工程和爬虫类:scrapy startproject csdnscrapy genspider scrapy genspider csdnspider blog.csdn.net"blog.csdn....原创 2020-02-17 18:01:38 · 1189 阅读 · 0 评论 -
scrapy-redis自带项目说明
使用scrapy-redis的example来修改先从github上拿到scrapy-redis的示例,然后将里面的example-project目录移到指定的地址:# clone github scrapy-redis源码文件git clone https://github.com/rolando/scrapy-redis.git# 直接拿官方的项目范例,改名为自己的项目用(针对...原创 2020-02-16 23:44:44 · 378 阅读 · 0 评论 -
scrapy-redis源码分析
官方站点:https://github.com/rolando/scrapy-redisscrapy-redis的官方文档写的比较简洁,没有提及其运行原理,所以如果想全面的理解分布式爬虫的运行原理,还是得看scrapy-redis的源代码才行。scrapy-redis工程的主体还是是redis和scrapy两个库,工程本身实现的东西不是很多,这个工程就像胶水一样,把这两个插件粘结了起来。下...原创 2020-02-16 20:19:18 · 394 阅读 · 0 评论 -
Scrapy和scrapy-redis的区别
Scrapy 是一个通用的爬虫框架,但是不支持分布式,Scrapy-redis是为了更方便地实现Scrapy分布式爬取,而提供了一些以redis为基础的组件(仅有组件)。pip install scrapy-redisScrapy-redis提供了下面四种组件(components):(四种组件意味着这四个模块都要做相应的修改)Scheduler Duplication Filt...原创 2020-02-16 17:43:55 · 423 阅读 · 0 评论 -
Scrapy实战之存储在MongoDB中
爬取豆瓣电影top250movie.douban.com/top250的电影数据,并保存在MongoDB中。items.pyclass DoubanspiderItem(scrapy.Item): # 电影标题 title = scrapy.Field() # 电影评分 score = scrapy.Field() # 电影信息 conte...原创 2020-02-16 15:09:20 · 2064 阅读 · 0 评论 -
Scrapy实战之图片下载器爬虫
items.pyclass CoserItem(scrapy.Item): url = scrapy.Field() name = scrapy.Field() info = scrapy.Field() image_urls = scrapy.Field() images = scrapy.Field()spiders/coser.py#...原创 2020-02-16 14:21:12 · 515 阅读 · 0 评论 -
Scrapy实战之三种策略模拟登陆
注意:模拟登陆时,必须保证settings.py里的COOKIES_ENABLED(Cookies中间件) 处于开启状态COOKIES_ENABLED = True或# COOKIES_ENABLED = False策略一:直接POST数据(比如需要登陆的账户信息)只要是需要提供post数据的,就可以用这种方法。下面示例里post的数据是账户密码:# -*- cod...原创 2020-02-16 15:58:39 · 212 阅读 · 0 评论 -
Scrapy实战之某浪分类资讯爬虫
爬取新浪网导航页所有下所有大类、小类、小类里的子链接,以及子链接页面的新闻内容。效果演示图:转存失败重新上传取消items.pyimport scrapyimport sysreload(sys)sys.setdefaultencoding("utf-8")class SinaItem(scrapy.Item): # 大类的标题 和 url pare...原创 2020-02-16 12:51:23 · 436 阅读 · 0 评论 -
Scrapy实战之阳光热线问政平台
http://wz.sun0769.com/index.php/question/questionType?type=4爬取投诉帖子的编号、帖子的url、帖子的标题,和帖子里的内容。items.pyimport scrapyclass DongguanItem(scrapy.Item): # 每个帖子的标题 title = scrapy.Field() #...原创 2020-02-16 11:55:38 · 1033 阅读 · 1 评论 -
通过Fiddler进行手机抓包
通过Fiddler抓包工具,可以抓取手机的网络通信,但前提是手机和电脑处于同一局域网内(WI-FI或热点),然后进行以下设置:用Fiddler对Android应用进行抓包 打开Fiddler设置 在Connections里设置允许连接远程计算机,确认后重新启动Fiddler 在命令提示符下输入ipconfig查看本机IP 打开Android设备的“设置...原创 2020-02-15 23:45:05 · 481 阅读 · 0 评论 -
爬虫之Scrapy模块--Downloader Middlewares
Scrapy架构图(绿线是数据流向):Downloader Middlewares反反爬虫相关机制Some websites implement certain measures to prevent bots from crawling them, with varying degrees of sophistication. Getting around those measu...原创 2020-02-15 13:23:14 · 502 阅读 · 0 评论 -
爬虫之Scrapy模块--Request&Response
Scrapy架构图(绿线是数据流向):Request/ResponseRequest 部分源码:# 部分代码class Request(object_ref): def __init__(self, url, callback=None, method='GET', headers=None, body=None, cookies=...原创 2020-02-15 11:49:49 · 427 阅读 · 0 评论 -
爬虫之Scrapy模块--CrawlSpiders
手机App抓包爬虫1. items.pyclass DouyuspiderItem(scrapy.Item): name = scrapy.Field()# 存储照片的名字 imagesUrls = scrapy.Field()# 照片的url路径 imagesPath = scrapy.Field()# 照片保存在本地的路径2. spiders/douy...原创 2020-02-14 23:41:37 · 318 阅读 · 0 评论 -
爬虫之Scrapy Settings介绍
Scrapy设置(settings)提供了定制Scrapy组件的方法。可以控制包括核心(core),插件(extension),pipeline及spider组件。比如 设置Json Pipeliine、LOG_LEVEL等。参考文档:http://scrapy-chs.readthedocs.io/zh_CN/1.0/topics/settings.html#topics-settings-...原创 2020-02-14 11:23:30 · 312 阅读 · 0 评论 -
爬虫之Scrapy模块--Spider
Scrapy架构图(绿线是数据流向):一、Request/ResponseRequest 部分源码:# 部分代码class Request(object_ref): def __init__(self, url, callback=None, method='GET', headers=None, body=None, cooki...原创 2020-02-14 13:49:57 · 1281 阅读 · 1 评论 -
爬虫之Scrapy模块--Item Pipeline
Scrapy架构图(绿线是数据流向):一、Item Pipeline当Item在Spider中被收集之后,它将会被传递到Item Pipeline,这些Item Pipeline组件按定义的顺序处理Item。每个Item Pipeline都是实现了简单方法的Python类,比如决定此Item是丢弃而存储。以下是item pipeline的一些典型应用:验证爬取的数据(检查...原创 2020-02-14 12:07:15 · 426 阅读 · 0 评论 -
爬虫之Scrapy Shell应用
Scrapy ShellScrapy终端是一个交互终端,我们可以在未启动spider的情况下尝试及调试代码,也可以用来测试XPath或CSS表达式,查看他们的工作方式,方便我们爬取的网页中提取的数据。如果安装了 IPython ,Scrapy终端将使用 IPython (替代标准Python终端)。 IPython 终端与其他相比更为强大,提供智能的自动补全,高亮输出,及其他特性。(推荐安...原创 2020-02-14 10:56:26 · 485 阅读 · 0 评论 -
爬虫之Scrapy入门案例
步骤:创建一个Scrapy项目 定义提取的结构化数据(Item) 编写爬取网站的 Spider 并提取出结构化数据(Item) 编写 Item Pipelines 来存储提取到的Item(即结构化数据)一. 新建项目(scrapy startproject)在开始爬取之前,必须创建一个新的Scrapy项目。进入自定义的项目目录中,运行下列命令:scrapy startpro...原创 2020-02-14 10:48:09 · 480 阅读 · 0 评论 -
解决pip安装超时的问题
使用pip安装python库的时候经常会遇到超时而无法下载的问题,解决办法如下:一、创建pip.ini文件F:\Python\Python38然后在pip文件夹下新建一个文件pip.ini,内容:[global]timeout = 60000index-url = https://pypi.tuna.tsinghua.edu.cn/simple[install]use-m...原创 2020-02-14 00:05:36 · 1177 阅读 · 0 评论 -
爬虫之Scrapy框架概述和配置安装
一、Scrapy 框架概述 Scrapy是用纯Python实现一个为了爬取网站数据、提取结构性数据而编写的应用框架,用途非常广泛。 框架的力量,用户只需要定制开发几个模块就可以轻松的实现一个爬虫,用来抓取网页内容以及各种图片,非常之方便。 Scrapy 使用了 Twisted['twɪstɪd](其主要对手是Tornado)异步网络框架来处理网络通讯,可以加快我们的下载速...原创 2020-02-14 00:05:53 · 427 阅读 · 0 评论 -
爬虫之机器图像识别(ORC库)
机器视觉从 Google 的无人驾驶汽车到可以识别假钞的自动售卖机,机器视觉一直都是一个应用广 泛且具有深远的影响和雄伟的愿景的领域。我们将重点介绍机器视觉的一个分支:文字识别,介绍如何用一些 Python库来识别和使用在线图片中的文字。我们可以很轻松的阅读图片里的文字,但是机器阅读这些图片就会非常困难,利用这种人类用户可以正常读取但是大多数机器人都没法读取的图片,验证码 (CAPTC...原创 2020-02-14 00:05:02 · 2328 阅读 · 0 评论 -
爬虫之动态HTML处理(Selenium&PhantomJS)
一、动态HTML分类1.1、JavaScriptJavaScript 是网络上最常用也是支持者最多的客户端脚本语言。它可以收集 用户的跟踪数据,不需要重载页面直接提交表单,在页面嵌入多媒体文件,甚至运行网页游戏。我们可以在网页源代码的<scripy>标签里看到,比如:<script type="text/javascript" src="https://stat...原创 2020-02-14 00:04:44 · 581 阅读 · 0 评论 -
爬虫(Spider)与反爬虫(Anti-Spider)
爬虫(Spider),反爬虫(Anti-Spider),反反爬虫(Anti-Anti-Spider),这之间的斗争恢宏壮阔...Day 1 小莫想要某站上所有的电影,写了标准的爬虫(基于HttpClient库),不断地遍历某站的电影列表页面,根据 Html 分析电影名字存进自己的数据库。 这个站点的运维小黎发现某个时间段请求量陡增,分析日志发现都是 IP(xxx.xxx.xxx...原创 2020-02-13 23:38:07 · 988 阅读 · 0 评论 -
爬虫之数据提取(JSON与JsonPATH)
一般来讲对我们而言,需要抓取的是某个网站或者某个应用的内容,提取有用的价值。内容一般分为两部分,非结构化的数据 和 结构化的数据。非结构化数据:先有数据,再有结构, 结构化数据:先有结构、再有数据 不同类型的数据,我们需要采用不同的方式来处理。数据提取之JSON与JsonPATHJSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,它使得人...原创 2020-02-13 15:59:18 · 729 阅读 · 0 评论 -
爬虫之数据提取(BeautifulSoup4解析器)
一般来讲对我们而言,需要抓取的是某个网站或者某个应用的内容,提取有用的价值。内容一般分为两部分,非结构化的数据 和 结构化的数据。非结构化数据:先有数据,再有结构, 结构化数据:先有结构、再有数据 不同类型的数据,我们需要采用不同的方式来处理。CSS 选择器:BeautifulSoup4和 lxml 一样,Beautiful Soup 也是一个HTML/XML的解析器,主要的功能...原创 2020-02-13 14:04:02 · 468 阅读 · 0 评论 -
爬虫之数据提取(正则表达式re模块)
一般来讲对我们而言,需要抓取的是某个网站或者某个应用的内容,提取有用的价值。内容一般分为两部分,非结构化的数据 和 结构化的数据。非结构化数据:先有数据,再有结构, 结构化数据:先有结构、再有数据 不同类型的数据,我们需要采用不同的方式来处理。什么是正则表达式正则表达式,又称规则表达式,通常被用来检索、替换那些符合某个模式(规则)的文本。正则表达式是对字符串操作的一种逻辑公...原创 2020-02-13 12:52:44 · 1836 阅读 · 0 评论 -
爬虫之Requests模块应用
Requests: 让 HTTP 服务人类虽然Python的标准库中 urllib2 模块已经包含了平常我们使用的大多数功能,但是它的 API 使用起来让人感觉不太好,而 Requests 自称 “HTTP for Humans”,说明使用更简洁方便。Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用:)Requests 继承了urllib2的所有...原创 2020-02-13 00:22:38 · 367 阅读 · 0 评论 -
爬虫之urllib2库的异常处理
urllib2 的异常错误处理:在我们用urlopen或opener.open方法发出一个请求时,如果urlopen或opener.open不能处理这个response,就产生错误。这里主要说的是URLError和HTTPError,以及对它们的错误处理。1、URLErrorURLError 产生的原因主要有:没有网络连接 服务器连接失败 找不到指定的服务器我们可以用t...原创 2020-02-13 00:15:37 · 1165 阅读 · 0 评论 -
linux安装python3(保留原装python2)
不要动现有的 python2 环境!一、安装 python3.61、安装依赖环境yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel2、下载...原创 2019-09-23 14:45:32 · 421 阅读 · 0 评论 -
Python学习
目录结构漫谈Python 简史The Zen of PythonLife is short, You need Python环境Windows 下 Python 环境搭建PyCharm 下载安装PyCharm 环境配置Anaconda 基本安装Linux 升级 Python 至 3.x第一个 Python 程序解决 Python shell 中 Delete/Bac...转载 2019-12-01 16:29:44 · 333 阅读 · 0 评论 -
python类型详解
python数据类型详解1、字符串如何在Python中使用字符串a、使用单引号(') b、使用双引号(") c、使用三引号(''')1.1、字符串实际上就是字符的数组,所以也支持下标索引。1.2、切片(分片)切片是指对操作的对象截取其中一部分的操作。字符串、列表、元组都支持切片操作。切片的语法:[起始:结束:步长]name = 'abcdef...原创 2019-09-23 17:57:42 · 731 阅读 · 3 评论 -
python编译、运行、反编译pyc文件
简述Python 并非完全是解释性语言,它也存在编译。先将源码文件 *.py 编译为 *.pyc,然后由 Python 的虚拟机执行。相对于 *.py 文件来说,编译为 *.pyc本质上和 *.py 没有太大区别,只是提高了模块的加载速度,并没有提高代码的执行速度。*.py:源码文件,由 Python 程序解释。 *.pyc:源码经编译后生成的二进制字节码(Bytecode)文件。...原创 2019-12-02 23:11:21 · 20860 阅读 · 0 评论 -
Python脚本之三种运行方式
一、交互模式下执行 Python这种模式下,无需创建脚本文件,直接在 Python解释器的交互模式下编写对应的 Python 语句即可。1)打开交互模式的方式:Windows下:在开始菜单找到“命令提示符”,打开,就进入到命令行模式;在命令行模式输入: python 即可进入 Python 的交互模式Linux 下:直接在终端输入 python,如果是按装了 python3 ,则根据自...原创 2019-09-23 15:48:25 · 38699 阅读 · 6 评论 -
python设计模式之单例模式
1.什么是单例?确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类,单例模式是一种对象创建型模式。那么单例模式有什么用途呢?举个常见的单例模式例子,我们平时使用的电脑上都有一个回收站,在整个操作系统中,回收站只能有一个实例,整个系统都使用这个唯一的实例,而且回收站自行提供自己的实例,因此回收站是单例模式的应用。2.创建单例-保证只有1个对象class...原创 2019-12-04 23:55:16 · 363 阅读 · 0 评论 -
python函数作用域与闭包
一、作用域:L: local 函数内部作用域 E: enclosing 函数内部与内嵌函数之间 G: global 全局作用域 B: build_in 内置作用域二、闭包函数:在一些语言中,在函数中可以(嵌套)定义另一个函数时,如果内部的函数引用了外部的函数的变量,则可能产生闭包。闭包可以用来在一个函数与一组“私有”变量之间创建关联关系。在给定函数被多次调用的过程中,这些私有变...原创 2019-09-23 22:22:12 · 534 阅读 · 0 评论