Python_PyMySQL数据库操作
连接数据库:
- conn=pymysql.connect(host='*.*.*.*',port=,user='root',password='',charset='utf8')
建立游标:
- cur = conn.cursor()
创建一个名字叫 lj 的数据库:
- cur.execute('create database if not EXISTS lj character set utf8;') #用cur.execute执行SQL语句 注意如果要插入中文数据,建库时必须要加 character set utf8 意思是把字符集设置为utf8,要不然中文不能显示!
选则要操作的数据库:
- conn.select_db('lj')
添加7个字段:
- cur.execute('create table JiNan(source VARCHAR(50),addr VARCHAR(50),stru VARCHAR(50),dir_1 VARCHAR(50),floor VARCHAR(50),size VARCHAR(50),money VARCHAR(50));')
提交修改:
- conn.commit()
向表中插入数据:
- cur.execute("insert into JiNan(source,addr,stru,dir_1,floor,size,money) VALUES('%s','%s','%s','%s','%s','%s','%s')"%(so,ad,st,di,fl,si,mn))
整个爬取网站数据然后存入数据库的脚本:
- #-*- coding:utf- -*-
- import requests,re,pymysql
- def get_info(url):
- html_response = requests.get(url)
- html_response.encoding = 'utf-8'
- add_add = r'<span class="region">(.*?) '
- stru_add = r'class="zone"><span>(.*?) '
- size_add = r'<span class="meters">(.*?) '
- dir_add = r'</span><span>(.*?)</span></div><div'
- floor_add = r'<span>/</span>(.*?)</div></div><div'
- source_add = r'<div class="con"><a href=".*?">(.*?)</a>'
- money_add = r'lass="price"><span class="num">(.*?)</span>元/月'
- add = re.findall(add_add,html_response.text)
- stru = re.findall(stru_add,html_response.text)
- size = re.findall(size_add,html_response.text)
- dir_1 = re.findall(dir_add,html_response.text)
- floor = re.findall(floor_add,html_response.text)
- source = re.findall(source_add,html_response.text)
- money = re.findall(money_add,html_response.text)
- #print(add[],stru[],dir_1[],floor[],source[],size[],money[])
- return source,add,stru,dir_1,floor,size,money
- def into_db(source,add,stru,dir_1,floor,size,money,cur,conn):
- for so,ad,st,di,fl,si,mn in zip(source,add,stru,dir_1,floor,size,money):
- cur.execute("insert into JiNan(source,addr,stru,dir_1,floor,size,money) VALUES('%s','%s','%s','%s','%s','%s','%s')"%(so,ad,st,di,fl,si,mn))
- conn.commit()
- if __name__ == '__main__':
- conn = pymysql.connect(host='*.*.*.*',port=,user='root',password='',charset='utf8')
- cur = conn.cursor()
- cur.execute('create database if not EXISTS lj character set utf8;')
- conn.select_db('lj')
- cur.execute('create table JiNan(source VARCHAR(50),addr VARCHAR(50),stru VARCHAR(50),dir_1 VARCHAR(50),floor VARCHAR(50),size VARCHAR(50),money VARCHAR(50));')
- conn.commit()
- for i in range(,):
- url = 'https://jn.lianjia.com/zufang/pg' + str(i)
- print(url)
- source,add,stru,dir_1,floor,size,money = get_info(url)
- into_db(source,add,stru,dir_1,floor,size,money,cur,conn)
- print('OK... ...')
- conn.close()
Python_PyMySQL数据库操作的更多相关文章
- 如何在高并发环境下设计出无锁的数据库操作(Java版本)
一个在线2k的游戏,每秒钟并发都吓死人.传统的hibernate直接插库基本上是不可行的.我就一步步推导出一个无锁的数据库操作. 1. 并发中如何无锁. 一个很简单的思路,把并发转化成为单线程.Jav ...
- 【知识必备】ezSQL,最好用的数据库操作类,让php操作sql更简单~
最近用php做了点小东东,用上了ezSQL,感觉真的很ez,所以拿来跟大家分享一下~ ezSQL是一个非常好用的PHP数据库操作类.著名的开源博客WordPress的数据库操作就使用了ezSQL的My ...
- MySQL 系列(二) 你不知道的数据库操作
第一篇:MySQL 系列(一) 生产标准线上环境安装配置案例及棘手问题解决 第二篇:MySQL 系列(二) 你不知道的数据库操作 本章内容: 查看\创建\使用\删除 数据库 用户管理及授权实战 局域网 ...
- ABP创建数据库操作步骤
1 ABP创建数据库操作步骤 1.1 SimpleTaskSystem.Web项目中的Web.config文件修改数据库配置. <add name="Default" pro ...
- 【第一篇】ASP.NET MVC快速入门之数据库操作(MVC5+EF6)
目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...
- django数据库操作和中间件
数据库配置 django的数据库相关表配置在models.py文件中,数据库的连接相关信息配置在settings.py中 models.py相关相关参数配置 from django.db import ...
- [Android Pro] 完美Android Cursor使用例子(Android数据库操作)
reference to : http://www.ablanxue.com/prone_10575_1.html 完美 Android Cursor使用例子(Android数据库操作),Androi ...
- phpcms v9 中的数据库操作函数
1.查询 $this->select($where = '', $data = '*', $limit = '', $order = '', $group = '', $key='') 返回 ...
- Android打造属于自己的数据库操作类。
1.概述 开发Android的同学都知道sdk已经为我们提供了一个SQLiteOpenHelper类来创建和管理SQLite数据库,通过写一个子类去继承它,就可以方便的创建.管理数据库.但是当我们需要 ...
随机推荐
- unix os下du df简单用法
转自:http://dadoneo.iteye.com/blog/984963 du命令参数详解见:http://baike.baidu.com/view/43913.htm 下面我们只对其做简单介绍 ...
- JSP自定义标签必知必会
自定义标签技术自sun公司发布以来,便一向很受欢迎!下面我就来谈一谈如何实现自定义标签,以及如何使用自定义标签. 如何实现自定义标签 首先我们应该知道原理,不管是标签还是JSP,本身实际上都会被JSP ...
- SIMPLE_DEV_PM_OPS宏
SYSTEM_SLEEP_PM_OPS和dev_pm_ops的定义: [cpp] view plain copy #define SET_SYSTEM_SLEEP_PM_OPS(suspend_fn, ...
- Git工程迁移方法总结(命令行)
Git工程迁移方法总结 Git工程迁移方法总结 Git最近准备迁移一下位置,这里采用命令行的方式,做如下操作. 1.git init 初始化git仓库,这个时候发现本地文件夹多了个.git的文件夹. ...
- Mybatis源码之Statement处理器RoutingStatementHandler(三)
RoutingStatementHandler类似路由器,在其构造函数中会根据Mapper文件中设置的StatementType来选择使用SimpleStatementHandler.Prepared ...
- Spring+Hibernate4 Junit 报错No Session found for current thread
论坛上有另外一篇更全面的帖子,jinnianshilongnian写的:http://www.iteye.com/topic/1120924 本文的环境是: spring-framework-3.1 ...
- python 内存数据库与远程服务
python 内存数据库与远程服务 需要import的python 内存数据库代码参考下面的链接: http://blog.csdn.net/ubuntu64fan/article/details/5 ...
- Java进阶(四)Java反射TypeToken解决泛型运行时类型擦除问题
在开发时,遇到了下面这条语句,不懂,然习之. private List<MyZhuiHaoDetailModel> listLottery = new ArrayList<MyZhu ...
- 【Android 系统开发】Android JNI 之 JNIEnv 解析
. jni.h文件 : 了解 JNI 需要配合 jni.h 文件, jni.h 是 Google NDK 中的一个文件, 位置是 $/android-ndk-r9d/platforms/android ...
- Leetcode_9_Palindrome Number
本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/41598031 Palindrome Number Dete ...