Python爬虫 第二讲

for循环

name = 'neusoft'
for x in name:
    print(x)
    if x == 's':
        print('哈哈')
# 结果
>>> n
e
u
s
哈哈
o
f
t

进度条

使用 pip install tqdm 安装tqdm库
导入 tqdm 库和 time
from tqdm import tqdm
import time
mylist = []
for i in range(20):
    mylist.append(i)
# 遍历mylist
for x in tqdm(mylist):
    time.sleep(1)  
# 结果
 >>> 35%|███▌      | 7/20 [00:07<00:13,  1.01s/it]

字符串操作

字符串的替换
# 常用操作
price = '¥9.9'
# 字符串的替换
price = price.replace("¥", '')
print(price)
# 结果
>>> 9.9

# 价格涨价 10倍
new_price = float(price) *10
print(new_price)
# 结果
>>> 99.0

while True:
    seg = input('')
    seg = seg.replace('吗?', '!')
    print(seg)
# 结果
>>> 你好吗?
>>> 你好!
strip 去空格操作
name = '    neuedu   '
print(len(name))
# 结果
>>> 13
name = name.strip()
print(len(name))
# 结果
>>> 6
join 将列表变成字符串
li = ['你', '好', '帅']
disk_path = ['C:','Users', 'Administrator', 'Desktop', 'CCF']
path = '\\'.join(disk_path)
print(path)
# 结果
>>> C:\Users\Administrator\Desktop\CCF

li = ''.join(li)
print(li)
# 结果
>>> 你好帅

元组

元组的作用
  • 写保护 ,安全, Python内置函数返回的类型都是元组
  • 相对列表来讲, 元组更节省空间, 效率更高
创建元组
# 元组和列表很相似,只不过不能修改
a = (1, '1', 3)
print(a)
print(type(a))
# 结果
>>> (1, '1', 3)
>>> <class 'tuple'>

# 拥有一个元素的元组
a = (100)
print(type(a))
# 结果
>>> <class 'int'>

b = (100,)
print(type(b))
# 结果
>>> <class 'tuple'>

# 我们经常使用的组合方式:
list2 = [('a',22),('b', 33),('c',99)]
访问元组
print(a[2])
# 结果
>>> 3

字典

创建字典 key -value
info = {'name': '李白', 'age': 18, 'gender':'female'}
print(type(info))
# 结果
>>> <class 'dict'>

# 访问字典 通过建访问值
print(info['name'])
# 结果
>>> 李白

# 访问不存在的键
print(info['addr'])
# 结果(报错)
>>> KeyError: 'addr'

# 当不存在这键的时候,可以返回默认设置的值,
# 有这个键就正常返回
print(info.get('addr', '抚顺市'))
# 结果
>>> 抚顺市

# 修改
info['age'] = 3
print(info)
# 结果
>>> {'name': '李白', 'age': 3, 'gender': 'female'}

# 增加 当字典中不存在这个键, 就会添加
info['addr'] = '鞍山市'
print(info)
# 结果
>>> {'name': '李白', 'age': 3, 'gender': 'female', 'addr': '鞍山市'}

# 删除
del info['age']
print(info)
# 结果
>>> {'name': '李白', 'gender': 'female', 'addr': '鞍山市'}

#  遍历
for k, v in info.items():
    print(k, '---->', v)
# 结果
>>> name ----> 李白
gender ----> female
addr ----> 鞍山市

# 获取所有键
print(list(info.keys()))
# 结果
>>> ['name', 'gender', 'addr']

# 获取所有的值
print(list(info.values()))
# 结果
>>> ['李白', 'female', '鞍山市']

函数

函数和方法的区别
  • 函数 面向过程
  • 方法 面向对象
Python 中的函数
# 函数的定义
def say_hello(name):
    print('hello', name)
say_hello('neusoft')
# 结果
>>> hello neusoft

# 1到 任意数之间累加和
def caculate_num(num):
    sum_num = 0 # 存求和
    for i in range(1, num+1):
        sum_num = sum_num + i
    return sum_num
print(caculate_num(100))
# 结果
>>> 5050

爬虫

爬虫即网络爬虫,英文是Web Spider。翻译过来就是网络上爬行的蜘蛛,如果把互联网看作一张大网,那么爬虫就是在大网上爬来爬去的蜘蛛,碰到想要的食物,就把他抓取出来。

我们在浏览器中输入一个网址,敲击回车,看到网站的页面信息。这就是浏览器请求了网站的服务器,获取到网络资源。那么,爬虫也相当于模拟浏览器发送请求,获得到HTML代码。HTML代码里通常包含了标签和文字信息,我们就从中提取到我们想要的信息。

通常爬虫是从某个网站的某个页面开始,爬取这个页面的内容,找到网页中的其他链接地址,然后从这个地址爬到下一个页面,这样一直不停的爬下去,进去批量的抓取信息。那么,我们可以看出网络爬虫就是一个不停爬取网页抓取信息的程序。
引用自 https://blog.csdn.net/Computer_Hu/article/details/83351766
#####网页爬取

# 导入 *requests* 库
import requests
# 获取指定域名的源代码
response = requests.get('http://www.baidu.com')
# 响应的编码方式
# 设置编码方式
response.encoding = 'utf-8'
# 响应状态码  200 ok    404not found
print(response.status_code)
# 结果
>>> 200

print(response.encoding)
# 结果
>>> utf-8

# 获取string类型相应
html_data = response.text
print(html_data)
# 将爬取的文件写成本地html
# 文件路径 读写模式 编码方式
with open('index.html', 'w', encoding='utf-8') as f:
    f.write(html_data)
图片爬取
# 图片爬取
# 图片地址
url = 'http://www.cpnic.com/UploadFiles/img_0_57266514_681418918_26.jpg'
response2 = requests.get(url)
# 获取byte类型的响应
img_data = response2.content
# 文件路径 读写模式write bingary 编码方式
if response2.status_code == 200:
    with open('kebi.jpg', 'wb') as f:
        f.write(img_data)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值