【数据采集】实验01-工作环境配置与基础编程

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 Tair(兼容Redis),内存型 2GB
简介: 【数据采集】实验01-工作环境配置与基础编程

一、实验目的

  • 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')
相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
5月前
|
设计模式 安全 关系型数据库
PHP开发涉及一系列步骤和技术
【7月更文挑战第2天】PHP开发涉及一系列步骤和技术
140 57
|
4月前
|
运维 监控 大数据
深入探讨网络自动化的魅力所在,以及如何利用Python这一强大工具,实现网络设备的批量配置与监控
在信息洪流的浪潮中,网络自动化如同一盏明灯,引领着我们穿越复杂网络管理的迷雾。它不仅简化了网络运维人员的工作,更是在大数据、云计算等技术飞速发展的背景下,成为了构建高效、稳定网络环境的关键。本文将深入探讨网络自动化的魅力所在,以及如何利用Python这一强大工具,实现网络设备的批量配置与监控,以此展现网络自动化在简化复杂网络管理中的重要作用。
85 0
|
7月前
|
监控 Unix Shell
实验模拟搭建 elfk 日志分析系统
实验模拟搭建 elfk 日志分析系统
|
人工智能 运维 监控
在日常开发工作中,日志数据该如何利用?
在日常开发工作中,日志数据是一个宝贵的资源,它可以提供关于应用程序运行状态、错误报告、性能指标和用户行为等方面的重要信息。正确地利用和分析日志数据可以帮助开发人员更好地理解应用程序的运行情况,快速定位和解决问题,改进应用程序的性能,并为业务决策提供有力支持。尤其是在现代科技发展的背景下,日志数据作为一种重要的信息资源,对于运维工作具有极大的价值。然而,如何充分利用日志数据,并将其应用于运维和开发工作中,仍然是许多企业和运维和开发人员关注的问题。那么本文就来分享一下在日常开发中关于日志数据的利用方面的探讨。
316 1
在日常开发工作中,日志数据该如何利用?
|
Java
项目实战典型案例11——生产环境重大事故
项目实战典型案例11——生产环境重大事故
97 0
【项目实战典型案例】11.生产环境的重大事故
【项目实战典型案例】11.生产环境的重大事故
|
测试技术
【项目实战典型案例】10.对生产环境以及生产数据的敬畏
【项目实战典型案例】10.对生产环境以及生产数据的敬畏
|
算法 安全 测试技术
嵌入式软件测试笔记2 |TEmb方法概述
嵌入式软件测试笔记2 |TEmb方法概述
144 0
|
canal BI API
搭建项目环境(准备工作) | 学习笔记
快速学习搭建项目环境(准备工作)
搭建项目环境(准备工作) | 学习笔记
|
安全 测试技术 Linux
【实测】用土话让你明白如何做测试平台的持续部署和集成 - 1 【部署到服务器】
【实测】用土话让你明白如何做测试平台的持续部署和集成 - 1 【部署到服务器】
【实测】用土话让你明白如何做测试平台的持续部署和集成 - 1 【部署到服务器】
下一篇
DataWorks