大家好,我是python网络爬虫这门课程的主要讲师geo
条件语句(if)
在 Python 中,条件语句用于根据不同条件执行不同操作。它是程序逻辑控制的基础。在爬虫开发中,我们经常用条件语句来判断网页状态、是否存在元素、是否满足保存条件等。
if 条件:
执行语句
elif 其他条件:
执行语句
else:
执行语句
在写爬虫时,你会遇到许多需要判断的情境
如果网页状态码是 200,就继续抓数据
import requests
url = "https://example.com"
response = requests.get(url)
if response.status_code == 200:
print("网页请求成功,开始抓取数据")
elif response.status_code == 404:
print("网页不存在")
else:
print("请求失败,状态码:", response.status_code)
如果某个元素不存在,就跳过
from bs4 import BeautifulSoup
html = "<div><p>Python</p></div>"
soup = BeautifulSoup(html, "html.parser")
element = soup.find("span")
if element:
print("元素存在")
else:
print("元素不存在")
如果某个资讯符合条件,就保存下来
这些都需要 ifelse条件判断。
score = 85
if score >= 90:
print("优秀")
elif score >= 60:
print("及格")
else:
print("不及格")
循环语句(for 与 while)
爬虫几乎都要重复做事情:
- 重复请求一百个网页
- 重复抓表格中的所有行
- 重复检查每个标签
这些就需要 for 循环 和 while 循环。
循环在爬虫中的用途超级多,例如重复抓取网页、扫描多个元素等。
已知要循环几次 → 用 for
未知要循环几次,只知道停止条件 → 用 while
处理列表、字典 → 用 for
等待状态、重试机制 → 用 while
# for 循环
for i in range(5):
print(i)
numbers = [10, 20, 30]
for n in numbers:
print(n)
break 终止循环
for i in range(100):
if i == 50:
break
continue 跳过当次循环
for i in range(10):
if i % 2 == 0:
continue
print(i)
pass 占位
for _ in range(5):
if x > 0:
pass
# while 循环
i = 0
while i < 5:
print(i)
i += 1