python
文章平均质量分 83
咖啡或浮云
这个作者很懒,什么都没留下…
展开
-
Scrapy-Redis分布式爬虫组件
Scrapy-Redis介绍Scrapy是一个框架,他本身是不支持分布式的。如果我们想要做分布式的爬虫,就需要借助一个组件叫做Scrapy-Redis,这个组件正是利用了Redis可以分布式的功能,集成到Scrapy框架中,使得爬虫可以进行分布式。可以充分的利用资源(多个ip、更多带宽、同步爬取)来提高爬虫的爬行效率。分布式爬虫的优点:可以充分利用多台机器的带宽;可以充分利用多台机器的ip地址...原创 2019-07-19 09:29:11 · 400 阅读 · 0 评论 -
BeautifulSoup及爬取豆瓣评论
BS4的理解BS4会将html文档对象转换为python可以识别的四种对象:Tag: 标签对象NavigableString : 字符内容操作对象BeautifulSoup: 文档对象Comment:是一个特殊类型的 NavigableString 对象floating.html:<!DOCTYPE html><html lang=&原创 2018-10-19 23:13:37 · 7270 阅读 · 2 评论 -
爬虫urllib库及requests模块
什么是爬虫网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。例如:给个网址,可以获取到该网址里边的(图片, url, 视频, 文件)等信息。浏览网页时经历的过程浏览器 (请求request)-> 输入URL地址(http://www....原创 2018-10-18 16:40:51 · 690 阅读 · 2 评论 -
正则表达式
通配符通配符的内容: * : 匹配0到任意字符 ? : 匹配单个字符 . : 当前 .. : 当前的上一级 [0-9]: 0到9的任意一个数字 [a-z]: a到z的任意一个字母 [A-Z]: A到Z的任意一个字母 [a-zA-Z]: a到...原创 2018-10-12 17:53:30 · 750 阅读 · 0 评论 -
客户端,服务端
C/S方式, 客户端发送一条命令, 服务端返回命令的执行结果;服务端:import osimport socketserver = socket.socket()server.bind(('172.25.254.78',9001))server.listen()print("服务端已经启动9001端口....")sockobj,address = server.accept()...原创 2018-09-22 21:04:45 · 188 阅读 · 0 评论 -
python 协程及socket网络编程
协程什么是协程协程,英文Coroutines,是一种比线程更加轻量级的存在。正如一个进程可以拥有多个线程一样,一个线程也可以拥有多个协程。最重要的是,协程不是被操作系统内核所管理,而完全是由程序所控制(也就是在用户态执行)。这样带来的好处就是性能得到了很大的提升,不会像线程切换那样消耗资源。协程优势:有较高的执行效率, 始终只有一个线程, 不存在创建线程和销毁线程需要的时间;也没有...原创 2018-09-26 19:55:48 · 1248 阅读 · 0 评论 -
python 进程
linux创建子进程Linux创建子进程的原理:1). 父进程和子进程, 如果父进程结束, 子进程也随之结束;2). x先有父进程, 再有子进程, 通过fork函数实现;fork函数的返回值:调用该方法一次, 返回两次;产生的子进程返回一个0父进程返回子进程的pid;Window也能使用fork函数么?Windows没有fork函数, Mac有fork函数(Un...原创 2018-09-19 19:05:34 · 226 阅读 · 0 评论 -
python 线程
进程 线程的理解程序: /bin/firefox一个二进制程序, 也可以包含任意可执行的程序, 是一个真实存在的实体。进程: 执行程序过程中产生一系列内容.(进程信息存储)线程: 每个进程里面至少包含一个主线程, (firefox里面有多个table)多进程:浏览器,网易云音乐以及pycharm 三个软件只能顺序执行是怎样一种场景呢?本来在python编程时想要听个古典音乐来点灵感, ...原创 2018-09-18 21:33:16 · 289 阅读 · 0 评论 -
difflib paramiko模块
difflib模块import difflib# 1. 以字符串方式展示两个文本的不同, 效果如下:text1 = ''' 1. Beautiful is better than ugly. 2. Explicit is better than implicit. 3. Simple is better than complex. 4. Complex ...原创 2018-09-12 12:53:08 · 166 阅读 · 0 评论 -
Flask框架及jinja2引擎模版
什么是Flask框架?Flask是一个使用 Python 编写的轻量级 Web 应用框架。原创 2018-10-26 19:58:59 · 4062 阅读 · 0 评论 -
基于Flask与Mariadb实现任务清单管理
目标本项目将学习 Mariadb 作为数据库后端,Bootstrap 作为前端的技术栈,并实现一个清单应用。从中我们可以学习 Flask Web 应用框架,及 Mariadb 关系型数据库和 BootStrap web开发框架。项目介绍本应用修改自 TodoMVC 的 todo list 应用,使用 Mariadb 作为数据库后端,Bootstrap 作为前端的 Flask 应用。先给它起个...原创 2018-10-26 22:56:07 · 862 阅读 · 0 评论 -
常用Flask的插件bootstrap wtf sqlalchemy migrate及script
flask_bootstrap如何在flask中使用Boostrap?要想在程序中集成Bootstrap,显然要对模板做所有必要的改动。不过,更简单的方法是使用一个名为Flask-Bootstrap 的Flask 扩展,简化集成的过程。Flask-Bootstrap 使用pip安装:pip install flask_bootstrapFlask 扩展一般都在创建程序实例时初始化,...原创 2018-11-01 13:54:52 · 460 阅读 · 0 评论 -
Scrapy Shell 和 Request、Response对象
Scrapy ShellScrapy提供了一个shell,用来方便的测试规则。当然也不仅仅局限于这一个功能。打开Scrapy Shell开cmd终端,进入到Scrapy项目所在的目录,然后进入到scrapy框架所在的虚拟环境中,输入命令scrapy shell [链接]。就会进入到scrapy的shell环境中。在这个环境中,你可以跟在爬虫的parse方法中一样使用了。Request对象...原创 2019-07-16 08:36:20 · 1065 阅读 · 0 评论 -
selenium+chromdriver获取AJAX数据
注:本文参考了网易云知了课堂课件笔记。AJAX定义AJAX(Asynchronouse JavaScript And XML)异步JavaScript和XML。在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。传统的网页(不使用Ajax)如果需要更新内容,必须重载整个网页页面。因为传统的在传输数据格式方面,使用的...原创 2019-06-03 17:52:47 · 9707 阅读 · 0 评论 -
CrawlSpider模板
CrawlSpider的功能只要满足某个条件的url,都给我进行爬取。那么这时候我们就可以通过CrawlSpider来帮我们完成了。CrawlSpider继承自Spider,只不过是在之前的基础之上增加了新的功能,可以定义爬取的url的规则,以后scrapy碰到满足条件的url都进行爬取,而不用手动的yield Request。创建CrawlSpider爬虫如果想要创建CrawlSpider...原创 2019-06-14 19:00:37 · 238 阅读 · 0 评论 -
Scrapy基础
Scrapy框架架构什么是Scrapy框架scrapy 是一个为了爬取网站数据,提取结构性数据而编写的应用框架,我们只需要实现少量代码,就能够快速的抓取到数据内容。Scrapy 使用了 Twisted(其主要对手是Tornado)异步网络框架来处理网络通讯,可以加快我们的下载速度,不用自己去实现异步框架,并且包含了各种中间件接口,可以灵活的完成各种需求。Scrapy架构图各模块的功能:...原创 2019-06-07 09:55:59 · 380 阅读 · 0 评论 -
xpath语法与lxml库
什么是XPathxpath(XML Path Language)是一门在XML和HTML文档中查找信息的语言,可用来在XML和HTML文档中对元素和属性进行遍历。XPath开发工具1.Chrome插件XPath Helper。2. Firefox插件Try XPath。XPath语法选取节点:XPath 使用路径表达式来选取 XML 文档中的节点或者节点集。这些路径表达式和我们在常规...原创 2019-04-20 10:59:48 · 481 阅读 · 0 评论 -
json、csv文本处理
json概念及支持的数据格式JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。...原创 2019-04-29 09:31:00 · 230 阅读 · 0 评论 -
Django写个人博客
环境搭建创建虚拟环境:conda create -n Blog python==3.6进入虚拟环境并安装django:source activate Blogpip install django==1.10用命令创建一个BlogProject的django项目:django-admin startproject BlogProject打开BlogProject:设置环境项目的...原创 2019-03-07 19:26:18 · 1271 阅读 · 2 评论 -
Django 图书-英雄
环境创建创建虚拟环境:conda create -n django python==3.6进入环境:source activate django安装Django:pip install Django ==1.10创建Django工程:数据库迁移(文件数据库):python manage.py makemigrationspython manage.py migrate运行D...原创 2018-11-17 20:49:50 · 563 阅读 · 0 评论 -
python数据库编程
连接数据库创建连接时,就指定: pymysql.connect(host=’172.25.254.178”, user=’cooffee”, password=’cooffee”, charset=’utf8’, autocommit=True) # host(要连接的主机ip), user(用户), passwd(用户密码), char...原创 2018-09-06 13:02:29 · 998 阅读 · 0 评论 -
python 高阶函数
##########高阶函数############# 高阶函数:变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数。 - 实参是一个函数名; - 函数的返回值是一个函数;# 函数本身也可以赋值给变量,即:变量可以指向函数。print(abs(-10))f = absprint(f(-10))...原创 2018-08-18 14:13:46 · 175 阅读 · 0 评论 -
python----生成式与生成器
#########列表生成式##########一般式:[ experssion(或者函数) for item1 in 序列 if 判断语句 for item2 in 序列 if 判断语句 for item3 in 序列 if 判断语 ]eg:接受变量...原创 2018-08-18 11:17:34 · 225 阅读 · 0 评论 -
python常用运算符及分支语句
######常用运算符#########- 算术运算符: +, -, *, ** (次方), /, %(取余), //(整除)```**** /:# python2:>>> 5/22>>> 100/3000>>> 5/2.02.5>>> 100/300.00....原创 2018-08-08 14:48:04 · 430 阅读 · 0 评论 -
python的输入输出及常用数据类型
# 程序: 输入(键盘)------代码(java/python)-------输出(显示屏)#####输入######*** python2:- input:(只接受数值类型)```>>> help(input)>>> import getpass>>> num = getpass.getpass("请输入密码:")请输入密...原创 2018-08-08 11:47:14 · 6844 阅读 · 0 评论 -
python--函数
###########函数#############函数的定义def关键字,依次写出函数名、括号、括号中的参数和冒号 :在缩进块中编写函数体,函数的返回值用 return 语句返回。name为该函数的参数def 函数名(name): pass (函数体) return 返回值定义一个什么事也不做的空函数,可以用 pass 语句;pass 可以用来作为占...原创 2018-08-15 16:26:28 · 402 阅读 · 0 评论 -
linux下的python安装
# 安装平台- Linux - 去官网下载源码安装包(python3.6); - 解压安装包到/opt目录; - 安装编译过程中需要的依赖包:gcc, zlib, zlib-devel, openssl-develyum install gcc -yyum install zlib -yyum install zlib-devel -yyum ins...原创 2018-08-08 09:58:04 · 609 阅读 · 0 评论 -
python列表
######pycharm的安装#######"- 官网下载pycharm源码包\n""- 解压源码包到指定位置, 超级用户建议解压到/opt目录, 普通用户建议解压到当前用户家目录;" tar xf pycharm-community-2017.1.4.tar.gz -C /opt/"- 进入解压目录/opt/pycharm-community-2017.1.4/, Ins...原创 2018-08-12 16:28:18 · 321 阅读 · 0 评论 -
python的元组、集合和字典
#################元组################### 元组: 带了紧箍咒的列表; 不可变数据类型,没有增删改查; 可以存储任意数据类型;# 定义元组#t = (1, 2.1, 2e+10, True, 2j+3, [1,2,3],(1,2,3) )print(t, type(t))# 如果元组里面包含可...原创 2018-08-15 11:28:42 · 216 阅读 · 0 评论 -
要点概括及整理(字典的创建、*args和**kwargs、列表去重、yield、拷贝对象、可变与不可变数据类型)
######创建字典的方式########## - 定义空字典, {}, dict() - 赋值: d = {'key':'value', 'key1':'value1'} - 初始化所有value值: fromkeys()s={} #定义空字典print(type(s))s1=dict() ...原创 2018-08-16 21:29:40 · 301 阅读 · 0 评论 -
python之装饰器
装饰器的概念装饰器的实现是函数里面嵌套函数;装饰器的本质是一个函数, 它可以让其他函数在不需要做任何代码改动的前提下增加额外的功能,即想要增强原有函数的功能,但不希望修改now()函数的定义;装饰器需要传递一个函数, 返回值也是一个函数对象. eg:在程序执行之前写祝福语,在程序执行之后打广告:def desc(fun): #1). 需要传...原创 2018-08-22 11:06:47 · 161 阅读 · 0 评论 -
python异常处理
常见的异常在程序运行过程中影响程序正常运行的内容, 称为异常. NameErrorprint(a)IndexError: 索引错误li = [1,2,3,4]print(li[8])KeyError d = dict(a=1, b=2)print(d['f'])ZeroDivisionError: 除0错误 print(10/(2-2))...原创 2018-09-03 12:28:24 · 2945 阅读 · 0 评论 -
python os sys time datetime openpyxl json 模块
os模块• 为访问操作系统的特定熟悉提供方法 • 提供了对平台模块的封装(对 windows, 对 mac 的封 装等)import os# 1). 返回操作系统类型, 值为posix,是Linux操作系统, 值为nt, 是windows操作系统print(os.name)# 2). 操作系统的详细信息info = os.uname()print(info)# 3). 系统...原创 2018-09-11 19:07:07 · 278 阅读 · 0 评论 -
python类(二)
构造方法与析构方法构造方法: def _ init _(self) 在实例化对象时自动执行。 析构方法: def _ def _(self) 当删除对象时,自动调用的方法。 eg:class People(object): # 实例化对象时自动执行 def __init__(self, name, age): # 把属性和对象名绑定在一起, 便于...原创 2018-09-02 22:43:18 · 298 阅读 · 0 评论 -
python类(一)
类与对象的理解类:用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。一个模板, (人类)—是一个抽象的, 没有实体的对象:通过类定义的数据结构实例。(eg: 张三, 李四)属性: (表示这类东西的特征, 眼睛, 嘴巴, 鼻子)方法:类中定义的函数。(表示这类物体可以做的事情, eg: 吃饭, 睡觉,学习) eg:定义一个人类#...原创 2018-09-02 13:42:48 · 768 阅读 · 0 评论 -
python Anaconda的使用及2048游戏(单,双版)
Anaconda的使用管理虚拟环境创建虚拟环境 conda create -n env_name [packages…..] python=version conda conda create -n 2048py_3.7 python=3.6启动虚拟环境 source activate env_name source activate 2048p...原创 2018-09-04 20:32:16 · 609 阅读 · 0 评论 -
python对文件的操作及相关的os
文件的读取文件读取的三步曲:打开—–操作—–关闭 eg:f=open('/tmp/passwd') #打开文件print(f)content=f.read() #读取文件print(content)f.close() #关闭文件 - 文件读取模式的选择 r: 只能读,不能写; 读取的文件不存...原创 2018-09-01 17:13:28 · 412 阅读 · 0 评论 -
python之初识模块与包
模块模块的定义Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。模块让你能够有逻辑地组织你的 Python 代码段。把相关的代码分配到一个模块里能让你的代码更好用,更易懂。模块能定义函数,类和变量,模块里也能包含可执行的代码。包括:内置模块,自定义模块,第三方模块;#列举一些模块impo...原创 2018-08-22 15:41:44 · 202 阅读 · 0 评论 -
python的循环语句及字符串
# ##典型的循环语句应用题:1+2+3+...100=?####### C语言或者Java##;sum = 0for(int i=1; i<100; i++): sum = sum + i0+1+2+3+...100##python##*** range()函数 python2range(stop): 0~stop-1range(start, stop): s...原创 2018-08-11 17:29:43 · 4276 阅读 · 1 评论