sql注册登录与爬虫相关知识

pymysql注册登录

# 基于pymysql模块操作MySQL实现用户注册登录
'''简易版本(必会)'''
import pymysql

conn = pymysql.connect(
    host='127.0.0.1',
    port=3306,
    user='root',
    passwd='123',
    db='db8',
    charset='utf8',
    autocommit=True
)
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)


def register():
    # 1.获取用户数据
    username = input('username>>>:').strip()
    password = input('password>>>:').strip()
    # 2.校验用户名是否已存在
    sql = 'select * from userinfo where name=%s'
    cursor.execute(sql, username)
    res = cursor.fetchall()
    if res:
        print('用户名已存在')
    else:
        sql = 'insert into userinfo(name,password) values(%s,%s)'
        cursor.execute(sql, (username, password))
        print('%s注册成功' % username)


def login():
    # 1.获取用户名和密码
    username = input('username>>>:').strip()
    password = input('password>>>:').strip()
    # 2.检验是否存在当前用户
    sql = 'select * from userinfo where name=%s'
    cursor.execute(sql, username)
    res = cursor.fetchall()  # [{}]
    if res:  # 用户名存在
        # 校验密码是否正确
        user_dict = res[0]
        if str(user_dict.get('password')) == password:
            print('登录成功')
        else:
            print("密码错误")
    else:
        print('用户名不存在')


func_dict = {'1': register, '2': login}
while True:
    print("""
    1.注册
    2.登录
    """)
    choice = input('choice>>>:').strip()
    if choice in func_dict:
        func_name = func_dict.get(choice)
        func_name()
    else:
        print('命令不存在')
View Code

封装版

'''封装版本'''
import pymysql


def get_link():
    conn = pymysql.connect(
        host='127.0.0.1',
        port=3306,
        user='root',
        passwd='123',
        db='db8',
        charset='utf8',
        autocommit=True
    )
    cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
    return cursor


def auth_user(cursor):
    # 1.获取用户数据
    username = input('username>>>:').strip()
    password = input('password>>>:').strip()
    # 2.校验用户名是否已存在
    sql = 'select * from userinfo where name=%s'
    cursor.execute(sql, username)
    res = cursor.fetchall()
    return username, password, res


def register(cursor):
    username, password, res = auth_user(cursor)
    if res:
        print('用户名已存在')
    else:
        sql = 'insert into userinfo(name,password) values(%s,%s)'
        cursor.execute(sql, (username, password))
        print('%s注册成功' % username)


def login(cursor):
    username, password, res = auth_user(cursor)
    if res:  # 用户名存在
        # 校验密码是否正确
        user_dict = res[0]
        if str(user_dict.get('password')) == password:
            print('登录成功')
        else:
            print("密码错误")
    else:
        print('用户名不存在')


func_dict = {'1': register, '2': login}
cursor = get_link()
while True:
    print("""
    1.注册
    2.登录
    """)
    choice = input('choice>>>:').strip()
    if choice in func_dict:
        func_name = func_dict.get(choice)
        func_name(cursor)
    else:
        print('命令不存在')
View Code

常见收集数据网站

白嫖类

百度指数:https://index.baidu.com/v2/index.html#/  百度热搜
新浪指数:https://data.weibo.com/index  微博热搜
国家数据:http://www.gov.cn/shuju/index.htm  国家的数据
世界银行:https://data.worldbank.org.cn/   中国和外国银行综合的数据
纳斯达克:https://www.nasdaq.com/zh/market-activity   股票信息
联合国:http://data.un.org/   

 

 

 

 

 

 

付费类

国内
   艾瑞咨询: https://www.iresearch.com.cn/
国际
    埃森哲:https://www.accenture.com/cn-zh
     麦肯锡:https://www.mckinsey.com.cn/
第三方平台
    数据堂:https://www.datatang.com/
    贵阳大数据:http://gbdex.bdgstore.cn/

 

 

网络爬虫理论

1.什么是互联网?

互联网是由网络设备(网线,路由器,交换机,防火墙等等)和一台台计算机连接而成,像一张网一样

2.互联网建立的核心目的?

互联网的核心价值在于数据的共享/传递:数据是存放于一台台计算机上的,而将计算机互联到一起的目的就是为了能够方便彼此之间的数据共享/传递,否则你只能拿U盘去别人的计算机上拷贝数据了

3.什么是上网?

我们所谓的上网便是由用户端计算机发送请求给目标计算机,将目标计算机的数据下载到本地的过程

4.爬虫要做的是什么?

跳过代码模拟网络请求获取数据并解析数据最后保存

5.爬虫的价值

如果我们把互联网比作一张大的蜘蛛网,那一台计算机上的数据便是蜘蛛网上的一个猎物,而爬虫程序就是一只小蜘蛛,沿着蜘蛛网抓取自己想要的猎物/数据
    互联网中最有价值的便是数据,比如天猫商城的商品信息,链家网的租房信息,雪球网的证券投资信息等等,这些数据都代表了各个行业的真金白银,可以说,谁掌握了行业内的第一手数据,谁就成了整个行业的主宰,如果把整个互联网的数据比喻为一座宝藏,那我们的爬虫课程就是来教大家如何来高效地挖掘这些宝藏,掌握了爬虫技能,你就成了所有互联网信息公司幕后的老板,换言之,它们都在免费为你提供有价值的数据。

'''爬虫学的好 牢饭吃到饱'''

爬虫的分类

1.通用爬虫

搜索引擎用的爬虫系统
  尽可能把互联网所有的网页下载放到本地服务器形成备份,再对这些网页做相关处理(提取关键字、去掉广告)最后给用户提供检索结果
   1.搜索引擎如何获取一个网站URL
        1.主动向搜索引擎提交网址
            网址收录:https://ziyuan.baidu.com/site/index
        2.在其他网址设置网站外链
        3.与DNS服务商合作(DNS即域名解析技术)  
            简便获取ip地址:ping URL -t
   2.通用爬虫并不是万物皆可爬需要遵循robots协议
          协议内会指明可以爬取网页的那些部分(...百度快照...)
        '''该协议一般只有大型搜索引擎会遵循'''
   3.通用爬虫工作流程
          爬取网页    存储数据    内容处理    提供检索及排名服务
        排名:
          1.PageRank值
            根据网站的流量(点击、浏览、人气)统计
          2.竞价排名
            没有money解决不了的事情

2.聚焦爬虫

爬虫程序员写的针对指定内容的爬虫(重点学习)

网页组成

浏览器请求数据展示的界面其实内部对应就是一堆HTML代码
爬虫程序说白了就是对这一对HTML代码做数据筛选
所以写好爬虫程序的第一步就是熟悉HTML代码基本组成

HTML:超文本标记语言
    # 浏览器可以展示出来的界面都是由HTML构成的
        eg:淘宝 天猫 京东 链家

前端与后端

前段
    任何与用户打交道的操作界面都可以称之为"前端"
后端
    程序员编写的运行在程序内部不直接与用户打交道的程序代码
    一般都是指代程序员写的代码

前端三剑客

HTML  网页的骨架

CSS  网页的样式

JavaScript(js)  网页的动态效果

HTML基本组成

# 网页文件一般都是以.html结尾
# HTML语法结构
<html>
    <head>书写的一般都是给浏览器看的</head>
    <body>书写的就是浏览器要展示给用户看的</body>
</html>

head内常见标签(了解)

title    定义网页标题
style   内部直接书写css代码
link    引入外部css文件
script    内部可以直接书写js代码,也可以引入js文件
meta    定义网页源信息

meta中两个比较重要的参数

  name=description  对网页的介绍

  name=keywrods  网页关键字,用户搜哪些关键字可能会搜到

body内常见标签

# html标签分类
    双标签(有头有尾)
        <a></a>
    单标签(自闭和)
        <img/>
     
# 基本标签
    h1~h6  一级标题~六级标题
    u:下划线
   s:删除线
   i:斜体
   b:加粗 p:段落标签 hr:水平线
   br:换行

 

posted @ 2021-09-13 15:07  lovewx35  阅读(90)  评论(0)    收藏  举报