网络爬虫的入门及爬取图片,文章,音频

简介: >持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第22天,[点击查看活动详情](https://juejin.cn/post/7147654075599978532 "https://juejin.cn/post/7147654075599978532")# 引言今天带来一篇python的网络爬虫# 网络爬虫的介绍> 网络爬虫(又称为网页蜘蛛,[网络](https://baike.baidu.com/item/%E7%BD%91%E7%BB%9C/143243?fromModule=lemma_inlink)机器人,在[FOAF](https://bai
持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第22天, 点击查看活动详情

引言

今天带来一篇python的网络爬虫

网络爬虫的介绍

网络爬虫(又称为网页蜘蛛, 网络机器人,在 FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的 程序或者 脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。

摘选自百度百科

可见,网络爬虫就是一个自动抓取一些信息的程序或脚本,接下来我们带大家学习一下python的网络爬虫

另外,爬虫并不是只能用python来实现,其他语言如Java等也可以实现网络爬虫,只不过python在这方面有很多优势。

关于库

我们爬虫有很多库,比如自带的urillb.requests,这里我们来介绍最常见的requests库

requests库并不是系统自带的库,所以我们需要用pip进行下载

win+R 打开 cmd

然后输入 pip install requests

进行requests库的下载

下载成功后,我们来正式进入爬虫的学习。

一个简单的爬虫Demo

import requests

url = "https://baike.baidu.com/item/%E7%BD%91%E7%BB%9C%E7%88%AC%E8%99%AB/5162711"

result = requests.get(url=url)

print(result)

这是一个简单的爬虫小demo

首先首行我们导入requests库

然后定义一个字符型的url变量,后面值是目标网址

接下来我们调用requests.get()的方法

返回结果我们用一个result来接收

最后我们输出这个result

结果如下:

可能看上去有一些奇怪,这是什么东西?为什么不是这个网页的内容啊????

有兴趣的同学可以了解一些http的状态

这里不多赘述

200是成功的意思

获取结果中的内容

接下来我们来分别从文本的获取,图片的获取,音频的获取和视频的获取来写我们的文章

文本的获取

修改我们的代码

import requests

url = "https://baike.baidu.com/item/%E7%BD%91%E7%BB%9C%E7%88%AC%E8%99%AB/5162711"

result = requests.get(url=url)

print(result.text)

可见,我们只把result加上了text属性,接下来我们运行这段py代码,输出了一大堆我们看不懂的代码

这啥玩意呢?

image.png

我们进入之前的url目标页面,然后右键,选择检查

发现一大堆代码

比对我们之前爬出来的东西

原来我们爬的是这些啊

总之,我们已经成功获取了所有的内容,虽然混合了大量的代码,当然有读者可能会问,怎么剔除我们不想要的内容呢?

这要涉及到正则表达式了

我们爬虫章就不多赘述了

图片的获取

图片的存储设计到二进制,所以我们要抓取二进制数据

这里我们获取的方面,不再使用.text,而是使用.content来获取二进制数据,我们这边在桌面新建一个xxx.jpg文件,接下来我们把爬取到的数据通过文件二进制读写的方式写入xxx.jpg文件,然后再打开,就是这张图片了

import requests

url = "https://scpic.chinaz.net/files/pic/pic9/201311/apic2098.jpg"

result = requests.get(url=url)

with open(r"C:\Users\DELL\Desktop\xxx.jpg","wb") as fp:
    fp.write(result.content)

print("完成了")

接下来运行,然后打开jpg文件,就是我们之前的图片了

进阶

我们获取到图片的URL后,可以直接通过这种方式来下载图片,我们在有很多图片需要下载的时候,可以直接第一步获取当前页面的源码,然后正则筛选出所有图片的url,然后把这些url放入列表中,再循环遍历列表,分别放入不同的jpg文件中,实现自动下载。

音频的获取和视频的获取

音频的获取和视频的获取同理

我们还是获取.content二进制数据,然后分别写入.mp3文件(音乐)和.mp4(视频)

值得一提的是,很多视频现在都会分多个m3u8来存储,所以我们可能通过循环的方式来获取多个url

最后一点总结

有时候可能会被识别出爬虫导致失败

这里介绍几种伪装

User-Agent

我们F12进入开发者工具

找到网络部分

然后找到User-Agent部分

将其复制下来,用一个字典进行封装,(用""分别括住键值对)

然后在request.get中调用headers=你封装的字典

完成User-Agent的伪装

cookie

F12进入开发者工具

找到网络部分

然后找到cookiet部分

将其复制下来,用一个字典进行封装,(用""分别括住键值对)

然后在request.get中调用headers=你封装的字典

完成cookie的伪装

(我们字典中可以封装多个键值对,但是之间要用,隔开)

其他

网站可能还会检测其他的头信息,都可以尝试复制到字典中,另外网站可能还会封ip,我们可以使用代理或者延时,不密集的发送请求,另外网站可能不是get而是post请求,需要我们去开发者工具中查询。

另外,爬虫分良性爬虫和恶性爬虫,我们要遵守法律,不要做违法的事情!!!!!!

相关文章
|
3月前
|
数据采集 API 数据处理
Objective-C 音频爬虫:实时接收数据的 didReceiveData: 方法
Objective-C 音频爬虫:实时接收数据的 didReceiveData: 方法
|
11天前
|
JSON Dart 前端开发
鸿蒙应用开发从入门到入行 - 篇7:http网络请求
在本篇文章里,您将掌握鸿蒙开发工具DevEco的基本使用、ArkUI里的基础组件,并通过制作一个简单界面掌握使用
47 8
|
1月前
|
机器学习/深度学习 资源调度 算法
图卷积网络入门:数学基础与架构设计
本文系统地阐述了图卷积网络的架构原理。通过简化数学表述并聚焦于矩阵运算的核心概念,详细解析了GCN的工作机制。
85 3
图卷积网络入门:数学基础与架构设计
|
22天前
|
Web App开发 网络协议 安全
网络编程懒人入门(十六):手把手教你使用网络编程抓包神器Wireshark
Wireshark是一款开源和跨平台的抓包工具。它通过调用操作系统底层的API,直接捕获网卡上的数据包,因此捕获的数据包详细、功能强大。但Wireshark本身稍显复杂,本文将以用抓包实例,手把手带你一步步用好Wireshark,并真正理解抓到的数据包的各项含义。
74 2
|
24天前
|
数据采集 Java Scala
淘宝图片爬虫:Scala与Curl的高效集成
淘宝图片爬虫:Scala与Curl的高效集成
|
29天前
|
机器学习/深度学习 人工智能 算法
深度学习入门:用Python构建你的第一个神经网络
在人工智能的海洋中,深度学习是那艘能够带你远航的船。本文将作为你的航标,引导你搭建第一个神经网络模型,让你领略深度学习的魅力。通过简单直观的语言和实例,我们将一起探索隐藏在数据背后的模式,体验从零开始创造智能系统的快感。准备好了吗?让我们启航吧!
70 3
|
10天前
|
数据采集 安全 API
高级技术文章:使用 Kotlin 和 Unirest 构建高效的 Facebook 图像爬虫
高级技术文章:使用 Kotlin 和 Unirest 构建高效的 Facebook 图像爬虫
|
2月前
|
数据采集 XML 存储
构建高效的Python网络爬虫:从入门到实践
本文旨在通过深入浅出的方式,引导读者从零开始构建一个高效的Python网络爬虫。我们将探索爬虫的基本原理、核心组件以及如何利用Python的强大库进行数据抓取和处理。文章不仅提供理论指导,还结合实战案例,让读者能够快速掌握爬虫技术,并应用于实际项目中。无论你是编程新手还是有一定基础的开发者,都能在这篇文章中找到有价值的内容。
|
2月前
|
机器学习/深度学习 人工智能 算法框架/工具
深度学习中的卷积神经网络(CNN)入门
【10月更文挑战第41天】在人工智能的璀璨星空下,卷积神经网络(CNN)如一颗耀眼的新星,照亮了图像处理和视觉识别的路径。本文将深入浅出地介绍CNN的基本概念、核心结构和工作原理,同时提供代码示例,带领初学者轻松步入这一神秘而又充满无限可能的领域。
|
2月前
|
数据采集 存储 XML
Python爬虫定义入门知识
Python爬虫是用于自动化抓取互联网数据的程序。其基本概念包括爬虫、请求、响应和解析。常用库有Requests、BeautifulSoup、Scrapy和Selenium。工作流程包括发送请求、接收响应、解析数据和存储数据。注意事项包括遵守Robots协议、避免过度请求、处理异常和确保数据合法性。Python爬虫强大而灵活,但使用时需遵守法律法规。