day07整理(内置方法\循环判断)
一.上节课回顾
(一)if判断
1.单分支结构
if 条件:
代码块
2.双分支结构
if 条件:
代码块
else:
代码块
3.多分支结构
if 条件:
代码块
elif 条件:
代码块
else:
代码块
猜年龄游戏
(二)for循环
1.for + break
中断本层循环
2.for + continue
中断本次循环,不执行下面代码(一般放在最后一行)
3.for循环嵌套
(三)robust 健壮性/撸棒形
用异常处理提升代码的健壮性
二.异常处理
try:
print(1/0)
except ZeroDivisionError:
pass
#except Exception as e:(万能异常)
#预运行:类似把代码抽离到另外一个文件中运行,这样的运行对本文件不会造成任何影响,能不用,则不用
三.leetcode
四.字符串内置方法
(1) 索引取值
s = 'nick handsome'
print(s[0])
(2) 切片
print(s[0:4])
(3) 成员运算
print('nick' in s)
(4) for循环
for i in s:
print(i)
(5) len()
print(len(s))
只能字符串才能使用,列表不能使用
(6) strip()
默认去掉两端空格
print(s.strip())
print(s.strip('*'))#去掉*号
print(s.strip(' n*'))#去掉 *和n
(7) lstrip()/rstrip()
左端/右端
print(s.lstrip('*'))
(8) startswith()/endswith()
print(s.startswith('nick'))
(9) find()/index()
获取一个元素的索引位置
print(s.find('a'))# 找不到返回1
print(s.index('a'))# 找不到会报错
(10) join()
拼接列表里的元素
print('*'.join(['a','b','c'])
(11) split()
切割
s = 'a*b*c'
print(s.split('*'))
(12) center/ljust/rjust
打印更加美观
print(s.center(50.'-'))
(13) isdight()/isalpha
print(f.isdight())#判断是否为纯数字
(14) count()
计数
s = 'nick nick'
print(s.count('nick'))
五. selenium
1.什么是selenium?
是一个自动化测试工具。
2.为什么要使用selenium?
优点:通过它可以驱动浏览器,跳过登录滑动验证
缺点: 爬虫效率低
3.怎么使用selenium?
安装驱动
http://npm.taobao.org/mirrors/chromedriver/2.38/
安装selenium请求库
pip3 install selenium
html标签查找
通过属性查找
优先使用:
id: 值是唯一
class: 值可以有多个
name: 值的input里面拥有的唯一属性 -
element:查找第一个
elements:查找所有
css_selector属性选择器查找
from selenium import webdriver # 用来驱动浏览器
from selenium.webdriver import ActionChains # 破解滑动验证码的时候用的,可以拖动图片
from selenium.webdriver.common.by import By # 按照什么方式查找,By.ID,By.CSS_SELECTOR
from selenium.webdriver.common.keys import Keys # 键盘按键操作
from selenium.webdriver.support import expected_conditions as EC # 和下面WebDriverWait一起用的
from selenium.webdriver.support.wait import WebDriverWait # 等待页面加载某些元素
import time
# 通过selenium的webdriver加载驱动
driver = webdriver.Chrome(r'C:\Users\17816\Desktop\chromedriver.exe')
# 获取异常
try:
# 等待浏览器数据加载10秒
driver.implicitly_wait(10)
driver.get('https://www.baidu.com/')
#寻找输入框标签
input_tag = driver.find_element_by_id('kw')
#向输入框发送内容,(输入百度的内容)
input_tag.send_keys('小泽老师')
# 查找百度一下按钮标签
submit_tag = driver.find_element_by_id('su')
#点击一下百度一下按钮
submit_tag.click()
# 等待10秒
time.sleep(10)
finally:
driver.close()
六. selenium模拟百度登录
from selenium import webdriver
import time
driver = webdriver.Chrome(r'C:\Users\17816\Desktop\chromedriver.exe')
try:
driver.implicitly_wait(10)
driver.get('https://www.baidu.com/')
time.sleep(1)
login_button = driver.find_element_by_link_text('登录')
login_button.click()
user_login = driver.find_element_by_id('TANGRAM__PSP_10__footerULoginBtn')
user_login.click()
user_name = driver.find_element_by_id('TANGRAM__PSP_10__userName')
user_name.send_keys('1581150506')
password = driver.find_element_by_id('TANGRAM__PSP_10__password')
password.send_keys('wuyong1781603661')
login_button1 = driver.find_element_by_id('TANGRAM__PSP_10__submit')
login_button1.click()
finally:
driver.close()
七. selenium爬取京东商品
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
driver = webdriver.Chrome(r'C:\Users\17816\Desktop\chromedriver.exe')
try:
driver.implicitly_wait(10)
driver.get('https://www.jd.com/')
serch = driver.find_element_by_id('key')
serch.send_keys('108佛珠手链')
serch.send_keys(Keys.ENTER)
goods_div = driver.find_element_by_id('J_goodsList')
goods_li = goods_div.find_elements_by_class_name('gl-item')#列表
# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!elements加S
for i in goods_li:
goods_price = i.find_element_by_css_selector('.p-price').text
goods_name = i.find_element_by_css_selector('.p-name').text
goods_common = i.find_element_by_css_selector('.p-commit').text
goods_url = i.find_element_by_css_selector('.p-commit').get_attribute('href')
qw = f'''
商品名称: {goods_name}
详情链接: {goods_url}
商品价格: {goods_price}
评价人数: {goods_common}
'''
print(qw)
with open ('fozhu.txt','a',encoding = 'utf8') as g:
g.write(qw)
time.sleep(10)
finally:
driver.close()
day07整理(内置方法\循环判断)的更多相关文章
- 铁乐学python_day24_面向对象进阶1_内置方法
铁乐学python_day24_面向对象进阶1_内置方法 题外话1: 学习方法[wwwh] what where why how 是什么,用在哪里,为什么,怎么用 学习到一个新知识点的时候,多问问上面 ...
- 周总结 + for 循环 + 内置方法(day06整理)
目录 周总结 一 计算机基础之编程 (一) 什么是编程语言 (二) 什么是编程 (三) 为什么编程 二 计算机五大组成 (一) CPU (1) 运算器 (2) 控制器 (二) 存储器 (1) 主存 ( ...
- 元组/字典/集合内置方法+简单哈希表(day07整理)
目录 二十三.元组内置方法 二十四.字典数据类型 二十五 集合内置方法 二十五.数据类型总结 二十六.深浅拷贝 补充:散列表(哈希表) 二十三.元组内置方法 什么是元组:只可取,不可更改的列表 作用: ...
- 0912 for循环及内置方法
目录 for 循环 1.循环 2.循环取值 3.range 4.for + break 5.for+continue 6.for + else 数字类型内置方法 整型 浮点型 字符串 1.作用 2.作 ...
- python学习day6 for循环 字符串的内置方法
1.for循环 和while相比 l=[1,2,3] i=0 while i <len(l) print(l[i]) i+=1 l=['a','b','c'] for item in l: pr ...
- Day06for循环和字符串的内置方法
Day06 1.for循环(迭代器循环) while循环 条件循环,循环是否结束取决于条件的真假 for循环,迭代器循环,多用于循环取值,循环是否结束取决于被循环数据的元素个数 2.range(1,5 ...
- python迭代器-迭代器取值-for循环-生成器-yield-生成器表达式-常用内置方法-面向过程编程-05
迭代器 迭代器 迭代: # 更新换代(其实也是重复)的过程,每一次的迭代都必须基于上一次的结果(上一次与这一次之间必须是有关系的) 迭代器: # 迭代取值的工具 为什么用迭代器: # 迭代器提供了一种 ...
- day08整理(周总结\列表\字典内置方法)
一.周总结 一 计算机基础之编程 1.什么是编程语言 编程是人与计算机交流的介质 2.什么是编程 通过编程语言写一堆文件 3,为什么编程 取代劳动力,帮人类干活 二 计算机组成 1.CPU 控制器 控 ...
- for循环,数字、字符串和列表内置方法
目录 控制流程之for循环 基本语法 for+break for+continue for+else for循环打印lodaing 数字类型内置方法 整型 int 浮点型 float 字符串内置方法 ...
随机推荐
- git远程操作相关命令(remote 、push、fetch 、pull)
git remote 为了便于管理,Git要求每个远程主机都必须指定一个主机名.为了便于管理,Git要求每个远程主机都必须指定一个主机名. git remote[查看创库名] git remote 在 ...
- 2018年蓝桥杯java b组第六题
标题:递增三元组 给定三个整数数组A = [A1, A2, ... AN], B = [B1, B2, ... BN], C = [C1, C2, ... CN],请你统计有多少个三元组(i, j, ...
- Elastic Static初识(01)
写在前面 Elastic Static 是指由Elasticsearch,Logstash,Kibana,Beats等组件结合起来而构成的一个数据收集,分析,可视化的一个架构.我们经常听说过的ELK就 ...
- 通过实例快速掌握k8s(Kubernetes)核心概念
容器技术是微服务技术的核心技术之一,并随着微服务的流行而迅速成为主流.Docker是容器技术的先驱和奠基者,它出现之后迅速占领市场,几乎成了容器的代名词.但它在开始的时候并没有很好地解决容器的集群问题 ...
- WCF尝试创建与发布IIS(含问题描述)
技术贴技术贴就直接讲技术来,客套的话我也不多说了,各位看官包涵包涵. 跟着园内高手一步一步发布成功,欣喜若狂之际,发个贴纪念纪念一下. 废话不多说,不正确之处,还望大家积极指出,共同进步.哈哈~~~ ...
- Android NDK(一) ndk-build构建工具进行NDK开发
本文目录 一.androidstudio环境 二.快捷键配置 三.新建项目 四.NDK开发 五.so文件编译 一. androidstudio的环境 在SDK Tools中安装NDK开发环境(File ...
- 队列 & 栈---概述
队列 是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表.进行插入操作的端称为队尾,进行删除操作 ...
- 未来实现API管理系统的几个关键词
下面将通过几个关键词的形式说明API管理的重要性和未来的实现方式. 1.生命周期管理 在整个API生命周期中更深入地集成所有工具将进一步提高生命周期循环的速度,而且更重要的是提供满足消费者需求的API ...
- day 20作业
目录 1.下面这段代码的输出结果将是什么?请解释. 2.多重继承的执行顺序,请解答以下输出结果是什么?并解释. 3.什么是新式类,什么是经典类,二者有什么区别?什么是深度优先,什么是广度优先? 4.用 ...
- 04-03 scikit-learn库之AdaBoost算法
目录 scikit-learn库之AdaBoost算法 一.AdaBoostClassifier 1.1 使用场景 1.2 参数 1.3 属性 1.4 方法 二.AdaBoostRegressor 更 ...