网页爬虫抓取百度图片(爬虫记录自己练习爬虫的始末,这次用下载图片展示主流程)

优采云 发布时间: 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)

  最后我们下载了图片

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线