![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnL5MTZlRWY2MzY3czNhNWMidDO4QDOmhzN4QDOlN2MxYzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
之前的文章有關于更多操作方式詳細解答,本篇基于前面的知識點進行操作,如果不了解可以先看之前的文章
Python爬蟲(8)selenium爬蟲後資料,存入sqlit3實作增删改查
- 導入預設包和環境
- 元素定位
- 建立一個sqlit3表
- 将爬蟲到的資訊插入表中
- 在if __name__ == "__main__":中調用def的名稱即可如
- 删除表中資訊
-
- 如果我們需要删除指定表中資料可以這樣做
- 修改表中資訊
- 查詢表中資訊
本篇主要是以房地産的資料為主,主要就是要用爬蟲爬取一個标題和房型、面積、具體位址、小區名這幾個标簽為主,然後将這些資料存入sqlit3資料庫中
導入預設包和環境
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)
建立一個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()
将爬蟲到的資訊插入表中
#插入表
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()
删除表中資訊
删除表
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('表删除失敗')
如果我們需要删除指定表中資料可以這樣做
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())#捕獲查詢
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnL5MTZlRWY2MzY3czNhNWMidDO4QDOmhzN4QDOlN2MxYzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)