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数据库,通过写一个子类去继承它,就可以方便的创建.管理数据库.但是当我们需要 ...
随机推荐
- Android初级教程理论知识(第九章多媒体编程)
多媒体概念 文字.图片.音频.视频 计算机图片大小的计算 图片大小 = 图片的总像素 * 每个像素占用的大小 单色图:每个像素占用1/8个字节 16色图:每个像素占用1/2个字节 256色图:每个像素 ...
- iOS开发之三:常用控件--UILabel的使用
UILabel 一般用来显示文本内容. 常用的属性如下: @property(nonatomic,copy) NSString *text; // 文本的内容,默认为 nil @property(no ...
- 用SpriteBuilder简化"耕牛遍地走"的动画效果(一)
这又是一个使用SpriteBuilder带来便捷的例子 原文地址在: http://www.raywenderlich.com/32045/how-to-use-animations-and-spri ...
- MySQL语句高效写法整理
优先使用INNER JOIN 多表关联查询,扫描的行尽量少 关联的时候下条件减少扫描的行数 SELECT ... FROM ad_ad_summary_for_pos_ ...
- TCP的ACK确认系列 — 快速确认
主要内容:TCP的快速确认.TCP_QUICKACK选项的实现. 内核版本:3.15.2 我的博客:http://blog.csdn.net/zhangskd 快速确认模式 (1) 进入快速确认模式 ...
- noSQL数据库相关软件介绍(大数据存储时候,必须使用)
目前图数据库软件七种较为流行:Neo4J, Infinite Graph, DEX,InfoGrid, HyperGraphDB, Trinity, AllegroGraph(http://tech. ...
- 使用CocoaPods创建Pod
本来想给App评分,好的开源组件没有Swift版,如是自己写了个简易的.想着既然写了,就写完善点,提供给需要的人使用.这样SwiftyiRate诞生了. 下面主要说下创建pod的步骤: 一.创建git ...
- 浅谈OC内存管理
一.基本原理 (一)为什么要进行内存管理. 由于移动设备的内存极其有限,所以每个APP所占的内存也是有限制的,当app所占用的内存较多时,系统就会发出内存警告,这时需要回收一些不需要再继续使用的内存空 ...
- Miner.java 爬虫启动类
Miner.java 爬虫启动类 package com.iteye.injavawetrust.miner; import java.util.concurrent.ThreadPoolExecut ...
- Zookeeper介绍 Zookeeper搭建 Zookeeper集群搭建
关键字:分布式 背景 随着互联网技术的高速发展,企业对计算机系统的技术.存储能力要求越来越高,最简单的证明就是出现了一些诸如:高并发.海量存储这样的词汇.在这样的背景 下,单纯依靠少量 ...