控制流程,爬取豆瓣电影信息

if 条件判断

if 条件判断:   # if 条件成立,执行代码1,条件不成立,执行代码2
    代码1
else:
    代码2

单分支结构

age = 19

if age >= 18:
    print('你已经成年了!')

双分支结构

# 双分支结构
age = 19
if age >= 18:
    print('成年')
else:
    print('未成年')

多分支结构

'''
如果 成绩>=90,打印"优秀"
如果 成绩>=80 并且 成绩<90,打印"良好"
如果 成绩>=70 并且 成绩<80,打印"普通"
其他情况:打印"差"
'''

score = int(input('请输入分数:'))

if score >= 90:
    print('优秀')
elif score >= 80:
    print('良好')
elif score >= 70:
    print('普通')
else:
    print('差')

for循环

循环就是重复做一件事

range(10) 默认从0开始,10结束,默认步长为1,顾头不顾尾

print(list(range(10)))
# 打印结果:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
for i in range(10):   # 把列表内部的值循环打印出来  i = 0 , i = 2  。。。。。i = 9
    print(i)

for 循环例子:

for i in range(32):
    print(f'8月{i}日刷牙')

注:f 格式化输出 》》字符串拼接 有了f {}就有了特殊含义

for 循环嵌套:内部循环完全走完,才会走一次外层循环,每次走入外层循环,内层循环都会重置

for j in range(1,13):  # j =1 # j = 2
    for i in range(1, 32):  # 控制的是日
        print(f'{j}月{i}日刷牙')
  • for + break
for i in range(101):
    if i == 51:
        break   # 中断循环
    print(i)
    
 # 只打印0-50, 当i = 51时循环中断,跳出本层循环
  • for + continue
for i in range(101):
    if i == 51:
        continue   # 跳出本次循环,不执行本次代码,进入下次循环
    print(i)
    
# 不打印i = 51

for循环习题

for i in range(1, 13):      # 控制月
    for j in range(1,32):   # 控制日
        if j == 2 and i > 28:
            continue
        if j in [4, 6, 9, 11] and i > 30:
            continue
            
        print(f'{j}月{i}日刷牙')

爬虫

爬虫相关知识

爬虫三部曲:

  1. 发送请求
  2. 解析数据
  3. 保存数据

爬虫精髓:

  1. 分析网站的通信流程
  2. 分析查找数据从何而来
  3. 分析网站的反爬策略
  4. 根据网站的反爬策略编写攻击手段,获取数据

爬虫程序

  1. 爬取豆瓣电影top250详情
'''
第一页:https://movie.douban.com/top250?start=0&filter=
第二页:https://movie.douban.com/top250?start=25&filter=
第三页:https://movie.douban.com/top250?start=50&filter=
第四页:https://movie.douban.com/top250?start=75&filter=
……
第十页:https://movie.douban.com/top250?start=225&filter=
'''
import requests
import re

# 1. 获取所有电影信息的url
num = 0
for line in range(10):
    url = f'https://movie.douban.com/top250?start={num}&filter='
    # print(url)
    num += 25

    # 2.发起请求
    response = requests.get(
        url=url
    )
    # print(response.text)

    '''
    1.电影名称
    2.电影详情页链接
    3.电影评分
    4.电影评价人数
    '''
    movie_list = re.findall(
        '<div class="item">.*?<a href="(.*?)">.*?<span class="title">(.*?)</span>.*?<span class="rating_num" property="v:average">(.*?)</span>.*?<span>(.*?)人评价</span>',
        response.text, re.S)


    count = 1
    with open('douban.txt', 'a', encoding='utf8') as f:
        for i in movie_list:
            movie_url = i[0]
            movie_name = i[1]
            movie_score = i[2]
            movie_count = i[3]
            f.write(f'{movie_url},电影名字:{movie_name},评分:{movie_score},评价人数:{movie_count} \n')


        print('数据保存成功,爬虫程序结束!')
  1. 爬取豆瓣电影接口

分析目标网站的异步请求返回的数据(接口)

json.loads() 把json数据类型转化为python数据类型

json.dumps() 把python数据类型转化为json数据类型

'''
https://movie.douban.com/j/chart/top_list?type=5&interval_id=100%3A90&action=&start=0&limit=20
https://movie.douban.com/j/chart/top_list?type=5&interval_id=100%3A90&action=&start=20&limit=20
https://movie.douban.com/j/chart/top_list?type=5&interval_id=100%3A90&action=&start=40&limit=20
https://movie.douban.com/j/chart/top_list?type=5&interval_id=100%3A90&action=&start=60&limit=20
'''

import requests
import json

# 1.拼接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'
    # print(url)
    num += 20

    # 2.发送请求
    response = requests.get(
        url=url
    )
    # print(response.text)

    # 把json数据类型转化为python数据类型
    # python_data = json.loads(response.text)
    # print(type(python_data))
    movie_list = json.loads(response.text)

    # 循环电影列表数据中的每一个字典
    for movie_dic in movie_list:

        # 2. 提取数据   电影名称,电影评分,电影的排名,图片地址,详情页地址
        movie_name = movie_dic['title']
        movie_score = movie_dic['rating'][0]
        movie_rank = movie_dic['rank']
        movie_img_url = movie_dic['cover_url']
        movie_url = movie_dic['url']

        # 3. 保存数据
        movie_data = f'''
        电影名称:{movie_name}
        电影评分:{movie_score}
        电影排名:{movie_rank}
        图片地址:{movie_img_url}
        详情地址:{movie_url}
        '''
        with open('豆瓣.txt', 'a', encoding='utf8') as f:
            f.write(movie_data)

        print('保存数据成功,爬虫程序结束')
  1. 爬取中国黄页手机号信息
import requests
import re

url = 'http://gongcheng.huangye88.com/xinxi/143992399.html'

# User-Agent: 反爬策略,判断是否为浏览器
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36'
}
response = requests.get(
    url=url,
    headers=headers
)
# print(response.text)

phone_number = re.findall('<ul class="pro">.*?<li><label>手<span class="none">占</span>机</label><h3 class="big">(.*?)</h3></li>.*?</ul>',response.text,re.S)[0]
print('手机号:', phone_number)

转载于:https://www.cnblogs.com/setcreed/p/11426376.html

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
应用背景为变电站电力巡检,基于YOLO v4算法模型对常见电力巡检目标进行检测,并充分利用Ascend310提供的DVPP等硬件支持能力来完成流媒体的传输、处理等任务,并对系统性能做出一定的优化。.zip深度学习是机器学习的一个子领域,它基于人工神经网络的研究,特别是利用多层次的神经网络来进行学习和模式识别。深度学习模型能够学习数据的高层次特征,这些特征对于图像和语音识别、自然语言处理、医学图像分析等应用至关重要。以下是深度学习的一些关键概念和组成部分: 1. **神经网络(Neural Networks)**:深度学习的基础是人工神经网络,它是由多个层组成的网络结构,包括输入层、隐藏层和输出层。每个层由多个神经元组成,神经元之间通过权重连接。 2. **前馈神经网络(Feedforward Neural Networks)**:这是最常见的神经网络类型,信息从输入层流向隐藏层,最终到达输出层。 3. **卷积神经网络(Convolutional Neural Networks, CNNs)**:这种网络特别适合处理具有网格结构的数据,如图像。它们使用卷积层来提取图像的特征。 4. **循环神经网络(Recurrent Neural Networks, RNNs)**:这种网络能够处理序列数据,如时间序列或自然语言,因为它们具有记忆功能,能够捕捉数据中的时间依赖性。 5. **长短期记忆网络(Long Short-Term Memory, LSTM)**:LSTM 是一种特殊的 RNN,它能够学习长期依赖关系,非常适合复杂的序列预测任务。 6. **生成对抗网络(Generative Adversarial Networks, GANs)**:由两个网络组成,一个生成器和一个判别器,它们相互竞争,生成器生成数据,判别器评估数据的真实性。 7. **深度学习框架**:如 TensorFlow、Keras、PyTorch 等,这些框架提供了构建、训练和部署深度学习模型的工具和库。 8. **激活函数(Activation Functions)**:如 ReLU、Sigmoid、Tanh 等,它们在神经网络中用于添加非线性,使得网络能够学习复杂的函数。 9. **损失函数(Loss Functions)**:用于评估模型的预测与真实值之间的差异,常见的损失函数包括均方误差(MSE)、交叉熵(Cross-Entropy)等。 10. **优化算法(Optimization Algorithms)**:如梯度下降(Gradient Descent)、随机梯度下降(SGD)、Adam 等,用于更新网络权重,以最小化损失函数。 11. **正则化(Regularization)**:技术如 Dropout、L1/L2 正则化等,用于防止模型过拟合。 12. **迁移学习(Transfer Learning)**:利用在一个任务上训练好的模型来提高另一个相关任务的性能。 深度学习在许多领域都取得了显著的成就,但它也面临着一些挑战,如对大量数据的依赖、模型的解释性差、计算资源消耗大等。研究人员正在不断探索新的方法来解决这些问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值