零基础速成爬虫-Python基础

本文介绍了零基础快速学习Python爬虫所需的基础知识,包括Python语言为何适合爬虫,程序的三大控制结构(顺序、选择、重复),重点讲解了函数、条件判断、循环,并介绍了数据结构如字符串、列表、元组、字典的基本操作,以及异常处理的初步概念。这些内容是搭建爬虫程序的重要基础。
摘要由CSDN通过智能技术生成

零基础速成爬虫-Python基础

背景

​ 如果需要10天完成一个爬虫项目的最小化实现,要求有爬虫程序和可视化界面,我们需要最小化掌握的知识有什么呢?Python基础,爬虫软件包,Echarts组件。我会逐一更新博文,做为这次速成的成果。本篇讲的爬虫程序需要最小化掌握的python基础知识,主要包括为什么要使用python爬虫,python的程序主干,数据结构,异常处理。

什么是爬虫,为什么是Python爬虫

​ 在互联网上自动抓取数据这个需求的历史差不多和互联网一样长。一个自动化的程序,在互联网的Web端采集数据,就叫作网络爬虫(Web crawler)。网络爬虫可以让你一次查看几千甚至几百万个网页。

​ Python语言容易上手,大量的函数库,简洁的语言,让初学者也能站在巨人的肩膀上做事。跳过复杂的细节,观其大略,是很重要的入门手段。

程序主干

​ 所有的程序语言,其主干只有三种基本控制结构,顺序,选择,重复。顺序对应的知识是函数,告诉你先干什么,后干什么。选择对应的是条件判断,告诉你向左走还是向右走。重复则是反复做同一件事,达到某个条件后完成。

顺序——函数

​ Python程序中会有一个主函数。整个函数的执行顺序就是主函数的执行顺序,一个流程清晰的程序应该是由对函数的逐次调用来实现的。下面是Python程序中的主函数。

if __name__ == '__main__':
#调用函数
    main()
函数定义
带参数的函数

​ 函数可以根据不同的参数,输出不同的结果。下面使用两个数字相加来定义一个带参数的函数。计算结果会直接被输出到屏幕上。

#带参数的函数

def add2Num(a,b):
    c = a + b
    print(c)
带返回值的函数

​ 函数可以带返回值,结果可以对其它对象进行赋值,可以不进行输出。下面仍然使用两个数字相加来定义带返回值的函数。

#带返回值的函数

def add2num(a,b):
    return a + b        #通过return来返回运算结果

add2num(11,22)

result = add2num(11,22)
print(add2num(11,22))
print(result)
带多个返回值的函数

​ 函数可以返回多个值,赋值的对象就成了多个。下面采用两个数字相除来定义带多个返回值的函数

#返回多个值的函数

def divid(a,b):
    shang = a//b
    yushu = a%b
    return shang,yushu
sh,yu = divid(5,2)

print("商:%d,余数:%d" % (sh,yu))
print(5/2,5//2,end ='')
函数习题

使用这些习题来检验一下对函数的掌握程度。

  1. 写一个打印一条横线的函数。(提示:横线是若干个“-”组成)

  2. 写一个函数,可以通过输入的参数,打印出自定义行数的横线。(提示:调用上面的函数)

  3. 写一个函数求三个数的和

  4. 写一个函数求三个数的平均值(提示:调用上面的函数)

习题答案
#1
def ptline():
    print('-'*30)

#2
def linenum(n):
    for i in range(n):
        ptline()

#3
def add3num(a,b,c):
    return a+b+c

#4
def avg3num(a,b,c):
    return add3num(a,b,c)/3

#执行检验结果 
linenum(3)								#调用函数2,输出三行分隔线
print(avg3num(1,10,100))	#调用函数4,输出平均值
linenum(3)								#再次函数函数2,输出三行分隔线

选择——条件

​ 程序的执行过程中,我们需要根据条件,做不同的处理。常见的有两种场景,一是属于流程中的特殊处理,使用简单if。如长头发的女同志进入车间必须戴上帽子,其他人不做处理。二是对不同的情况,依次做不同的处理,使用复杂的if。如男同志后缀加上先生,女同志后缀加上女士。

简单if
#简单if示例,仅在得分为100分时,输出额外信息。
score = 77

print(score)

if score == 100 :
    print("Oh, you are perfect !")

复杂if
#复杂if示例,应该对可能存在的所有情况进行判断。
score = 88
if score >=90 and score<=100:
    print('本次考试,成绩为A')
elif score>=80:
    print('本次考试成绩为B')
elif score>=70:
    print("本次考试成绩为C")
elif score>=60:
    print("本次考试成绩为D")
else:
    print('本次考试成绩为E')
条件习题

结合if语句相关知识,实现石头,剪子布游戏0(剪刀) 1(石头) 2(布)

用户输入0,1,2。程序返回0,1,2,根据输赢输出不同的结果。

习题答案
#石头剪刀布游戏

#导入生成随机数的函数库
import random

#获取用户输入
player=int(input("请输入你的选择,0(剪刀) 1(石头) 2(布):"))

#判断用户输入有效性
if player>2 or player<0:
    print("错误,请输入0(剪刀) 1(石头) 2(布)")
#用户输入有效后,系统出拳,随机生成0,1,2,并输出出拳结果
else:
    computer = random.randint(0,2)    
    if computer == 0 :
        print("Computer:剪刀")
    elif computer == 1 :
        print("Computer:石头")
    else :
        print("Computer:布")
#判断输赢,从平手,赢,其它情况分情况。
#总共分为3*3共9种情况,3种情况平,3胜,3负。赢的情况为(2,1),(1,0),(0,2)
#输的情况是(1,2),(0,1),(2,0),本例使用比大小,增加(0,2),减少(2,0)的方式表达赢。
    if player == computer:
        print("平手")
      #
    elif (player > computer and not (player==2 and computer == 0)) \
        or (player==0 and computer == 2):
        print("恭喜!你赢了!")
    else:
        print("哈哈,你输了:)")

重复——循环

​ 至始至终,计算机相对于人来说最大的优势在于可以重复,稳定的执行同一件事,循环就是配置重复任务的方式。Python支持for循环和while循环。

for循环

主流程序语言都有for循环,其逻辑是先定义一个序列,后遍历序列中的每一个参数后,循环结束。Python支持多种方式定义序列,支持range函数,字符串,列表等。

range函数

左闭右开,只输入一个值则表示左区间为0,左区间必须小于右区间。

#单个参数,相当于range(0,5) 省略了0,

for i in range(5):
    print(i)

#输出
0
1
2
3
4

#支持配置步长,使用第三个参数
for i in range(0,10,3):
    print(i)
    
#输出
0
3
6
9
字符串、列表
# 支持使用字符串作为序列
name 
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
学习Python爬虫可以是一项复杂的任务,但并不一定需要精通Python。有人认为学习爬虫需要系统地学习Python的每个知识点,但最终可能仍然无法成功爬取数据。另一些人则认为需要先掌握网页知识,结果却陷入了前端开发的坑。\[1\] 要学好Python,无论是为了就业还是赚钱,都需要有一个学习规划。可以参考一份全套的Python学习资料,这将对想学习Python的人有所帮助。\[2\] 在Python爬虫基础速成中,可以考虑使用Scrapy框架。Scrapy是一个用纯Python实现的应用框架,用于爬取网站数据和提取结构化数据。它使用了Twisted异步网络框架来处理网络通信,可以加快下载速度,并且提供了各种中间件接口,可以灵活地满足各种需求。\[3\] 如果你有足够的时间,并且愿意付出努力,可以尝试加入一些Python学习交流群,与其他学习者一起进步。但需要注意的是,学习Python爬虫需要耐心和毅力。 #### 引用[.reference_title] - *1* *2* [从零开始的 Python 爬虫速成指南,零基础入门轻松上手](https://blog.csdn.net/wly55690/article/details/129215629)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [python爬虫入门,10分钟就够了,这可能是我见过最简单的基础教学](https://blog.csdn.net/zihong522/article/details/121750622)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值