python抓取网页数据,并存储到sqlite中

注:代码来源于鸿蒙开发视频,经测试无误

一、安装python3.13,过

二、安装python对应的库

如requests、bs4、lxml

三、步骤解析

1、网页分析

2、获取网页文字

3、创建本地空数据库文件

4、将抓取的网页文字写入数据库

四、代码汇总

import requests
import re

words={}
def add_word(word_line):
global words

用词性作为分隔符分隔字符串

result1=re.split(‘[a-z]+.’,word_line)
pattern=re.compile(‘[a-z]+.’)

搜索所有词性

result2=pattern.findall(word_line)

得到单词

word=result1[0].strip()

保存单词的解释,以词性作为key,解释作为Value

meanings={}
for i in range(0,len(result2)):
key=result2[i].strip()
value=result1[i+1].strip()
meanings[key]=value
words[word]=meanings

r=requests.get(‘https://www.eol.cn/html/en/cetwords/cet4.shtml’)
html=r.content
html_doc=str(html,’utf-8′)
from bs4 import BeautifulSoup
soup=BeautifulSoup(html_doc,’lxml’)
tags=soup.find_all(attrs={‘class’:’wordL fl’})
for tag in tags:
p_list=tag.select(‘p’)
for p in p_list:
add_word(p.text)

print(words)#得到一长串数据,暂不解析
print(‘单词抓取完毕’)

生成本地词库

import sqlite3
import os

db_path=’d://dict.sqlite’#设置数据库路径
if os.path.exists(db_path):#如果数据库存在
os.remove(db_path)#删除存在的数据库

conn=sqlite3.connect(db_path)
c=conn.cursor()
c.execute(”’create table words
(id int primary key not null,
word varchar(30) not null,
type varchar(10) not null,
meanings text not null);”’)
c.execute(‘create index word_index on words(word)’)
conn.commit()
conn.close()
print(‘创建数据库成功’)#创建完成一个空数据库名dict,表words

将抓取到的数据转存到dict中

conn=sqlite3.connect(db_path)
c=conn.cursor()
i=1
for word in words:#拆分从网页抓取到的数据
value=words[word]
for type in value:
meanings=value[type]
sql =f’insert into words(id,word,type,meanings)\
values({i},”{word}”,”{type}”,”{meanings}”)’;
c.execute(sql)
i+=1
conn.commit()

conn.close()
print(‘电子词典数据库生成完毕’)

Original: https://blog.csdn.net/TJDXWZ/article/details/124929981
Author: 田无水
Title: python抓取网页数据,并存储到sqlite中

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/816532/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球