此代碼可用于導(dǎo)入必備庫來刮取和解析 web 數(shù)據(jù),并將其導(dǎo)入數(shù)據(jù)庫:使用 python 請求庫獲取 web 頁面。使用 beautifulsoup 庫解析頁面并提取所需數(shù)據(jù)。使用 sqlite3 庫建立數(shù)據(jù)庫連接并創(chuàng)建表。將提取的數(shù)據(jù)寫入數(shù)據(jù)庫表中。提交更改并關(guān)閉數(shù)據(jù)庫連接。
使用 Python 和 SQL 刮取和解析 Web 數(shù)據(jù)
導(dǎo)入必備庫
import requests from bs4 import BeautifulSoup import sqlite3
登錄后復(fù)制
請求和解析 Web 頁面
url = 'https://example.com/page/' response = requests.get(url) soup = BeautifulSoup(response.text, 'html.parser')
登錄后復(fù)制
提取所需數(shù)據(jù)
使用 find_all()
和 get_text()
方法從頁面中提取所需數(shù)據(jù)。
titles = soup.find_all('h1') titles = [title.get_text() for title in titles]
登錄后復(fù)制
建立數(shù)據(jù)庫連接
conn = sqlite3.connect('database.db') c = conn.cursor()
登錄后復(fù)制
將數(shù)據(jù)寫入數(shù)據(jù)庫
for title in titles: c.execute('INSERT INTO titles (title) VALUES (?)', (title,))
登錄后復(fù)制
提交更改并關(guān)閉連接
conn.commit() conn.close()
登錄后復(fù)制
實戰(zhàn)案例
使用此代碼刮取了 Amazon 首頁的頂級產(chǎn)品標題數(shù)據(jù),并將其存儲在 SQLite 數(shù)據(jù)庫中。以下是演示代碼:
import requests from bs4 import BeautifulSoup import sqlite3 url = 'https://amazon.com' response = requests.get(url) soup = BeautifulSoup(response.text, 'html.parser') titles = soup.find_all('h2', {'class': 'a-size-medium s-inline s-access-title'}) titles = [title.get_text().strip() for title in titles] conn = sqlite3.connect('amazon_titles.db') c = conn.cursor() for title in titles: c.execute('INSERT INTO titles (title) VALUES (?)', (title,)) conn.commit() conn.close()
登錄后復(fù)制