学习笔记
哈士猪
这个作者很懒,什么都没留下…
展开
-
MySQL转译escape_string
Mysql导入数据时经常会有特殊符号从而导入失败报错,之前用的都是正则表达式的方法在特殊符号前加’’。但是这种方法仅适用于自己知道有哪些特殊符号的情况,难免会考虑补全。这时候可以用escape_string来自动转义。代码如下:# pymysql在1.0.0版本以上的导入方法from pymysql.converters import escape_stringimport pymysqldb_config = { 'host': '127.0.0.1', 'port': 3原创 2021-07-02 14:06:01 · 758 阅读 · 0 评论 -
Django-MySQL(单表格API)
在models.py中创建表格from django.db import models# Create your models here.class Book(models.Model): id = models.AutoField(primary_key = True) title = models.CharField(max_length=32) pub_date = models.DateField() price = models.DecimalField原创 2021-03-11 15:14:57 · 67 阅读 · 0 评论 -
Python爬虫特训第三周作业(CSDN站内搜索关键词,下载前10页热门文章HTML源码到本地)
import urllib.requestimport lxml.etree as xeimport urllib.parseimport reimport jsonurl1 = 'https://so.csdn.net/api/v2/search?'url2 = 't=all&p={page}&s=0&tm=0&lv=-1&ft=0&l=&u=&platform=pc'def get_response(url):原创 2021-03-11 11:51:04 · 639 阅读 · 0 评论 -
Python爬虫特训第三周作业(利用百度翻译接口制作一个中译英的翻译小程序)
打开百度翻译,随便输入翻译内容,打开F12找到翻译请求的URL地址https://fanyi.baidu.com/sugimport urllib.requestimport urllib.parseimport jsonwhile True: print('|{:15}|{:15}|'.format('1.翻译', '2.退出')) key = input('请选择需要进行的操作') if key == '1': # 导入输入的中文原创 2021-03-11 11:45:19 · 163 阅读 · 0 评论 -
Python爬虫特训第三周作业(爬取csdn首页分类)
作业一目标:将csdn首页的分类内容爬取下来首先将csdn首页的网页源代码下载并保存到html文件中import lxml.etree as xeimport rewith open('作业一.html', 'r', encoding='utf-8')as f: # 读取本地html文件 html = f.read() # 把换行符换成空字符串 html = re.sub('\n', '', html) # 把html转成XML对象 html_原创 2021-03-11 11:33:07 · 92 阅读 · 0 评论 -
Django自学(wsgiref)
WSGI接口定义非常简单,它只要求Web开发者实现一个函数,就可以响应HTTP请求。(廖雪峰老师的原话)from wsgiref.simple_server import make_serverdef appplication(environ, start_response): # 按着http协议解析数据:environ # 按着http协议组装数据:start_response print(environ) print(type(environ)) # 一原创 2021-03-09 15:49:01 · 95 阅读 · 0 评论 -
Django自学(请求/响应协议以及get/post请求)
import socketsock = socket.socket()# 创建本地服务器sock.bind(("127.0.0.1", 8880))sock.listen(5)while True: print("Server waiting") conn, addr = sock.accept() # 接收请求信息 data = conn.recv(1024) # 打印请求信息 print("data: ", data) # 可以将ht原创 2021-03-09 14:10:39 · 178 阅读 · 0 评论 -
Python爬虫特训第三周(Headers伪装策略,代理IP)
import urllib.requestimport urllib.parse#使用Request对比直接使用urlopen的好处是Request可以封装data和headersrequest = urllib.request.Request('https://tieba.baidu.com/f?kw=%E8%B5%9B%E5%8D%9A%E6%9C%8B%E5%85%8B2077')response = urllib.request.urlopen(request).read()print(r原创 2021-03-08 10:43:28 · 273 阅读 · 0 评论 -
Python爬虫特训第三周(Http、Urllib)
Http 请求协议关键字说明Request URL请求的URL地址Request请求方法Status Code状态码Remote Address远端地址Connection连接类型Content-Encoding数据压缩方式 常见压缩方式:Content-Encoding:gzip, Content-Encoding: compress, Content-Encoding: deflate, Content-Encoding: identity原创 2021-03-05 16:30:36 · 60 阅读 · 0 评论 -
Python爬虫特训第三周(JsonPath使用案例)
dumps 用于把Python对象转换成Json对象import jsonteam = [ { 'player': 'Reus', 'captain':True, }, { 'player': None, 'captain': False, },]json_data = json.dumps(team)print(json_data)print(type(json_data))运行结果如下原创 2021-03-05 13:17:43 · 64 阅读 · 0 评论 -
Python爬虫特训第三周(防爬策略)
首先右键检查找到需要爬取帖子标题,找到在div标签下的标签中利用xpath help输入xpath格式找到所有的标签名,如下图将书吧页面的源代码保存到本地,文件名为"shuba.html"import lxml.etree as lewith open('shuba.html', 'r', encoding='utf-8') as f: html = f.read() html_x = le.HTML(html) title_s = html_x.xpath('//div.原创 2021-03-05 11:43:27 · 86 阅读 · 0 评论 -
Python爬虫特训第三周(Xpath)
Xpath语法表达式描述/根节点选取或下级//任意节点,不考虑位置.当前节点.当前节点的父节点@选取属性*匹配任何节点[nodename]根据节点筛选contains(@属性,“包含的内容”)模糊查询text()文本内容注意:xpath中索引从1开始案例利用xpath找到csdn首页游戏开发等文字右键检查发现在div下的ul下的li下的a中两种方法都可以# 准确定位//ul[@class="原创 2021-03-03 15:08:20 · 74 阅读 · 0 评论 -
Python爬虫特训第三周(正则表达式)
正则表达式表达式说明.除了\n和\r的所有字符\d数字\D非数字\w字母和下划线\W非字母和下划线\s空格(包括制表符,换页符等)[a-z]小写英文字母[a-zA-Z0-9大小写英文字母与数字[123]数字123[^123]不是数字123*出现字数≥0+出现次数≥1{n}出现次数=n{n,m}m≥出现次数≥n^以开头$以结尾?关闭贪婪模式()用于获取原创 2021-03-02 21:02:38 · 79 阅读 · 0 评论 -
Python爬虫特训第二周(python操作sql)
大体格式import pymysql# 链接 ip 端口 用户名 密码 数据库db_config = { 'host': '127.0.0.1', # 服务器ip地址 'port': 3306, 'user': 'root', 'password':'sacrifice1998', 'db': 'python', 'charset': 'utf8',}conn = pymysql.connect(**db_config) #获取原创 2021-03-02 11:57:16 · 104 阅读 · 0 评论 -
Python爬虫特训第二周(初识My SQL)
mysql库操作文件夹(库); 英文分号结尾增create database mydb;查show databases;show create database mydb;改alter database mydb charset utf8;删drop database mydb;操作文件(表)增create table csdn (id int, name varchar(20), age tinyint unsigned);查show cr原创 2021-03-01 16:22:22 · 94 阅读 · 0 评论 -
Python爬虫特训第二周(字符编码)
x = b'ABC' # 字节数组,byte数组print(x)# 在byte中,无法显示ASCII字符的字节,用\x##来显示print('在这种'.encode('utf-8'))print('ABC'.encode('utf-8'))print(b'\xe5\x9c\xa8\xe8\xbf\x99'.decode())# 中文占用多少字节print(len('普鲁士Dortmund'))print(len('多特蒙德'.encode('utf-8')))print(len('原创 2021-03-01 09:22:49 · 74 阅读 · 1 评论 -
Python爬虫特训第二周(函数高级运用)
Python中函数即变量变量可以指向函数函数名也是变量传入函数函数本身也可以赋值给变量,即:变量可以指向函数# abs(-10)函数调用,abs是函数本身print(abs(-10))f = absprint(f)print(f(-10))输出结果如下# abs函数被覆盖掉abs = 10abs(-10)输出结果如下# 把函数当作参数传递给其他函数def add(x, y, f): return f(x) + f(y)print(add(-5, -9原创 2021-02-26 09:51:45 · 71 阅读 · 0 评论 -
Python爬虫特训第二周(杨辉三角的实现)
def triangles(): a = [1] while True: yield a a = a + [0] a = [a[i-1] + a [i] for i in range(len(a))] if len(a) > 5: breakn = 0results = []for t in triangles(): print(t) results.append(t)原创 2021-02-25 15:01:45 · 100 阅读 · 0 评论 -
Python爬虫特训第二周(常用设计模式)
生成器循环过程中推选后续元素,而不必创建完整的list。这种一边循环一边计算的机制称为生成器:generator两种定义1.列表生成式2.带yield的generator functionL = [x*x for x in range(10)]print('L:', L)g = (x*x for x in range(10))print(g)输出结果如下列表生成式Python内置的非常简单却强大的可以用来创建列表的生成式快速的把字典内容转化成列表d = { 'x原创 2021-02-25 13:35:33 · 131 阅读 · 0 评论 -
Python爬虫特训第二周
继承定义一个class的时候,可以从某个现有的class继承,新的class称为子类(subclass)被继承的class称为基类,父类或超类(Base class, Super class)class Animal(object): def run(self): print('Animal is running')class Dog(Animal): def run(self): # 重写 # 调用父类的方法 super().原创 2021-02-25 11:02:28 · 65 阅读 · 0 评论 -
Python爬虫特训第二周(程序设计与数据结构)
标题面向对象和面向对象编程类由属性和方法组成对象是类的实例化属性可以封装,并声明私有属性类属性和实例属性# 面向过程stu1 = {'name': 'Reus', 'score': 99}stu2 = {'name': 'Sancho', 'score': 95}# 函数def print_score(stu): print('%s: %s' % (stu['name'], stu['score']))# 面向对象# 1.设计类# 属性和方法class S原创 2021-02-25 09:52:44 · 64 阅读 · 0 评论 -
Python爬虫特训第一周(最简陋的ATM模拟)
"""登录&退书查询余额取钱存钱"""# 用户数据源user_data = [ {'Name': 'Liubei', 'Password': 'xuande', 'Deposit': 10000}, {'Name': 'Guanyu', 'Password': 'yunchang', 'Deposit': 20000}, {'Name': 'Zhangfei', 'Password': 'yide', 'Deposit': 30000}]user_list原创 2021-02-24 20:09:44 · 115 阅读 · 0 评论 -
Python爬虫特训第一周(计算文件大小)
文件大小1 Bytes = 8 Bit1 KB = 1024 Bytes1 MB = 1024 KB1 GB = 1024 GB1 TB = 1024 GBimport os# 初始大小设为0dir_size = 0def get_dir_size(target_dir): global dir_size #获取文件夹路径 dir_list = os.listdir(target_dir) print(dir_list) #计算每个文件的大小原创 2021-02-24 20:06:57 · 209 阅读 · 0 评论 -
Python爬虫特训第一周(文件、文件夹的复制)
通过os模块进行文件和文件夹操作使用该模块必须先导入os模块import osos模块中的部分函数:getcwd() 获取当前的工作目录chdir() 修改当前工作目录listdir() 获取指定路径文件夹mkdir() 创建一个目录/文件夹rmdir() 移除一个目录(必须是空目录)rename() 修改文件和文件夹名称stat() 获取文件的相关信息exit() 退出当前执行命令os.path --> os中的一个重要的子模块通过os模块进行路原创 2021-02-24 19:56:23 · 156 阅读 · 0 评论 -
Python爬虫特训第一周(函数、文件读取)
Python爬虫特训第一周(函数)形参: 形式上的参数,声明函数时()中的参数是形参实参: 实际上的参数,调用函数时()中的参数是实参函数参数格式默认值的参数:可选择性输入的参数可变参数 :可以输入0到任意个参数,函数内组装成tuple关键字参数:可以输入0到任意个含参数名参数,函数内组装成一个dict命名关键字参数多种参数混合:顺序是必选,默认,可变,命名关键字,关键字关键字参数def student(name, age, **kw): print('Name:',原创 2021-02-24 19:42:31 · 78 阅读 · 0 评论 -
Python爬虫特训第一周(99乘法表)
Python爬虫特训第一周(99乘法表)利用循环结构完成99乘法表的输出For loopfor row in range (1,10): for col in range(1, row+1): print('{}*{}={:<4}'.format(col, row, col*row), end='') print('')print('='*90)for col in range(9, 0, -1): for row in range(1, col+1): print('{}*原创 2021-02-24 19:21:38 · 413 阅读 · 0 评论