网页爬虫抓取百度图片(爬虫记录自己练习爬虫的始末,这次用下载图片展示主流程)
优采云 发布时间: 2021-09-29 03:27网页爬虫抓取百度图片(爬虫记录自己练习爬虫的始末,这次用下载图片展示主流程)
爬虫笔记 [01]
一、前言
记录下自己爬虫练习的开始和结束,这次用下载的图片来展示主要过程。
二、 爬虫逻辑理解
网页上的几乎所有内容都在服务器上。在网上查东西时,类似于对服务器说:“我想看滑雪的照片”。服务器首先听到您的喊叫声,然后嗡嗡作响。开始向您发送带有代码的服务器滑雪图片和网页。数据当然是二进制的,所以你需要把数据编码*敏*感*词*类可以理解的东西。最后显示出你想要的图片,你可以下载保存到电脑中。
整个过程就是有人要东西,服务器听到有人要东西,服务器把东西发给你,你通过各种方式调出具体的内容。
三、 爬图
爬虫需要导入requests库,用于向服务器请求内容(发送请求)。os 库用于目录和文件操作,这是一个非常基础的操作。
# 导入使用的库
import requests
import os
在*敏*感*词*上找到了一张滑雪的图片,想下载。直接另存为很方便,不能手动存成1000张。
一、右键复制图片地址
# 图片地址存到变量中
imurl = 'http://tiebapic.baidu.com/forum/w%3D580%3B/sign=\ac30c67119f41bd5da53e8fc61e180cb/78310a55b319eb*敏*感*词*666b57c39526cffc1e17165c.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)
最后我们下载了图片