采集网页数据保存到MYSQL数据库
一、直接采集一个本地网页文件
1.创建一个网页文件date413.html(注:文件的路径后面还会用到)
2.网页文件date413.html中的内容为:
<html>
<head>
<title>搜索指数</title>
</head>
<body>
<table>
<tr><td>排名</td><td>关键词</td><td>搜索指数</td></tr>
<tr><td>1</td><td>大数据</td><td>187767</td></tr>
<tr><td>2</td><td>云计算</td><td>178856</td></tr>
<tr><td>3</td><td>物联网</td><td>122376</td></tr>
</table>
</body>
</html>
二、 在Windows操作系统中启动MySQL服务进程,创建webdb数据库和search_index表
1.win+r打开小黑窗---->输入cmd
2.输入mysql -u root -p 密码是自己安装mysql时设置的
(注:显示图中的内容表示成功进入mysql命令行窗口)
3.创建webdb数据库和选择使用webdb数据库
create database webdb;
use webdb;
4.创建search_index表
create table search_index(id int,keyword char(20) , number int);
三、在PyCharm 中编写网络爬虫程序,读取网页内容进行解析,并把解析后的数据保存到mysql数据库中
(注:这里需要填你前面创建的网页文件的地址)
import requests
from bs4 import BeautifulSoup
# 读取本地HTML文档
def get_html():
path = 'D:/vue/vueproject/date413.html'
htmlfile = open(path,'r',encoding='utf-8')
html = htmlfile.read()
return html
# 解析HTML文档
def parse_html(html):
soup = BeautifulSoup(html,'html.parser')
all_tr = soup.find_all('tr')[1:]
all_tr_list = []
info_list = []
for i in range(len(all_tr)):
all_tr_list.append(all_tr[i])
for element in all_tr_list:
all_td = element.find_all('td')
all_td_list = []
for j in range(len(all_td)):
all_td_list.append(all_td[j].string)
info_list.append(all_td_list)
return info_list
# 保存数据
def save_mysql(info_list):
import pymysql.cursors
for item in info_list:
# 连接数据库
connect = pymysql.Connect(
host='localhost',
port=3306,
user='root',
passwd='123456',
db='webdb',
charset='utf8'
)
# 获取游标
cursor = connect.cursor()
# 插入数据
id = int(item[0])
keyword = item[1]
number = int(item[2])
sql = "insert into search_index(id,keyword,number) values ('%d', '%s','%d')"
data = (id,keyword,number)
cursor.execute(sql % data)
connect.commit()
print('成功插入数据')
# 关闭数据库连接
connect.close()
if __name__ == '__main__':
html = get_html()
info_list = parse_html(html)
save_mysql(info_list)
四、运行
1.在PyCharm 中单机右键Run(运行)
控制台出现3次成功插入数据
2.在mysql命令行窗口中查看数据
select * from search_index;
(看到有三条数据被成功插入了数据库,那么恭喜你,表示我们成功了!)
CSDN-Ada助手: Java 技能树或许可以帮到你:https://edu.csdn.net/skill/java?utm_source=AI_act_java
不当呆瓜: 生产者连不上是怎么回事
big不灵.: 我复制粘贴hadoop02和hadoop03会话的,然后在scp /etc/profile hadoop02:/etc/profile 这一步出现 ssh:could not resolve hostname 是什么情况
限量版皮憨憨: 解决了嘛,老哥
瑾寰: 源代码是有偿的,白嫖不了的哦,因为是我一个一个敲上去的