发布于2023-05-20 16:03 阅读(990) 评论(0) 点赞(14) 收藏(2)
前言:要使用 Python 爬取网页数据并将数据导入 MySQL 数据库,您需要使用 Requests 库进行网页抓取,使用 BeautifulSoup 库对抓取到的 HTML 进行解析,并使用 PyMySQL 库与 MySQL 进行交互。
以下是一个简单的示例:
1. 安装所需库:
```
pip install requests beautifulsoup4 pymysql
```
2. 导入所需库:
```
- import requests
- from bs4 import BeautifulSoup
- import pymysql
```
3. 建立数据库连接:
```
- db = pymysql.connect(
- host='localhost',
- user='root',
- password='password',
- db='mydatabase'
- )
```
这里我们假设您已经在本地搭建了 MySQL 数据库,并创建了一个名为 `mydatabase` 的数据库。您需要根据实际情况修改主机、用户名、密码和数据库名。
4. 使用 Requests 库抓取网页:
```
- url = 'http://www.example.com'
- response = requests.get(url)
- html = response.text
```
5. 使用 BeautifulSoup 库解析 HTML:
```
- soup = BeautifulSoup(html, 'html.parser')
- data = soup.find_all('a')
```
6. 使用 PyMySQL 库将数据导入数据库:
```
- cursor = db.cursor()
- for item in data:
- title = item.string
- url = item.get('href')
- sql = f"INSERT INTO mytable (title, url) VALUES ('{title}', '{url}')"
- cursor.execute(sql)
- db.commit()
```
这里我们使用了 PyMySQL 库的 `cursor` 方法创建游标,然后遍历解析后的数据,并使用 SQL 语句将数据插入到数据库表中。
完整的示例代码如下:
```
- import requests
- from bs4 import BeautifulSoup
- import pymysql
-
- # 建立数据库连接
- db = pymysql.connect(
- host='localhost',
- user='root',
- password='password',
- db='mydatabase'
- )
-
- # 抓取网页
- url = 'http://www.example.com'
- response = requests.get(url)
- html = response.text
-
- # 解析 HTML
- soup = BeautifulSoup(html, 'html.parser')
- data = soup.find_all('a')
-
- # 将数据导入数据库
- cursor = db.cursor()
- for item in data:
- title = item.string
- url = item.get('href')
- sql = f"INSERT INTO mytable (title, url) VALUES ('{title}', '{url}')"
- cursor.execute(sql)
- db.commit()
-
- # 关闭数据库连接
- db.close()
```
注意,这里示例代码仅为演示使用,并未对 SQL 注入攻击进行防范,请勿直接在生产环境中使用。同时,您也需要根据实际情况修改表名、字段名和 SQL 语句等内容。
这只是单纯的思路,仅供参考。
作者:爱丽丝
链接:https://www.pythonheidong.com/blog/article/1979384/e0552f08c8390e94d6c2/
来源:python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!