一、实验目的
- 1、掌握相关软件的安装及配置。
- 2、掌握常用IDE的启动、配置与管理。
- 3、掌握基本程序的编写。
二、实验准备
- 1、PyCharm
- 2、Anaconda3
- 3、Chrome
- 4、MySQL8.0 Navicat
- 5、Redis
- 6、第三方包
三、实验内容及要求
1、Anaconda3下载及其环境配置
(1)程序下载
https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
(2)安装并配置虚拟环境
conda create --name Crawler python=3.10
(3)Anaconda conda 切换为清华源
# 命令行中直接使用以下命令 conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
# 设置搜索时显示通道地址 conda config --set show_channel_urls yes
2、PyCharm下载及其配置
(1)程序下载
https://www.jetbrains.com/pycharm/download/
(2)创建项目
https://www.cnblogs.com/yuxuefeng/articles/9235431.html
(3)使用虚拟环境Crawler的编译器
https://www.cnblogs.com/mengxiaoleng/p/11745897.html
(4)测试
print(“hello world!”)
3、安装Google Chrome
略
4、编码规范
5、安装包
conda install requests conda install beautifulsoup4 lxml conda install PyMySQL conda install DBUtils conda install redis
6、网页基本结构(熟悉常用的标签)
https://www.runoob.com/html/html-tutorial.html
7、mysql安装及连接测试
import pymysql # 打开数据库连接 IP USER PASSWORD DBNAME #db = pymysql.connect("localhost", "root", "123456", "test") db = pymysql.connect(host="localhost", user="root", password="123456", database="test") # 使用 cursor() 方法创建一个游标对象 cursor cursor = db.cursor() # 使用 execute() 方法执行 SQL 查询 cursor.execute("SELECT VERSION()") # 使用 fetchone() 方法获取单条数据. data = cursor.fetchone() print("Database version : %s " % data) cursor.close() # 关闭数据库连接 db.close()
8、mysql创建表并新增数据
8.1创建数据库表
import pymysql # 打开数据库连接 db = pymysql.connect("localhost", "root", "123456", "test") # 使用 cursor() 方法创建一个游标对象 cursor cursor = db.cursor() # 使用 execute() 方法执行 SQL,如果表存在则删除 cursor.execute("DROP TABLE IF EXISTS EMPLOYEE") # 使用预处理语句创建表 sql = """CREATE TABLE EMPLOYEE ( FIRST_NAME CHAR(20) NOT NULL, LAST_NAME CHAR(20), AGE INT, SEX CHAR(1), INCOME FLOAT )""" cursor.execute(sql) cursor.close() # 关闭数据库连接 db.close()
8.2 新增数据
import pymysql # 打开数据库连接 db = pymysql.connect("localhost", "root", "123456", "test") # 使用cursor()方法获取操作游标 cursor = db.cursor() # SQL 插入语句 sql = """INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME) VALUES ('Mac', 'Mohan', 20, 'M', 2000)""" try: # 执行sql语句 cursor.execute(sql) # 提交到数据库执行 db.commit() except: # 如果发生错误则回滚 db.rollback() # 关闭数据库连接 db.close()
9、安装redis并使用
redis的安装(msi),不用设置密码
https://blog.csdn.net/weixin_44893902/article/details/123087435
https://github.com/tporadowski/redis/releases/download/v5.0.14.1/Redis-x64-5.0.14.1.msi
import redis # 导入redis 模块 pool = redis.ConnectionPool(host='localhost', port=6379, decode_responses=True) r = redis.StrictRedis(connection_pool=pool) r.sadd('urls_page_new', 'url1')#待爬取页 r.sadd('urls_page_new', 'url2') r.sadd('urls_page_new', 'url3') r.sadd('urls_page_new', 'url4') res = r.smembers('urls_page_new') print(res) # 元素个数 print(r.scard('urls_page_new')) # 随机删除:spop key #print(r.spop('urls_page_new')) # 打印删除的值 s = r.spop('urls_page_new') res = r.smembers('urls_page_new') print(res) r.sadd('urls_page_old', s)#已经爬取页 res = r.smembers('urls_page_old') print(res) #查找某个元素在不在 print(r.sismember('urls_page_new','url1')) # 查看所有的key:keys * print(r.keys()) r.delete('urls_page_new') r.delete('urls_page_old')