一.上节课回顾

(一)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整理(内置方法\循环判断)的更多相关文章

  1. 铁乐学python_day24_面向对象进阶1_内置方法

    铁乐学python_day24_面向对象进阶1_内置方法 题外话1: 学习方法[wwwh] what where why how 是什么,用在哪里,为什么,怎么用 学习到一个新知识点的时候,多问问上面 ...

  2. 周总结 + for 循环 + 内置方法(day06整理)

    目录 周总结 一 计算机基础之编程 (一) 什么是编程语言 (二) 什么是编程 (三) 为什么编程 二 计算机五大组成 (一) CPU (1) 运算器 (2) 控制器 (二) 存储器 (1) 主存 ( ...

  3. 元组/字典/集合内置方法+简单哈希表(day07整理)

    目录 二十三.元组内置方法 二十四.字典数据类型 二十五 集合内置方法 二十五.数据类型总结 二十六.深浅拷贝 补充:散列表(哈希表) 二十三.元组内置方法 什么是元组:只可取,不可更改的列表 作用: ...

  4. 0912 for循环及内置方法

    目录 for 循环 1.循环 2.循环取值 3.range 4.for + break 5.for+continue 6.for + else 数字类型内置方法 整型 浮点型 字符串 1.作用 2.作 ...

  5. 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 ...

  6. Day06for循环和字符串的内置方法

    Day06 1.for循环(迭代器循环) while循环 条件循环,循环是否结束取决于条件的真假 for循环,迭代器循环,多用于循环取值,循环是否结束取决于被循环数据的元素个数 2.range(1,5 ...

  7. python迭代器-迭代器取值-for循环-生成器-yield-生成器表达式-常用内置方法-面向过程编程-05

    迭代器 迭代器 迭代: # 更新换代(其实也是重复)的过程,每一次的迭代都必须基于上一次的结果(上一次与这一次之间必须是有关系的) 迭代器: # 迭代取值的工具 为什么用迭代器: # 迭代器提供了一种 ...

  8. day08整理(周总结\列表\字典内置方法)

    一.周总结 一 计算机基础之编程 1.什么是编程语言 编程是人与计算机交流的介质 2.什么是编程 通过编程语言写一堆文件 3,为什么编程 取代劳动力,帮人类干活 二 计算机组成 1.CPU 控制器 控 ...

  9. for循环,数字、字符串和列表内置方法

    目录 控制流程之for循环 基本语法 for+break for+continue for+else for循环打印lodaing 数字类型内置方法 整型 int 浮点型 float 字符串内置方法 ...

随机推荐

  1. elastic操作-索引重命名,索引副本数修改

    目前我们使用的elastic版本为2.3.5 当前版本没有直接的curl操作可以更改索引的名称,索引的副本数. 有直接更改索引副本数的api. curl -XPUT "192.168.1.1 ...

  2. Scrapy项目 - 实现腾讯网站社会招聘信息爬取的爬虫设计

    通过使Scrapy框架,进行数据挖掘和对web站点页面提取结构化数据,掌握如何使用Twisted异步网络框架来处理网络通讯的问题,可以加快我们的下载速度,也可深入接触各种中间件接口,灵活的完成各种需求 ...

  3. pycharm使用sublime/boxy配色方案

    # 展示效果图 1. github官网连接:https://github.com/simoncos/pycharm-monokai 2.克隆代码并解压文件 3.PyCharm -> File - ...

  4. 阿里云服务器CentOS6.9 nexus私服配置

    从nexus官网下载nexus版本. 下载地址如下:https://help.sonatype.com/repomanager2/download 如果要下载3.X版本的,可以把repomanager ...

  5. linux 更改文件所属用户及用户组

      在Linux中,创建一个文件时,该文件的拥有者都是创建该文件的用户.该文件用户可以修改该文件的拥有者及用户组,当然root用户可以修改任何文件的拥有者及用户组.在Linux中,对于文件的权限(rw ...

  6. 面试官:你有m个鸡蛋,如何用最少的次数测出鸡蛋会在哪一层碎?

    假设你面前有一栋n层的大楼和m个鸡蛋,假设将鸡蛋从f层或更高的地方放扔下去,鸡蛋才会碎,否则就不会.你需要设计一种策略来确定f的值,求最坏情况下扔鸡蛋次数的最小值. leetcode原题链接 乍一看这 ...

  7. Scala 数组和List

    Scala 数组和List: import scala.collection.mutable.ArrayBuffer import scala.collection.mutable.Buffer ob ...

  8. Android通过外部浏览器调用微信H5支付,Android+PHP详解

    看了好多关于讲解微信H5支付开发的文章,大多数都是通过微信内部浏览器来调用支付接口(其实就是公众号支付),可能是因为H5支付接口刚开放不久吧. 微信官方体验链接:http://wxpay.wxutil ...

  9. 你所不知道的TIME_WAIT和CLOSE_WAIT

    你遇到过TIME_WAIT的问题吗? 我相信很多都遇到过这个问题.一旦有用户在喊:网络变慢了.第一件事情就是,netstat -a | grep TIME_WAIT | wc -l 一下.哎呀妈呀,几 ...

  10. React+后端实现导出Excle表格的功能

    最近在做一个基于React+antd前端框架的Excel导出功能,我主要在后端做了处理,根据以下步骤,可以很容易就实现导出Excel表格数据的功能. 在做这类导出文件的功能,其实,在后端进行处理,会更 ...