天天看點

Python爬蟲(8)selenium爬蟲後資料,存入sqlit3實作增删改查導入預設包和環境元素定位建立一個sqlit3表将爬蟲到的資訊插入表中在if name == “main”:中調用def的名稱即可如删除表中資訊修改表中資訊查詢表中資訊

Python爬蟲(8)selenium爬蟲後資料,存入sqlit3實作增删改查導入預設包和環境元素定位建立一個sqlit3表将爬蟲到的資訊插入表中在if name == “main”:中調用def的名稱即可如删除表中資訊修改表中資訊查詢表中資訊

之前的文章有關于更多操作方式詳細解答,本篇基于前面的知識點進行操作,如果不了解可以先看之前的文章

Python爬蟲(8)selenium爬蟲後資料,存入sqlit3實作增删改查

  • 導入預設包和環境
  • 元素定位
  • 建立一個sqlit3表
  • 将爬蟲到的資訊插入表中
  • 在if __name__ == "__main__":中調用def的名稱即可如
  • 删除表中資訊
    • 如果我們需要删除指定表中資料可以這樣做
  • 修改表中資訊
  • 查詢表中資訊

本篇主要是以房地産的資料為主,主要就是要用爬蟲爬取一個标題和房型、面積、具體位址、小區名這幾個标簽為主,然後将這些資料存入sqlit3資料庫中

Python爬蟲(8)selenium爬蟲後資料,存入sqlit3實作增删改查導入預設包和環境元素定位建立一個sqlit3表将爬蟲到的資訊插入表中在if name == “main”:中調用def的名稱即可如删除表中資訊修改表中資訊查詢表中資訊

導入預設包和環境

from selenium.webdriver import Chrome, ChromeOptions
from selenium.webdriver.common.by import By
import sqlite3
opt = ChromeOptions()            # 建立Chrome參數對象
opt.headless = True              # 把Chrome設定成可視化無界面模式,windows/Linux 皆可
driver = Chrome(options=opt)     # 建立Chrome無界面對象
driver.get("房地産網站")
           

元素定位

由于隻是進行單一的元素存儲是以這裡就直接用固定的xpath的定位

def sc():
    housename = driver.find_element(By.XPATH, '//*[@id="container"]/div[2]/div[1]/div[3]/div[1]/div/a[1]/span').text
    houseaddress = driver.find_element(By.XPATH,'//*[@id="container"]/div[2]/div[1]/div[3]/div[1]/div/a[2]/span').text
    housearea = driver.find_element(By.XPATH, '//*[@id="container"]/div[2]/div[1]/div[3]/div[1]/div/a[3]').text
    print(housename,houseaddress,housearea)
           
Python爬蟲(8)selenium爬蟲後資料,存入sqlit3實作增删改查導入預設包和環境元素定位建立一個sqlit3表将爬蟲到的資訊插入表中在if name == “main”:中調用def的名稱即可如删除表中資訊修改表中資訊查詢表中資訊

建立一個sqlit3表

sql = 'create table house(housename_s varchar(100),' \
          'houseaddress_s varchar(100),housearea_s varchar(100))'

    try:
        cur.execute(sql)#将資料插入資料庫
        con.commit() #送出事物
        print('插入成功')
    except Exception as e:
        print(e)
        print('插入失敗')
        con.rollback() #復原事物
    finally:
        #關閉遊标
        cur.close()
        #關閉連接配接
        con.close()
           
Python爬蟲(8)selenium爬蟲後資料,存入sqlit3實作增删改查導入預設包和環境元素定位建立一個sqlit3表将爬蟲到的資訊插入表中在if name == “main”:中調用def的名稱即可如删除表中資訊修改表中資訊查詢表中資訊

将爬蟲到的資訊插入表中

#插入表
def into(ent):
    #連接配接sqlit3表
    con = sqlite3.connect('house.db')
    # 擷取cursor對象
    cur = con.cursor()
    #将爬蟲到的資料插入表
    sql = 'insert into house(housename_s,houseaddress_s,housearea_s) values(?,?,?)'
    try:
        cur.execute(sql,ent)#将資料插入資料庫
        con.commit() #送出事物
        print('插入成功')
    except Exception as e:
        print(e)
        print('插入失敗')
        con.rollback() #復原事物
    finally:
        #關閉遊标
        cur.close()
        #關閉連接配接
        con.close()
           

在if name == “main”:中調用def的名稱即可如

sc()

Python爬蟲(8)selenium爬蟲後資料,存入sqlit3實作增删改查導入預設包和環境元素定位建立一個sqlit3表将爬蟲到的資訊插入表中在if name == “main”:中調用def的名稱即可如删除表中資訊修改表中資訊查詢表中資訊

删除表中資訊

删除表

drop table table_name

判斷表中是否存在資訊

drop table if exists table_name

删除表内所有資料

DELETE FROM house;

#删除表中資料
def delete():
    #連接配接sqlit3表
    con = sqlite3.connect('house.db')
    delcon = con.cursor()
    try:
        delcon.execute('DROP table if exists house')
        con.commit()
        print('表删除成功')
    except Exception as e:
        print('表删除失敗')
           
Python爬蟲(8)selenium爬蟲後資料,存入sqlit3實作增删改查導入預設包和環境元素定位建立一個sqlit3表将爬蟲到的資訊插入表中在if name == “main”:中調用def的名稱即可如删除表中資訊修改表中資訊查詢表中資訊

如果我們需要删除指定表中資料可以這樣做

def delete():
    #連接配接sqlit3表
    con = sqlite3.connect('house1.db')
    delcon = con.cursor()
    try:
        delcon.execute('DELETE FROM house WHERE houseaddress_s = 1;')
        con.commit()
        print('表内資料删除成功')
    except Exception as e:
        print('表内資料删除失敗')
           

修改表中資訊

def update():
    #連接配接sqlit3表
    con = sqlite3.connect('house1.db')
    delcon = con.cursor()
    try:
        delcon.execute('UPDATE house SET housename_s = "萬科" where housename_s = 1;')
        con.commit()
        print('表内資料更新成功')
    except Exception as e:
        print('表内資料更新失敗')
           

查詢表中資訊

def update():
    #連接配接sqlit3表
    con = sqlite3.connect('house1.db')
    delcon = con.cursor()
    delcon.execute('select * from house ;')
    print(delcon.fetchone())#捕獲查詢
           
Python爬蟲(8)selenium爬蟲後資料,存入sqlit3實作增删改查導入預設包和環境元素定位建立一個sqlit3表将爬蟲到的資訊插入表中在if name == “main”:中調用def的名稱即可如删除表中資訊修改表中資訊查詢表中資訊