• 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')
    
  • 相关阅读:
    Tencent 闲聊对话机器人接口调用,画像:设计员小白
    logging模块简介python
    jieba分词的几种形式
    h5py这个坑-PyCharm Process finished with exit code -1073741819 (0xC0000005)
    python之six模块的用法six.py2 six.py3
    Swoole从入门到入土(8)——协程初探
    Swoole从入门到入土(7)——TCP服务器[大杂烩]
    Swoole从入门到入土(6)——TCP服务器[粘包]
    Swoole从入门到入土(5)——TCP服务器[异步任务]
    Swoole从入门到入土(4)——TCP服务器[正确重启]
  • 原文地址:https://www.cnblogs.com/LQ6H/p/12940520.html
Copyright © 2020-2023  润新知