用html和mysqsl爬虫把搜索到的数据储存到本地数据库并给出详细的步骤和代码
时间: 2024-03-31 07:35:59 浏览: 53
爬取数据并存储到mysql
对于这个问题,需要注意的是:爬取网站的数据需要遵守相关法律法规,不得侵犯他人权益,也要遵守网站的爬取规则。以下是爬取数据并储存到本地数据库的基本步骤:
1. 安装必要的Python库
Python库有很多,我们需要的主要有requests、BeautifulSoup、pymysql。使用pip命令安装这些库。
```
pip install requests
pip install bs4
pip install pymysql
```
2. 创建数据库和数据表
在MySQL中创建一个名为`spider`的数据库,以及一个名为`data`的数据表。数据表的结构如下:
```sql
CREATE TABLE `data` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(255) NOT NULL,
`url` varchar(255) NOT NULL,
`content` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
```
3. 编写爬虫代码
以下是一个简单的爬虫代码,爬取CSDN博客的数据,并将数据存入MySQL数据库中。请注意,这个代码仅作为示例,具体情况需要根据实际情况进行修改。
```python
import requests
from bs4 import BeautifulSoup
import pymysql
#数据库连接参数
host = 'localhost'
user = 'root'
password = '123456'
database = 'spider'
#连接数据库
db = pymysql.connect(host=host,user=user,password=password,database=database)
cursor = db.cursor()
#爬取数据并存入数据库
for i in range(1, 11): # 爬取前10页的数据
url = 'https://so.csdn.net/so/search/s.do?p=' + str(i) + '&q=python&t=&domain=&o=&s=&u=&l=&f='
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
results = soup.find_all('dl', class_='search-list J_search')
for result in results:
title = result.dt.a.text
url = result.dt.a['href']
content = result.dd.text.strip()
sql = "INSERT INTO data (title, url, content) VALUES ('%s', '%s', '%s')" % (title, url, content)
try:
cursor.execute(sql)
db.commit()
except:
db.rollback()
#关闭数据库连接
db.close()
```
4. 运行代码
运行上面的代码,即可开始爬取数据并存储到本地MySQL数据库中。
以上是爬取数据并存储到本地数据库的基本步骤和代码。需要注意的是,爬虫行为需要遵守相关法律法规和网站规定,否则可能会面临法律风险。
阅读全文