自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 问答 (1)
  • 收藏
  • 关注

原创 python爬虫学习笔记(10)xpath

xpath:最常用且最便携高效的一种解析方式,通用性。xpath解析原理:1.实例化一个etree的对象,且 需要将被解析的页面源码数据加载到该对象中。2.调用etree对象中的xpath 方法结合着xpath表达式实现标签的定位和内容的捕获。环境的安装:pip install lxml如何实例化一个etree对象from lxml import etree1.将本地的 HTML文档中的 源码数据加载到 etree对象中:etree.parse(filePath)2.可以将从互联网上获

2020-07-28 17:03:09 134

原创 python爬虫笔记(8)正则表达式和re库

format中文对齐问题昨天那个爬虫的中文没有对齐,改了下面这个函数就会对其了。def printUnivList(ulist, num): #输出模板变量 tplt = "{0:10}\t{1:{3}^10}\t{2:^10}" #输出 print(tplt.format("排名", "学校名称", "总分", chr(12288))) #循环 for i in range(num): u = ulist[i] prin

2020-07-24 17:03:10 109

原创 python爬虫笔记(7)

xml通过标签表达信息,成对出现,可扩展性好,但繁琐。json有类型的键值对,可以嵌套使用 ,适合程序处理(js),较xml简洁。“key”:“value”“key”:[“value1”, “value2”]“key”:{“subkey”:“subvalue”}yaml无类型键值对,也就是没有引号,文本信息比例最好,可读性好。name:-北京理工大学-天津大学#表示注释,-表示并列的值信息,键值对之间可以嵌套。信息提取的一般方法方法一:完整解析信息的标记形式,再提取关键信息。优

2020-07-23 17:03:18 100

原创 python爬虫笔记(5)beautifulsoup

pip install beautifulsoup安装beautifulsoup的时候出现错误ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.网上搜了一下是版本不对,加个4就行了pip install beautifulsoup4import requestsfrom bs4 import BeautifulSoupr

2020-07-22 17:00:59 110

原创 python的爬虫笔记(4)scrapy框架学习

Scrapy Engine:多进程代码,提供并发的支持。已经实现好的,不需要修改。Scheduler(调度器):存储以及调度(URL+函数)=Request。已经实现好的,不需要修改。Downloader(下载器):跟request.get的部分封装到这里面。通过Request下载返回值(HTML,JSON),RESPONSE。已经实现好的,不需要修改。Spiders(蜘蛛):获取到了Response之后,需要定位具体信息。需要自己写的。item pipeline(项目管道):存储或者是急需处理具体

2020-07-22 08:21:41 108

原创 python爬虫笔记(6)

request.get(url, params=None,**kwargs)url:拟获取页面的url链接params:url中的 额外参数,字典或字节流格式,可选**kwargs:12个控制访问的参数r.status_code:HTTP请求的返回状态,200表示连接成功,404表示连接失败。r.text:HTTP响应内容的 字符串形式,即,url对应的页面内容。r.encodeing:从HTTP header中猜测的响应内容编码方式。r.apparent_encoding:从内容中分析出的.

2020-07-21 13:59:48 148

原创 python爬虫笔记(3)第一个爬虫和xpath

1.接口解析2.第三方破解通用爬虫 -》 今日头条 谷歌 百度url(网址) -》DNS解析 -》下载网页聚焦爬虫 精准的抓取网页监控爬虫 定时爬虫url组成:http (http + ssl(安全套接层 )) http(超文本传输协议) 域名#已被淘汰import urllib#现在常用import requests#获取百度的对象response = requests.get(‘https://www.baidu.com/’)#返回成功 也就是200print(respon

2020-07-16 09:30:48 297

原创 python爬虫小练习(2)自动下载B站排行榜视频

#requests 爬虫第三方库 模拟浏览器请求后台数据import requestsimport you_get #视频下载库import sys #调用系统的命令行from pyquery import PyQuery as pq #数据提取的#爬虫工程师 # 反扒 加密破解 验证登录 分布式 云计算# 数据抽取 清晰 消重# 维护爬虫系统# ja ajax html css# app抓包# scrapy框架 高并发 异步 。。。#python开发# docker

2020-07-15 15:09:12 258

原创 python的anaconda的matplotlib-条形图

import matplotlib.pyplot as pltimport numpy as npimport matplotlib.pyplot as pltimport numpy as np#准备数据GDP = [10, 20, 30, 40, 50]plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']plt.rcParams['axes.unicode_minus'] = False#绘图plt.bar(range(5)

2020-07-13 17:04:55 685

原创 python的爬虫笔记(1)scrapy框架学习

HTTP协议http:普通http协议,不太安全https:安全请求方法(method) **GET 常用于从服务器获取数据请求数据在URL中(也就是header中)传输数据量小,支持缓存POST 常用于向服务器发送**数据请求数据在body中传输数据量admin,不缓存PUT 类似POST,向服务器发送数据HEAD 类似于GET,但服务器只返回头部,常用于检测浏览器是否在线OPTIONS 对服务器进行一些配置DELETE 要求服务器删除某个数据状态码:200 成功404

2020-07-13 16:02:56 167

原创 python学习笔记(二十)内建模块collection

collections是Python内检的一个集合模块,提供了许多有用的集合类。namedtuple我们知道tuple可以表示不变集合,比如坐标,但只是两个数字很难看出这是个坐标,这时候就可以用namedtuple.from collections import namedtuplePoint = namedtuple('Point' , ['x', 'y'])p = Point(1, 2)print(p.x)print(p.y)namedtuple是一个函数,它用来创建一个自定义的 t

2020-07-10 09:37:41 99

原创 python学习笔记(十九)内建模块datetime

datetimedatetime是Python处理日期和时间的标准库。获取当前日期和时间我们先看如何获取当前日期和时间: from datetime import datetimenow = datetime.now() #获取当前datetimeprint(now)print(type(now))结果 :2020-07-08 13:35:00.903533<class 'datetime.datetime'>datetime是模块,模块里还有datetime类,通

2020-07-09 11:31:25 268

原创 python学习笔记(十八)正则表达式初入门

分布式进程在Thread和Process中,应当优选Process,因为Process更稳定,而且Process可以分布到多台机器上,而Thread最多只能分不到同一台机器的多个CPU上。Python的multiprocessing模块不但支持多进程,其中managers子模块还支持把多进程分布到多台机器上。一个服务进程可以作为调度者,将任务分配到其它多个进程中,依靠网络通信。由于managers模块封装很好,不必了解网络通信的细节,就可以很容易地编写分布式多进程程序。例:有一个通过Queue通信的多

2020-07-08 11:59:43 138

原创 廖雪峰Python学习笔记(十七) threadlocal

ThreadLocal多线程环境下,每个线程都有自己的数据,一个线程使用自己的局部变量比使用全局变量好,因为局部变量只有线程自己使用,不会影响其它线程,全局变量还得加锁使用。但局部变量在函数调用时,传递麻烦:def process_student(name): std = Student(name) # std是局部变量,但是每个函数都要用它,因此必须传进去: do_task_1(std) do_task_2(std)def do_task_1(std): do

2020-07-07 14:41:04 179

原创 Python学习笔记(十六)多进程和多线程

多进程要实现多进程(multiprocessing),首先要了解 操作系统的相关知识Unix/Linux操作系统提供了 一个fork()系统调用,他非常 特殊 ,普通函数调用一次返回一次,fork()调用一次返回两次,这是操作系统自动把当前进程(父进程)复制了一份(子进程),分别在父进程和子进程内返回。子进程永远返回 0,而父进程返回子进程的ID。这样做的理由是,一个父进程可以fork出很多子进程,所以父进程要记下没格子进程 的 ID ,而子进程只需要调用getppid()就可以拿到父进程的ID。P

2020-07-07 13:58:12 166

原创 python学习笔记(十五)json数据转化

操作文件和目录操作文件和目录的函数一部分防砸OS模块中,一部分在os.path模块中。查看、创建和删除目录可以这么调用:查看当前目录的绝对路径:import oss = os.path.abspath('.')print(s)#结果:G:\zrx\demoproject在某个目录下创建一个新目录,首先把新目录 的完整路径表示出来:s = os.path.join('G:\zrx\demoproject', 'testdir')print(s)#结果:G:\zrx\demoproje

2020-07-06 17:02:55 352

原创 python中的pygame小练习(3)碰撞精灵和碰撞检测

五个小球随机出现,随机速度,在窗口中乱逛。import pygameimport sysfrom pygame.locals import *from random import *class Ball(pygame.sprite.Sprite): #这是pygame的碰撞基类,继承就行了 def __init__(self, image, position,speed, bg_size): #球的图片,球的位置,球的速度 pygame.sprite.Sprite

2020-07-04 15:05:21 1627

原创 python练习,飞机大战(1)小甲鱼

游戏基本设定敌方共有大中小三款飞机 ,分为 高中低三种速度;子弹的射程并非 全屏,而大概是屏幕长度的80%;消灭小飞机需要 1发 子弹,中飞机 需要8发,大飞机需要20发;每消灭一家小飞机得1000分 ,中飞机6000分,大飞机10000分;每个30秒有一个随机的道具补给,分为两种道具,全屏炸弹 和双倍子弹;全屏炸弹最多只能存放 3枚,双倍子弹可以维持18秒钟的效果;游戏将根据分数逐步提高难度,难度的提高表示飞机数量的增多 以及速度的加快。中飞机和大飞机增加血槽的显示;...

2020-07-04 10:56:40 948 2

原创 python中的pygame小练习(2)基本图形绘制

基本图形绘制绘制矩形pygame.draw.rect(screen,BLACK,(50, 50, 150, 50), 0)#Surface :矩形绘制在哪个Surface对象上# color:边框颜色# Rect:指定矩形范围,就是四个左边点的位置# width: 指定边框大小,0表示填充这个矩形,1表示边框一个像素绘制多边形polygon(Surface, color, pointlist, width=0)#Surface :矩形绘制在哪个Surface对象上# color:边框颜色

2020-07-04 09:49:00 513 2

原创 python的pygame小练习

例:一个老虎对象自己动,按上下左右键的话会随按键动。import pygameimport sys#把pygame所有的常量名导入from pygame.locals import *#初始化Pygamepygame.init()size = width, height = 1000, 600speed = [-2, 1]bg = (255, 255, 255) #rgb颜色clock = pygame.time.Clock()#创建指定窗口大小,返回surfaces

2020-07-03 16:57:13 672

原创 python学习笔记(十四)IO编程、操作文件和目录

IO 编程文件读写读写文件是最常见 的IO 操作。Python内置了读写文件的函数,用法和C是兼容的。在读写文件之前,要了解,在磁盘上读写文件的功能都是由操作系统提供的 ,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作 系统打开一个文件对象(文件描述符),然后,通过操作系统提供的接口从这个文件 对象中读取数据(读文件),或者把数据写入这个文件对象(写文件)。读文件要以读文件模式打开一个文件对象,使用Python内置的open()函数,传入文件名和标识符:>>&g

2020-07-02 17:03:33 241

原创 question

装饰器propert的详解在函数前调用,看函数的运行时间在函数前调用,检查没有重复值@uniqueclass Weekday(Enum):Sun = 0Mon = 1Tue = 2Wed = 3Thu = 4Fri = 5正常情况下我们在父类中是不能对子类的属性进行操作,但是元类可以。元类、装饰器、类装饰器都可以归为元编程。metaclass低层详解https://zhuanlan.zhihu.com/p/98440398包导入不进来王茂杰...

2020-07-02 15:06:24 103

原创 python学习笔记(十三)调试,单元测试,文档测试(这个有问题 ,没调成功)

调试程序一次写完不出错的概率很小,有的bug看错误信息就知道,有的变量值是错误的,因此 需要一整套调试程序的手段来修复bug。第一种方法简单直接粗暴有效,就是print()把可能有问题的变量打印出来:def foo(s): n = int(s) print('>>>n = %d' % n) return 10 / ndef main(): foo('0')main()用point的最大坏处是还得删掉他,如果程序里都是print(),运行结果也

2020-07-02 13:38:45 526 1

原创 python学习笔记(十二)错误处理

错误处理在程序运行过程中,如果发出了错误,可以事先约定返回一个错误代码,这样就可以知道是否有错,以及出错的原因。在操作系统提供的调用中,返回错误码非常常见。比如打开文件的函数open(),成功时返回文件描述符(就是一个整数),出错时返回-1.用错误码来表示是否出错十分不便,因为函数本身应该返回的正常结果和错误码混在一起,调用者必须用大量代码判断是否出错。def foo(): r = some_function() if r==(-1): return (-1)

2020-07-01 17:01:37 149

原创 python学习笔记(十一)metaclass太难了QAQ

metaclass除了使用type()动态创建类以外,要控制类的创建行为,还可以使用metaclass元类。当我们定义了类以后,就可以根据这个类创建出实例,所以:先定义类,然后创建实例。如果想创建类,就得用metaclass,先定义metaclass,然后创建类。连接起来:先定义metaclass,创建类,最后创建实例。metaclass允许你创建类 或者修改类,可以把类看成是metaclass创建出来的实例。__init__是实例对象创建完成后被调用的,然后设置对象属性的一些初始值。__n

2020-07-01 14:26:27 110

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除