python爬虫开发:从入门到实战学习笔记(一)python基础

第一章 爬虫

这是一个数据爆炸的时代,没有了获取数据信息的壁垒,只要你肯,只要你想,那么就有机会利用数据让梦想走进现实。但是面对互联网这样一个由数据构建而成的海洋,如何有效获取数据,如何获取有效数据都是极其劳神费力、浪费成本、制约效率的事情。
酒店提前几天订最便宜?机票什么时候订最实惠?你知道酒店的价格一周都怎样变化吗?刷了那么久的票,你总结出了什么规律吗?那如果有人告诉你,他每15min就可以监控这个城市所有酒店的价格,你相信吗?你会疑惑吧,谁会有闲心每15min把某个城市所有酒店所有房间的价格全部看一遍呢?就算有这个闲心,可有这个速度吗?然而现在,终于有了扭转之机,那就是驾驭爬虫,监控酒店的房价变化只是基本技能。

  • 爬虫可用来收集网站数据、调查分析商品销售情况、刷数据和秒杀
  • 获取网页内容 requests 爬虫框架Scrapy
  • 解析网页内容 正则表达式、XPath、BeautifulSoup
  • 反爬虫措施频率检查、验证码、登陆验证、行为检测
  • 其他 中间人攻击技术与爬虫、Android自动化测试与爬虫

第二章 python基础

  • 整数、浮点数 变量
  • 字符串、列表、元组
    1. 列表list_1= [1,2,3,4,5]可以添加删除改变
    2. 元组tuple_1=(1,2,3,4,5)值不能改变
    3. 操作相同(读取与C语言数组类似、-1表示倒数第一、切片x:y、每两个子读取、倒序输出)
      指定下标 变量名[下标]
    4. 切片 变量名[开始位置下标:结束位置下标:步长]
      拼接与修改 +
      变量名[下标] = 新的值
      列表末尾添加元素 list.append(‘列表’)***
  • 字典与集合
    字典与STL的map类似
    集合 去重
  • 条件语句
    if 真:##and与or连接 具有短路效应
    执行
  • 多重条件判错
if 着:
elif 真:
else
  • for循环与while循环
for i in range(5):
    循环体

while循环永远运行
    import time
    while True:
        代码块
        time.sleep(1)##延迟一秒
    continue  break
  • 函数与类
    1. def 定义
    2. 默认参数
    3. 类与面向对象编程
      读懂一个类
      这个类有哪些属性(看外貌)
      这个类有哪些方法(能做什么)
      这些方法在哪里被调用(做了什么)
      这些方法的实现细节(怎么做的)

阶段案例:猜数游戏

使用Python开发一个猜数小游戏。在游戏中,程序每一轮会随机生成一个0~1024之间的数字,用户输入猜测的数字,程序告诉用户猜大了还是猜小了。在一定次数内猜对,则本轮用户获胜,否则本轮用户失败。每一轮开始时,程序会要求用户输入用户名。程序会一直运行,直到用户输入“3”,停止游戏。在每一轮游戏开始前,输入“1”可以查看用户的输入历史。
涉及知识点(1)随机生成数字,涉及Python的随机数模块。(2)用户输入数字,程序输出结果,涉及Python的输入及输出模块。(3)程序会自动开始下一轮,涉及Python的循环模块。(4)判断用户的输入,涉及Python的条件判断。(5)查询用户的输入历史,涉及Python的字典和列表。

import random
import math
history = {}
def try_to_guess(name, answer):
    try_num = 0
    max_try_num = math.log2(1024)
    while try_num < max_try_num:
        guess_answer = int(input('请输入一个数字:'))
        if guess_answer == answer:
            print('回答正确')
            history[name].append('成功')
            break
        elif guess_answer < answer:
            print('你输入的数比答案小')
        else:
            print('你输入的数比答案大')
        try_num += 1
    else:
        print('猜错次数太多')
        history[name].append('失败')


def show_history():
    name = input('输入要查询的玩家:')
    if history.get(name) is None:
        print('没有该玩家:')
    else:
        print(history[name])


def start():
    name = input('请输入你的名字:')
    if history.get(name) is None:
        history[name] = []
    try_to_guess(name, random.randint(0, 1024))  # 改变随机数范围


def default():
    pass


if __name__ == '__main__':
    select_dict = {'1': show_history, '2': start, '3': exit}
    while True:
        select = input('1.历史记录\n2.继续游戏\n3.退出游戏\n输入数字选择: ')
        select_dict.get(select, default)()
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木灬U6770

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值