Python之sqlite3数据库

Python之sqlite3数据库

一.splite3的构建

关于splite3的知识,可以参考:链接

import sqlite3
import os
path=os.getcwd()

conn=sqlite3.connect(path+'\\db.db')
cur=conn.cursor()

二.存储数据的爬取

我们以快代理的ip地址作为存储对象

import pandas as pd

url="https://www.kuaidaili.com/free/inha/1/"

df=pd.read_html(url,encoding="utf-8")[0] # [0]:表示第一个table,多个table需要指定,如果不指定默认第一个
df
IP PORT 匿名度 类型 位置 响应速度 最后验证时间
0 122.4.40.6 9999 高匿名 HTTP 山东省济南市 电信 1秒 2020-04-29 19:31:01
1 118.212.107.180 9999 高匿名 HTTP 江西省新余市 联通 0.9秒 2020-04-29 18:31:01
2 125.108.84.240 9000 高匿名 HTTP 浙江省温州市 电信 2秒 2020-04-29 17:31:01
3 220.191.43.95 9000 高匿名 HTTP 浙江省杭州市 电信 2秒 2020-04-29 16:31:01
4 171.35.223.24 9999 高匿名 HTTP 江西省新余市 联通 1秒 2020-04-29 15:31:01
5 1.199.31.211 9999 高匿名 HTTP 河南省济源市 电信 2秒 2020-04-29 14:31:01
6 180.118.128.246 9000 高匿名 HTTP 中国 江苏省 镇江市 电信 1秒 2020-04-29 13:31:02
7 123.101.214.244 9999 高匿名 HTTP 河南省鹤壁市 电信 3秒 2020-04-29 12:31:01
8 218.14.108.53 8060 高匿名 HTTP 广东省惠州市 电信 3秒 2020-04-29 11:31:01
9 36.249.49.38 9999 高匿名 HTTP 福建省泉州市 联通 0.3秒 2020-04-29 10:31:01
10 101.132.123.99 8080 高匿名 HTTP 上海市上海市 阿里云 2秒 2020-04-29 09:31:01
11 171.11.179.115 9999 高匿名 HTTP 河南省济源市 电信 1秒 2020-04-29 08:31:01
12 112.111.77.202 9999 高匿名 HTTP 福建省南平市 联通 1秒 2020-04-29 07:31:01
13 1.198.73.117 9999 高匿名 HTTP 河南省济源市 电信 0.7秒 2020-04-29 06:31:01
14 175.42.68.157 9999 高匿名 HTTP 福建省宁德市 联通 3秒 2020-04-29 05:31:01

三.数据表的创建

cur.execute('create table if not exists ip_proxy(id INTEGER primary key,ip TEXT,port INTEGER,anonymity TEXT,types TEXT,locations TEXT,respondingspeed TEXT,time TEXT)')
<sqlite3.Cursor at 0x23b8b513e30>
conn.commit()

存储数据

for i in list(df.index):
    
    tmp=df.iloc[i].to_list()
    tmp[1]=int(tmp[1])
    
    data=[i+1]+tmp
    
    cur.execute('insert into ip_proxy values (?,?,?,?,?,?,?,?)',tuple(data))
    
    conn.commit()

在这里插入图片描述

四.数据展示

for row in cur.execute('select * from ip_proxy'):
    print(row)
(1, '122.4.40.6', 9999, '高匿名', 'HTTP', '山东省济南市 电信', '1秒', '2020-04-29 19:31:01')
(2, '118.212.107.180', 9999, '高匿名', 'HTTP', '江西省新余市 联通', '0.9秒', '2020-04-29 18:31:01')
(3, '125.108.84.240', 9000, '高匿名', 'HTTP', '浙江省温州市 电信', '2秒', '2020-04-29 17:31:01')
(4, '220.191.43.95', 9000, '高匿名', 'HTTP', '浙江省杭州市 电信', '2秒', '2020-04-29 16:31:01')
(5, '171.35.223.24', 9999, '高匿名', 'HTTP', '江西省新余市 联通', '1秒', '2020-04-29 15:31:01')
(6, '1.199.31.211', 9999, '高匿名', 'HTTP', '河南省济源市 电信', '2秒', '2020-04-29 14:31:01')
(7, '180.118.128.246', 9000, '高匿名', 'HTTP', '中国 江苏省 镇江市 电信', '1秒', '2020-04-29 13:31:02')
(8, '123.101.214.244', 9999, '高匿名', 'HTTP', '河南省鹤壁市 电信', '3秒', '2020-04-29 12:31:01')
(9, '218.14.108.53', 8060, '高匿名', 'HTTP', '广东省惠州市 电信', '3秒', '2020-04-29 11:31:01')
(10, '36.249.49.38', 9999, '高匿名', 'HTTP', '福建省泉州市 联通', '0.3秒', '2020-04-29 10:31:01')
(11, '101.132.123.99', 8080, '高匿名', 'HTTP', '上海市上海市 阿里云', '2秒', '2020-04-29 09:31:01')
(12, '171.11.179.115', 9999, '高匿名', 'HTTP', '河南省济源市 电信', '1秒', '2020-04-29 08:31:01')
(13, '112.111.77.202', 9999, '高匿名', 'HTTP', '福建省南平市 联通', '1秒', '2020-04-29 07:31:01')
(14, '1.198.73.117', 9999, '高匿名', 'HTTP', '河南省济源市 电信', '0.7秒', '2020-04-29 06:31:01')
(15, '175.42.68.157', 9999, '高匿名', 'HTTP', '福建省宁德市 联通', '3秒', '2020-04-29 05:31:01')
posted @ 2020-04-29 19:57  LQ6H  阅读(201)  评论(0编辑  收藏  举报