第一章 爬虫
这是一个数据爆炸的时代,没有了获取数据信息的壁垒,只要你肯,只要你想,那么就有机会利用数据让梦想走进现实。但是面对互联网这样一个由数据构建而成的海洋,如何有效获取数据,如何获取有效数据都是极其劳神费力、浪费成本、制约效率的事情。
酒店提前几天订最便宜?机票什么时候订最实惠?你知道酒店的价格一周都怎样变化吗?刷了那么久的票,你总结出了什么规律吗?那如果有人告诉你,他每15min就可以监控这个城市所有酒店的价格,你相信吗?你会疑惑吧,谁会有闲心每15min把某个城市所有酒店所有房间的价格全部看一遍呢?就算有这个闲心,可有这个速度吗?然而现在,终于有了扭转之机,那就是驾驭爬虫,监控酒店的房价变化只是基本技能。
- 爬虫可用来收集网站数据、调查分析商品销售情况、刷数据和秒杀
- 获取网页内容 requests 爬虫框架Scrapy
- 解析网页内容 正则表达式、XPath、BeautifulSoup
- 反爬虫措施频率检查、验证码、登陆验证、行为检测
- 其他 中间人攻击技术与爬虫、Android自动化测试与爬虫
第二章 python基础
- 整数、浮点数 变量
- 字符串、列表、元组
- 列表list_1= [1,2,3,4,5]可以添加删除改变
- 元组tuple_1=(1,2,3,4,5)值不能改变
- 操作相同(读取与C语言数组类似、-1表示倒数第一、切片x:y、每两个子读取、倒序输出)
指定下标 变量名[下标] - 切片 变量名[开始位置下标:结束位置下标:步长]
拼接与修改 +
变量名[下标] = 新的值
列表末尾添加元素 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
- 函数与类
- def 定义
- 默认参数
- 类与面向对象编程
读懂一个类
这个类有哪些属性(看外貌)
这个类有哪些方法(能做什么)
这些方法在哪里被调用(做了什么)
这些方法的实现细节(怎么做的)
阶段案例:猜数游戏
使用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)()