mysql数据库

Python笔记:爬虫框架Scrapy抓取数据案例实战解析包含项目代码

 ̄綄美尐妖づ 提交于 2020-01-14 19:57:14
概述 本项目通过Scrapy框架的爬虫实战案例来巩固该项技术栈,并用于日后回忆和反思 任务: 爬取 careers.tencent.com 中关于指定条件的所有社会招聘信息 搜索条件为 中国 AI 关键字的就业岗位 并将信息存储到MySql数据库中 地址:https://careers.tencent.com 步骤: 首先爬取每页的招聘信息列表 再爬取对应的招聘详情信息 分析: 方案1 经过页面分析详情页所需id可在列表页分享下结构的div中获取(如果页面上没有具体链接地址,那么跳转程序就很可能在js脚本中或者跳转地址在接口数据中) 打开源代码查看,发现代码非常少,经过构建程序处理过,并且所有数据都是后加载出来的 此方案不可取 (方案1 图例) 方案2 解析ajax请求数据并进行处理 列表接口 举例: https://careers.tencent.com/tencentcareer/api/post/Query?timestamp=1578972041752&countryId=1&cityId=&bgIds=&productId=&categoryId=&parentCategoryId=&attrId=&keyword=&pageIndex=1&pageSize=10&language=zh-cn&area=cn 简化 列表接口 请求参数: https://careers

MySQL-事务

风流意气都作罢 提交于 2020-01-14 19:44:05
MySQL-事务 事务定义 事务就是一组原子性的SQL查询语句,要么全部执行成功、要么全部执行失败。 ACID 一个良好的事务数据库系统,必须具备ACID特性。 原子性(Atomicity) 要么全部执行、要么全部不执行 一致性(Consistency) 事务开始和结束时,数据必须保证一致性 隔离性(Isolation) 事务处理过程中、中间状态对其他事务不可见 持久性(Durability) 事务完成后、它对数据的修改时永久性的 事务隔离级别 MySQL有四种隔离级别。 Read Uncommitted读未提交 所有事务可以看到其他未提交事务的执行结果 Read Committed读已提交 事务只能看到已提交事务所做的改动 Repeatable Read可重复读 默认的隔离级别 Serializable串行 强制事务排序、一次只执行一个事务 并发问题 脏读 事务读到了其他未提交的事务修改的数据,此数据可能因回滚而作废。 不可重复读 事务多次读取同一数据,返回的结果不同。 幻读 事务多次读取同一数据,返回的结果条数不同。 不可重复读和幻读区别: 不可重复读:针对其他事务提交前后,对行的修改来说。 幻读:针对其他事务提交前后,对行的增删来说。 不同隔离级别下的并发问题 脏读 不可重复读 幻读 读未提交 √ √ √ 读已提交 × √ √ 可重复读 × × x(注) 串行 × × ×

Flask操作mysql

大憨熊 提交于 2020-01-14 19:22:21
Flask使用MySql数据库 环境说明 Centos7 + python3.6 + mysql5.7 1.安装Flask-SQLAlchemy,pymyql驱动 pip install flask-sqlalchemy pip intall pymysql 2.使用Flask-SQLAlchemy Flask-SQLAlchemy数据库URL 常用的数据库引擎: 数据库引擎 URL MySql mysql+pymysql://username:password@host/database Postgres postgresql://username:password@host/database app.py 编辑 #导入模块 from flask_sqlalchemy import SQLAlchemy import pymysql #创建flask对象 app = Flask(__name__) #配置flask配置对象中键:SQLALCHEMY_DATABASE_URI app.config['SQLALCHEMY_DATABASE_URI'] = "mysql+pymysql://username:password@hostname/database" #配置flask配置对象中键:SQLALCHEMY_COMMIT_TEARDOWN,设置为True

mysql 数据库 IV(多表查询)

℡╲_俬逩灬. 提交于 2020-01-14 19:04:16
1.今日内容 多表联合查询 内连接 (inner jion ...on ...) :只连接匹配的行 外连接:只连接匹配的行 左外连接 left jion ... on ... 右外连接 right jion ... on ... 全外连接 full jion select 字段列表 from 表1 inner|left|right join 表2 on 表1.字段 = 表2.字段 子查询 2.具体内容 数据准备 数据准备示例 mysql> use day41; Database changed # 建表 mysql> create table department( -> id int, -> name varchar(20) -> ); Query OK, 0 rows affected (0.05 sec) mysql> create table employee( -> id int primary key auto_increment, -> name varchar(20), -> sex enum('male','female') not null default 'male', -> age int, -> dep_id int -> ); Query OK, 0 rows affected (0.02 sec) # 插入数据 mysql> insert into

快速回顾MySQL:简单查询操作

喜夏-厌秋 提交于 2020-01-14 18:36:11
利用空闲时间花几分钟回顾一下 7.1 检索数据 为了查询出数据库表中的行(数据),使用SELECE语句。 格式: # 第一种 SELECT * FROM <table_name>; # 第二种 SELECT field1,field2,... FROM <table_name>; 第一种写法使用*通配符,会把表中行的列全部查询出来,而不必取一一列出全部列。但是不推荐使用,这跟INSERT语句的规范写法一样。 使用*通配符,列的顺序一般是列在表定义中出现的顺序,但有时候并不是这样的,表的模式的变化(如添加或删除列)可能会导致顺序的变化。特别是像使用INSERT SELECT这样的语句,可能会报错,甚至可能会不会报错但是数据插入错误的列。 推荐使用第二种,第二种查询方式可以查询表中行的全部列,也可以查询表中行的单列或多列。 使用通配符注意事项:虽然使用通配符可能会省事,不用明确列出所需列,但检索不需要的列通常会降低检索和应用程序的性能。 例如: 单列查询: SELECT stu_name FROM student; 多列查询: SELECT stu_name, stu_sex FROM student; 查询全部列: SELECT * FROM student; # 或(推荐) SELECT stu_id, stu_name, stu_sex FROM student; 7.2

20.java-JDBC连接mysql数据库详解

走远了吗. 提交于 2020-01-14 17:55:49
1.JDBC介绍 jdbc (java database connectivity) 为java开发者使用数据库提供了统一的编程接口,它由一组java类和接口组成。 JDBC需要用到的类和接口有: DriverManager、Connection、Statement、ResultSet 2. mysql-connector-java下载 本机的mysql版本是5.7.26 win32的,所以本章访问mysql都以该版本为例: 然后进入 https://dev.mysql.com/downloads/connector/j/ 下载mysql-connector-java.jar包,用于连接mysql 如下图所示,只有8.0.19版本,那我们下载它就好了,反正不管64位还是32位都能访问: 下载解压后,就有个mysql-connector-java-8.0.19.jar: 接下来就来测试,能不能访问 3.JDBC使用过程 3.1 通过DriverManager. registerDriver( Driver driver)来注册驱动程序 需要注意,new Driver的时候,需要选择com.mysql.cj.jdbc.Driver: 因为com.mysql.jdbc.Driver已经被弃用了. PS: 也可以直接将 DriverManager. registerDriver

基于scrapy的搜索引擎(三):爬取问答网站

梦想与她 提交于 2020-01-14 17:54:58
起步 首先利用selenium获取登录知乎后的cookies,夹着cookies对知乎首页发送response请求,然后再对首页中的热榜(可以修改start_urls)下的所有问答页面进行爬取,并将字段异步插入到mysql中 爬取知乎热榜 通过selenium获取登录后的cookies,并将cookies以json的格式保存在zhihuCookies,json中: def loginZhihu ( self ) : loginurl = 'https://www.zhihu.com/signin' # 加载webdriver驱动,用于获取登录页面标签属性 driver = webdriver . Chrome ( ) driver . get ( loginurl ) # 扫描二维码前,让程序休眠10s time . sleep ( 10 ) input ( "请点击并扫描页面二维码,手机确认登录后,回编辑器点击回车:" ) # 获取登录后的cookies cookies = driver . get_cookies ( ) driver . close ( ) # 保存cookies,之后请求从文件中读取cookies就可以省去每次都要登录一次的,也可以通过return返回,每次执行先运行登录方法 # 保存成本地json文件 jsonCookies = json . dumps

CentOS7下使用YUM安装MySQL5.6

雨燕双飞 提交于 2020-01-14 11:26:49
1、检查是否有安装mysql及组件rpm -qa | grep mysql 注意: 在新版本的CentOS7中,默认的数据库已更新为了Mariadb,而非 MySQL,所以执行 yum install mysql 命令只是更新Mariadb数据库,并不会安装 MySQL 。 (2)查看已安装的 Mariadb 数据库版本。 rpm -qa|grep -i mariadb (3)卸载已安装的 Mariadb 数据库。 rpm -qa|grep mariadb|xargs rpm -e --nodeps (4)再次查看已安装的 Mariadb 数据库版本,确认是否卸载完成。 rpm -qa|grep -i mariadb (5)下载安装包文件。 wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm (6)安装mysql-community-release-el7-5.noarch.rpm包 rpm -ivh mysql-community-release-el7-5.noarch.rpm 安装完成之后,会在 /etc/yum.repos.d/ 目录下新增 mysql-community.repo 、mysql-community-source.repo 两个 yum 源文件。 执行 yum

数据库-mysql的登录

て烟熏妆下的殇ゞ 提交于 2020-01-14 10:58:53
出现:ERROR 1045 (28000): Access denied for user 'admin'@'localhost' (using password: YES) 错误 首先应该点击计算机右键,管理,找到mysql的服务 启动 然后再cmd中输入 mysql -uroot -p密码 然后就可以链接上了 例如mysql -uroot -proot 你的密码是root 如果要连接别的主机的数据库,用 mysql -hip -uroot -p密码 这个命令 例如mysql -h127.0.0.1 -uroot -proot 这时候会链接到自己的主机的mysql -proot root是链接目标的密码 登录的另一种方式 mysql --host=127.0.0.1 --user=root --passwort=root 注意前面是两杠 这个是上面命令的简写 综上 MySql的三种登录方式 1 mysql -uroot -p密码 2 mysql -hip -uroot -p链接目标的密码 3 mysql --host=ip --user=root --password =root MySql的推出 1 exit 2 quit 来源: CSDN 作者: qq_39653453 链接: https://blog.csdn.net/qq_39653453/article/details

Flask项目中向Mysql存入Emoji表情引起的Bug

独自空忆成欢 提交于 2020-01-14 09:52:40
Bug背景 之前在写Flask入门项目Flask Mega项目的时候,一直都是用SQLite,后面切换到Mysql数据库发现在存入一些EMOJI表情符号的时候,会出现如下的报错。 Bug解决思路 刚开始觉得应该是数据库的编码的问题,因为之前也遇到数据库存入特殊符号的时候发生报错。那先查看服务器上面的数据库编码格式。 show variables like '%char%'; 通过查看数据库编码发现都是 utf8 格式。然后查阅有关的资料,以及翻阅之前做过的笔记发现,Mysql中的utf8编码格式最多支持最多3字节的数据,而emoji表情字符是4个字节的字符,如果采用utf8的数据库插入表情字符,就会因为被截断导致无法存入到数据库。 Bug解决过程 大概理解了原理就好办了,修改数据库的编码格式,因为我是使用的是Mariadb数据库 我修改的是/etc/my.cnf,/etc/my.cnf.d/目录下的配置文件,大概修改有这几项内容: [client] default-character-set = utf8mb4 [mysql] default-character-set = utf8mb4 [mysqld] character-set-client-handshake = FALSE character-set-server = utf8mb4 collation-server =