爬虫手记【01】

一、序言

记录自己练习爬虫的始末,这次用下载图片展示主流程。

二、爬虫逻辑理解

网页上所有的内容几乎都是在服务器上面的,上网查东西的时候,就类似于我们对服务器说:‘我要看滑雪的图片’,服务器首先是听到你的喊话,然后嗯了一声,就开始把服务器里面有关滑雪的图片和网页用代码传给你,数据当然是二进制的,所以你需要把数据编码成人类能看懂的东西。最后你想要的图片就展示出来了,你可以下载保存在电脑里面。
整个过程就是,有人要东西,服务器听到了有人要东西,服务器把东西发给你,你再通过各种方法把具体内容提起出来。

三、爬一张图片

爬虫需要导入requests库,作用是向服务器要内容(发送请求),os库是进行目录和文件操作使用的,很基础的操作。

# 导入使用的库
import requests
import os

我在百度贴吧找了一张单板滑雪的图片,想把它下载下来。直接另存为很方便,有1千张就不能手动另存了。
在这里插入图片描述
首先右键将图片地址复制下来
在这里插入图片描述

# 图片地址存到变量中
imurl = 'http://tiebapic.baidu.com/forum/w%3D580%3B/sign=\ac30c67119f41bd5da53e8fc61e180cb/78310a55b319ebc4666b57c39526cffc1e17165c.jpg'

然后我们需要找一个叫做“请求头”的东西,理解成是个人名,服务器要知道是谁在要东西,user-agent主要包含浏览器的相关信息。因为爬虫就是在模拟成人用电脑搜索内容的样子,如果user-agent不是浏览的名称,那很可能就是爬虫,要被屏蔽了。
在这里插入图片描述

# 从浏览器中复制下来后,要用字典类型包起来,键值都是字符串类型
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36'}

# 这里就是做一个向服务器要内容的请求,对应的连接和伪装的浏览器名字。
# imr是服务器对你请求的回答(响应),包含了图片数据在内的一些信息
imr = requests.get(url = imurl, headers = headers)

# 观察状态码,就是看服务器到底有没有理你,理你了就代表请求成功
# 如果是状态码是200,就代表服务器理你了
print(imr.status_code)

在这里插入图片描述
结下来要看编码是什么,编码不同,最后的信息就会乱

# 一般utf8是正确的编码,常规操作是imr.encoding = imr.apparent_encoding
print(imr.encoding)
print(imr.apparent_coding)

# 查看当前操作目录,做一个新目录出来
cwd = os.getcwd()
print(cwd)
newpath = os.mkdir(cwd + '/spider')
path_photo = cwd + '/spider/snowboarding.png'

# 图片是二进制,所以用wb的模式进行写入
with open(pathn_photo, 'wb') as im:
	im.write(imr.content)

最后我们就将图片下载下来了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值