python 爬虫(1)--爬取百度图片,你确定不来看一看

本文介绍了如何使用Python进行网络爬虫,以抓取百度图片为例,涉及网页分析、正则表达式和Cookie的使用。通过解析网页源码,利用正则表达式提取图片链接,并实现图片的保存。文章还提到了百度图片的翻页机制变化及应对策略。
摘要由CSDN通过智能技术生成

前言

学习python有什么用?python编程语言在当今已经成为主流语言,拥有丰富的库函数,在人工智能和图像处理等多方面有着突出的表现。今天我们通过python爬取百度图库。
爬虫从字面上来讲就是爬动的虫子,主要是用来自动爬取目标数据的。可以帮住我们完成在目标网页下载查找数据,减轻了人工查找。利用python中的库函数可以轻松的实现一个爬虫脚本。
从本文之后,会陆续出关于爬虫的知识和案例。供大家学习交流。

本文说明:只用作学习交流,不用于商业用途。

下面图片均为此程序爬取:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

准备工作

使用的python版本:
python 3.7
使用编辑器:
pycharm
用到的库函数:
requests
os
re
安装方法:
1、通过CMD命令框安装:
ctrl+r输入cmd进入命令框输入pip install 库名 如:pip install os
2、通过pycharm安装:
在这里插入图片描述
浏览器:
谷歌 chrome

网页分析

目标网页百度图片
在这里插入图片描述

1、链接分析:

https://image.baidu.com/search/index?tn=baiduimage&ipn=r&ct=201326592&cl=2&lm=-1&st=-1&fm=result&fr=&sf=1&fmq=1609136515311_R&pv=&ic=&nc=1&z=&hd=&latest=&copyright=&se=1&showtab=0&fb=0&width=&height=&face=0&istype=2&ie=utf-8&hs=2&sid=&word=%E7%8C%AB

可以看到链接中有许多的参数,我们先不要管其他的参数,看看word这个参数,让我们把word这个的数据换成猫试一下能不能搜到东西。
在这里插入图片描述
可以看到word的参数就是我们要找的目标。所以我们只需要改变word的参数就可以,搜索想要的数据了,至于其他的参数我们暂不考虑。
如果说你复制链接后word的参数变成乱码了,其实不用担心,那是%后面跟16进制,代表url编码。因为汉字是不能传输的的,所以会变成这种样式。并不影响结果。
先让我们实验一下能否返回数据:

import requests

headers = {
   
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36',
} #伪装为浏览器
data = requests.get(url , headers = headers)
print(data.text)

返回结果:
在这里插入图片描述
提示需要进行安全认证,我们并不能获取到网页源码。这时我们就要想一下为什么,我们用浏览器就可以看到,用python为什么就看不到了呐。这是因为我在浏览器上登录了百度的账号。登陆后百度会返回一个Cookie,每当我的浏览器浏览百度服务器的时候带上这个Cookie数据,就可以直接访问了。那么我该如何获取Cookie呐,其实浏览器中有,下面让我们看一下如何得到Cookie。
在这里插入图片描述

在目标网页,按下F12键调出开发者选项。按照下图箭头指的选项找到对应的数据,如果没有数据,可以刷新网页。
在这里插入图片描述
如何将Cookie传递过去呐,只需要放到headers中即可。这时返回的数据就为网页源码。

import requests

headers = {
   
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari
评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gussu-毛虫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值