Python3 Requests+BS4网络爬虫:最详细零基础的获取百度快照链接爬虫教程(思路篇)

Hello,大家好呀,五一劳动节快乐呀!最近在后台接到一个粉丝的私信说怎么爬取百度快照。正好五一有一段时间休息,咱们就来水一篇文章,顺便来巩固巩固基础的知识。

注意注意!这是思路篇,没有代码!只有思路
代码篇地址链接地址

提前预警,这可能是你看到的讲述最详细的一篇关于百度快照爬虫的博客,所以请务必认真看一下哟!由于我的水平有限,欢迎各位大神批评指正!

但是需要注意的是,我在这里演示的内容仅仅对我写完代码这一刻有效,爬虫的机制是一直会变化的,没有哪个爬虫的编写者能够肯定他们的代码一定不会失效,尤其是像百度这种大网站,经常更改规则是很正常的

我为大家准备了思路,这个思路的确花了我一段时间制作,我个人认为这个思路非常详细,小白也可以看不懂。如果真的在这个思路篇有问题的各位朋友,可以直接在博客下面留言,如果我看到了,会第一时间给大家解答。

事前准备

在开始前,我们首先要确保电脑中有Requests和BeautifulSoup4这两个基础抓包库。我们可以打开命令行窗口,输入命令pip install requests/BeautifulSoup4。当出现Successfully installed的字样后,便证明安装成功
在这里插入图片描述
在这里插入图片描述
在这里我提醒一点,我使用的是Python3的编程环境,所以使用Python2在本篇文章运行的过程中可能会有一些小问题。加之Python2将要被弃用,所以在这里还是建议使用Python2的编程者尽量使用Python3 哟!

开始Codeing

思路分析

当我们开始一个爬虫程序的时候,我们可以从我们爬取的网站类型入手。先让大家看看百度网页快照长什么样子。我就直接把图片放在下面了。咱们用百度搜索“最遥远的天秤”为例
在这里插入图片描述
当然也不是所有的网页都有百度快照,比如这种官方的网页
在这里插入图片描述
咱们进一步研究可以简单的发现,这个百度快照,其实就是一个超链接,我们只要获取到这个超链接,就能够获取到百度快照了
在这里插入图片描述
所以咱们的最终目的就是获得这个网址

通过分析,咱们可以发现,我们只要获取页面中的一小部分可见的部分即可。咱么遇到这种情况,最简单的办法就是分析网页,然后用爬虫先访问网页,然后用BS4来转换和清洗内容,最终获得我们想要的百度快照链接。

获取超链接

咱们可以借助浏览器的开发者工具,在网页中分析,最终找到百度快照的地址。(使用Ctrl+Shift+I打开开发者工具)也可以按照下面的步骤打开
在这里插入图片描述

对于这种规则的网站来说,我们可以在网站中找到适当的规律,然后在根据相同的规律,让计算机批量化的完成问题。再提醒一次,我在这里演示的内容仅仅对我写完代码这一刻有效,爬虫的机制是一直会变化的,没有哪个爬虫的编写者能够肯定他们的代码一定不会失效,尤其是像百度这种大网站,经常更改规则是很正常的

接下来,我们就按照相关的代码一步一步的分析,就像下面的动图一样,我们按照浏览器给予的提示,最终找到在网页中的超链接地址,分析超链接地址的共同之处。
在这里插入图片描述
我把所有的包含快照的网页元素放在下面
在这里插入图片描述在这里插入图片描述
对比上面这两个快照,我们可以发现,除了href这个参数不同之外,其他的像class aria-label都是相同的,这样我们就找到内在的规律了,接下来我们就可以编写爬虫了。

当我们把鼠标放在网络元素上,我们可以看到浏览器自动给出了元素的特性,咱们通过这样的方法多试验多个元素也是可以的
在这里插入图片描述
嗯嗯,咱们思路也就给大家梳理的差不多了。之前很多人看我的博客,都觉得我的博客问题比较严重,思路讲的太多了,很多代码上的东西又讲的很少。现在我决定先写一个思路篇,如果看完思路片的大佬们可以自己做出来,就不用看我的代码片了,因为和大佬的智慧相比,我的智商可真的是微乎其微;那么如果看完还是觉得有些疑惑的小伙伴们,也不用着急,我会在思路篇写完之后立马发出来一个代码篇,链接就会放在思路篇的下面。

先留一个空位,专门放思路篇地址的哈,或者大家可以在我的主页当中找到下一篇文章,大概会在5月2日发出来,谢谢大家哈!

代码篇文章:传送门

完整代码

为了让大家看完我的这篇博客而不是没有收获(因为我大概率知道大家来CSDN大多只是为了混一个代码抄一抄)所以我也把代码篇的完整代码放在这里了!

import requests
from bs4 import BeautifulSoup

#-------------------- 1.获取页面信息 -----------------------
headers = {
	"User-Agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.9999.0 Safari/537.36",
	"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9", 
    "Accept-Encoding": "gzip, deflate", 
    "Accept-Language": "en,es;q=0.9,ja;q=0.8,zh;q=0.7,zh-CN;q=0.6", 
}
# 咱们在这里直接给定义一个关键词
key = "最遥远的天秤"
baiduweb = requests.get("https://www.baidu.com/s?wd=" + key,headers = headers)
baiduweb_text = baiduweb.text

#-------------------- 2.清洗页面信息 -----------------------
import json
# 使用BS4模块
baidu_soup = BeautifulSoup(baiduweb_text,"html.parser")
cache_link_list = []
for cache_link in baidu_soup.find_all(attrs = {"aria-label":"百度快照"}):
	cache_link = cache_link["href"]
	cache_link_list.append(cache_link)

cache_title_list = []
for cache_title in baidu_soup.find_all(attrs = {"class" : "c-tools tools_47szj"}):
	dt = cache_title["data-tools"]
	dt = dt.replace("'",'"')
	dt = json.loads(dt)

	title = dt.get("title")
	cache_title_list.append(title)

#print(cache_link_list)
#print(cache_title_list)

all_list = zip(cache_title_list,cache_link_list)
print(list(all_list))

传送门

Python3 Requests+BS4网络爬虫:最详细零基础的获取百度快照链接爬虫教程(代码篇)
在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

地摊主老袁

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

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

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

打赏作者

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

抵扣说明:

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

余额充值