前回は、スクレイピングした情報をデータベースに格納することができました。
○【python】SQLite3でスクレイピングした記事をデータべースに保存する。
今回は、複数の記事をsqlite3を使用して、データベースに格納していと思います。
import sqlite3
conn = sqlite3.connect("任意の文字.db")
cur = conn.cursor()
import time
import requests
headers = {"User-Agent":"任意の文字"}
from bs4 import BeautifulSoup
url = ["https://lifeinfo-navi.com/p=custom","https://lifeinfo-navi.com/p=1987","https://lifeinfo-navi.com/p=2889"]
cur.execute('CREATE TABLE data(pre TEXT)')
conn.commit()
sql_pre = 'INSERT INTO data(pre) VALUES(?)'
for i in range(1,len(url)):
res = requests.get(url[i], headers=headers, timeout=3)
time.sleep(2)
soup = BeautifulSoup(res.content, "html.parser")
time.sleep(1)
soup_str = str(soup)
time.sleep(1)
cur.execute(sql_pre, (soup_str,))
conn.commit()
print(len(url))
print("終了")
db = cur.fetchall()
print(db)
実行したものの、自分の思った通りに実行しているのかわからない。まずはもう少し、簡単に作成して、試してみる。
import sqlite3
conn = sqlite3.connect("sqlite25.db")
cur = conn.cursor()
import time
import requests
headers = {""}
from bs4 import BeautifulSoup
url = ["123","234","345"]
cur.execute('CREATE TABLE data(pre TEXT)')
conn.commit()
sql_pre = 'INSERT INTO data(pre) VALUES(?)'
for i in range(0,len(url)):
cur.execute(sql_pre, (url[i],))
conn.commit()
print("終了")
db = cur.fetchall()
print(db)
現在、PyCharm(パイチャーム)を使用しています。ターミナルに「sqlite3 sqite25.db」と入力し、実行する。「.tables」と入力し、テーブルが作成されているか確認してみる。次に「SELECT * from data ;」と入力し、実行してみると思い通りの結果が出た。