if 判断

单分支结构

age = int(input('please enter your age: '))
if age > 18:
print('adult aready')

双分支结构

age = int(input('please enter your age: '))
if age >= 18:
print('adult aready')
else:
print('just grow up')

多分支结构

age = int(input('please enter your age: '))
if age >= 18:
print('adult aready')
elif age >= 13:
print('teenager')
else:
print('just grow up kid')

for循环

for循环的基本用法

# 把列表内部的值循环打印
for d in range(1, 32):
print(f'{d}日')

for循环嵌套

# 内层循环全部走完,才会走一次外层循环,每次走入外层循环,内层循环都会重置
for m in range(1, 13):
for d in range(1, 32):
print(f'{m}月{d}日')

break

# 循环提前被中断
m = 2
for d in range(1, 32):
if d == 29:
break
print(f'{m}月{d}日')

continue

# 跳出本次循环,不执行下面的代码,然后直接进入下一次循环
for m in range(1, 13):
for d in range(1, 32):
if m == 2 and d > 28:
continue
print(f'{m}月{d}日')

爬虫基础2

爬取豆瓣TOP250

import requests
import re # 获取所有电影的url
num = 0
for i in range(10):
url = f'https://movie.douban.com/top250?start={num}&filter='
num = num + 25 # 发送请求
res = requests.get(url = url)
data = res.text # 解析数据
movie_list = re.findall('<div class="item">.*?<a href="(.*?)">.*?<span class="title">(.*?)</span>.*?<span class="rating_num" property="v:average">(.*?)</span>', data, re.S) # 保存数据
with open('douban TOP250.txt', 'a', encoding='utf-8') as f:
for line in movie_list:
movie_name = line[1]
movie_rating = line[2]
movie_detail_web = line[0]
movie_data = f'''
电影名称: {movie_name}
电影评分: {movie_rating}
电影详情: {movie_detail_web}
'''
f.write(movie_data) print('爬取成功,程序结束')

爬取豆瓣数据接口(异步数据)

import requests
import json # 分析目标网址的异步请求返回的数据(接口)
# f12 -- network -- XHR -- headers -- Request URL # 发送请求
num = 0
for i in range(10):
url = f'https://movie.douban.com/j/chart/top_list?type=5&interval_id=100%3A90&action=&start={num}&limit=20'
num = num + 20
res = requests.get(url = url) # json 是一种第三方的数据格式
# json.dumps() 将python数据格式转换为json数据格式
# json.loads() 将json数据格式转化为python数据格式
movie_list = json.loads(res.text) # 保存数据
for movie_dic in movie_list:
movie_name = movie_dic['title']
movie_rating = movie_dic['rating'][0]
movie_rank = movie_dic['rank']
movie_regions = movie_dic['regions']
movie_release_date = movie_dic['release_date']
movie_url = movie_dic['url']
movie_data = f'''
电影名称: {movie_name}
电影评分: {movie_rating}
电影排名: {movie_rank}
拍摄国家: {movie_regions}
电影年代: {movie_release_date}
电影详情: {movie_url}
'''
with open('douban TOP 200 action movies', 'a', encoding='utf-8') as f:
f.write(movie_data) print('爬取成功,程序结束')

爬取电话号码(反爬破解基础)

import requests
import re url='http://qiche.huangye88.com/xinxi/s121quumg56853.html' # 反爬策略,通过User-Agent判断是否是浏览器
# f12 -- Network -- All -- Name第一行 -- Headers -- Request Headers -- User-Agent headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36'} # 发送请求
res = requests.get(url = url, headers = headers)
data = res.text # 解析数据
phone_num_list= re.findall('<ul class="pro">.*?<li><label>手<span class="none">占</span>机</label><h3 class="big">(.*?)</h3></li>.*?</ul>',data, re.S) # 输出数据
phone_num = phone_num_list[0]
print(phone_num)

Day 06 流程控制和爬虫基础2的更多相关文章

  1. 044 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 06 使用do-while循环实现猜字游戏

    044 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 06 使用do-while循环实现猜字游戏 本文知识点:do-while循环深入运用 案例练习 案例 ...

  2. 【python基础】第06回 运算符和流程控制 1

    本章内容概要 1.运算符 2.流程控制 本章内容详解 1.运算符 什么是运算符? 运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算.例如:2+3,其操作数是2和3,而运算符则是" ...

  3. Day1 Python基础学习——概述、基本数据类型、流程控制

    一.Python基础学习 一.编程语言分类 1.简介 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 汇编语言:站在计算机的角度,简写的英文标识符取代二进制去编 ...

  4. Python基础-1 python由来 Python安装入门 注释 pyc文件 python变量 获取用户输入 流程控制if while

    1.Python由来 Python前世今生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚 ...

  5. [小北De编程手记] : Lesson 06 - Selenium For C# 之 流程控制

    无论你是用哪一种自动化测试的驱动框架,当我们构建一个复杂应用程序的自动化测试的时候.都希望构建一个测试流程稳定,维护成本较低的自动化测试.但是,现实往往没有理想丰满.而这一篇,我会为大家讲解我们在使用 ...

  6. [java学习笔记]java语言基础概述之运算符&程序流程控制&for循环嵌套

    一.运算符 算数运算符 +,-,*,/,%,++,-- 1.+,-,*,/ 整数除以整数的结果为舍弃了小数部分的整数. 2.%:取余 %左右都为正数,左边小于右边结果为左边值,如,4%5=4 %左边大 ...

  7. Java学习之旅基础知识篇:数据类型及流程控制

    经过开篇对Java运行机制及相关环境搭建,本篇主要讨论Java程序开发的基础知识点,我简单的梳理一下.在讲解数据类型之前,我顺便提及一下Java注释:单行注释.多行注释以及文档注释,这里重点强调文档注 ...

  8. Java 基础 程序流程控制 (下)

    Java 程序流程控制 (下) 此篇单独对循环结构的知识点进行整理: 之前讲到循环结构分为:for循环,while循环,do...while循环三种最基本的循环结构:在JDK1.5以后的版本还提供了f ...

  9. Go语言系列(三)- 基础函数和流程控制

    一.strings和strconv的使用 1. strings.HasPrefix(s string, prefix string) bool:判断字符串s是否以prefix开头 . 2. strin ...

随机推荐

  1. Jquery 处理返回的 Json 数组

    Jquery 处理返回的 Json 数组 <script> for (var i = 0; i < photos.length; ++ i) { console.log(photos ...

  2. Python3.7.1学习(五) 将列表中的元素转化为数字并排序

    # 本文实例讲述了Python中列表元素转为数字的方法.分享给大家供大家参考,具体如下: # 有一个数字字符的列表: numbers = ['2', '4', '1', '3']print(numbe ...

  3. expect 自动填充密码

    它的脚本以#!/usr/bin/expect开头,执行时用expoct,而不是bash.我的一个给samba自动创建用户并且自动填写默认密码的脚本如下: vim smb_passwd.exp #!/u ...

  4. deepin安装pip

    sudo apt install python3-venv python3-pip  升级最新版 pip3 install --upgrade pip 更新完以后就报错网上的解决办法没有好使的 退回版 ...

  5. python基础-面向对象编程之封装、访问限制机制和property

    面向对象编程之封装 封装 定义:将属性和方法一股脑的封装到对象中,使对象可通过"对象."的方式获取或存储数据. 作用:让对象有了"."的机制,存取数据更加方便 ...

  6. 推荐收藏系列:一文理解JVM虚拟机(内存、垃圾回收、性能优化)解决面试中遇到问题(图解版)

    欢迎一起学习 <提升能力,涨薪可待篇> <面试知识,工作可待篇 > <实战演练,拒绝996篇 > 欢迎关注我博客 也欢迎关注公 众 号[Ccww笔记],原创技术文章 ...

  7. 2019-9-9:渗透测试,基础学习,phpmyadmin getshell方法,基于时间的盲注,基于报错的注入,笔记

    phpmyadmin getshell方法1,查看是否有导入导出设置 show global variables like '%secure-file-priv%';2,如果secure-file-p ...

  8. Mac OS 终端利器 iTerm2(怕以后找不到,自存自用)

    之前一直使用 Mac OS 自带的终端,用起来虽然有些不太方便,但总体来说还是可以接受的,是有想换个终端的想法,然后今天偶然看到一个终端利器 iTerm2,发现真的很强大,也非常的好用,按照网上配置了 ...

  9. All-in-one 的Serving分析

    export_func.export(model, sess, signature_name=mission, version=fold + 1) def export(model, sess, si ...

  10. 从spring boot发邮件聊到开发的友好性

    前些天帮一个朋友做网站,全站都是静态页面,唯一需要用到后端开发的是他需要一个留言板.传统的留言板一般都是提交后保存到数据库,然后提供一个后台的留言列表给管理人员看,我嫌麻烦,就决定留言提交到后台直接发 ...