Python第一章(图片与API接口)

简介: Python第一章(图片与API接口)

在当今信息爆炸的数字时代,数据的获取和处理变得日益重要。本篇博客旨在为读者提供一扇窗口,透过它可以看到pc技术的神奇世界。从数据采集的基础知识到高级应用,我们将揭示pv如何使数据获取变得简单、高效,并且功能强大。无论您是初学者还是在寻求深化理解,都可以在这里找到您所需要的知识。让我们一起开始这趟知识之旅,解锁pc给我们的日常生活和工作带来的无限可能。

一、什么是pc

使用编程方式自动化采集数据的过程称为pc

爬虫是使用程序自动化发送请求、获取响应的程序,

主要用来批量抓取(采集)文件或数据

二、使用pc可以做什么?

数据采集:爬虫可以用来采集网站的各种信息,比如新闻文章、图片资料、产品价格、用户评论等。这种数据经常用于商业分析或学术研究。

网页数据提取:Python pc可以从复杂的网页源码中提取所需的数据,例如可从电子商务网站抓取产品信息,从社交网络网站抓取用户行为。

竞品分析:通过自动化的方式抓取竞争对手的信息,如价格、优惠策略、产品变动等,可以进行实时的竞品分析和调整自己的商业策略。

自动登录和操作:Python pc也可以实现自动登录网站,进行一些自动化操作,如自动发帖、自动评论、自动点赞、自动抢等。

搜索引擎爬取:搜索引擎(如 Google、百度)的工作原理也是基于爬虫的,爬过互联网并将网页信息存储到索引数据库中。

数据清洗:爬虫获取的数据通常需要清洗和处理才能用于分析。Python 有很多数据清洗的库可以将爬取的原始数据转化为易于处理的格式。

机器学习和数据挖掘:爬虫获取的数据经常用作机器学习算法的训练集或用于数据挖掘,以发现数据中隐藏的模式。

三、前置知识

基本网络知识

简单流程:打开浏览器-输入网址-看到网页


详细流程:打开浏览器-输入网址并确认-到达服务器-服务器返回源代码-浏览器显示

API接口

应用程序编程接口(英语:Application Programming Interface,简称:API),是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

环境安装

pip install requests

四、Requests库

如果你已经安装了requests库,那么你可以直接用Python导入它:

import requests

发送GET请求

GET请求通常用于获取服务器的资源。你可以通过requests.get(url)函数发送GET请求。例如:

response = requests.get('http://httpbin.org/get')  # 此处URL需替换为实际可用的URL

通过response对象,我们可以获取很多信息,如状态码、响应头、响应的html文本等。

print(response.status_code)  # 输出状态码
print(response.headers)  # 输出响应头
print(response.text)  # 输出html文本

发送POST请求

POST请求通常用于向服务器提交数据。你可以通过requests.post(url, data)函数发送POST请求。

相比于GET请求可以隐藏个人信息

data = {'key1': 'value1', 'key2': 'value2'}
response = requests.post('http://httpbin.org/post', data=data)  # 此处URL需替换为实际可用的URL

同样,你可以通过response对象获取响应信息。

print(response.status_code)  # 输出状态码
print(response.text)  # 输出返回的信息

添加请求头

有些网站会检查请求的Headers,因此我们需要通过requests.get(url, headers=headers)或requests.post(url, data, headers=headers)函数发送带请求头的请求。

headers = {'User-Agent': 'Mozilla/5.0'}
response = requests.get('http://httpbin.org/get', headers=headers)  # 此处URL需替换为实际可用的URL

拓展内容

HTTP 状态码由三位数和一个原因短语组成,如果收到的响应中没有包含预期的内容,这些状态码可以帮助确定出现问题的原因和位置。下面是一些最常见的HTTP状态码:

1xx(信息响应):这类状态码代表请求已被接受,需要进一步处理。这类响应是临时响应,只包含状态行和某些可选的响应头信息,并以空行结束。
100 Continue:服务器已收到请求的一部分,客户端应该继续发送其余的请求。
2xx (成功) :这类状态码表明服务器成功地接受了由客户端发出的请求
200 OK: 请求成功。请求所希望的回应头或数据体将随此响应返回。
201 Created: 请求已被实现,并且有一个新的资源已经依据请求的需要而创建。
3xx (重定向):完成请求所需额外的步骤。
302 Found:请求的资源现在临时从不同的URI响应请求。
304 Not Modified:资源未改变,直接使用浏览器缓存即可。
4xx(请求错误):这类的状态码代表了客户端看起来可能发生了错误,妨碍了服务器的处理。
400 Bad Request:请求无法被服务器理解。
401 Unauthorized:当前请求需要用户验证。
403 Forbidden:服务器了解客户端的请求,但是拒绝执行它。
404 Not Found:请求失败,请求所希望得到的资源未被在服务器上发现。
5xx(服务器错误):这类状态码代表服务器在处理请求的过程中发生了错误。
500 Internal Server Error:服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理。
502 Bad Gateway:服务器是一个网关或者代理服务器,它收到了来自上游服务器的无效响应。
503 Service Unavailable:由于临时的服务器维护或者过载,服务器当前无法处理请求。

五、常用属性

# status_code:获取HTTP响应的状态码
print(response.status_code)
# headers:HTTP响应的头信息,返回的是一个字典
print(response.headers)
# text:HTTP响应的主体内容,此属性会自动对结果进行解码(一般用于文档爬取)
print(response.text)
# content:HTTP响应的二进制内容(一般用非文档爬取,例如:图片,视频)
print(response.content)
json():如果HTTP响应的内容是json,我们可以使用此方法解析json,返回一个字典。
print(response.json())
# cookies:一个CookieJar对象,包含服务器设置的所有cookies
print(response.cookies)
# url:URL of the response
print(response.url)
# encoding:获取响应的编码方式
print(response.encoding)

六、单图下载器案例


这里以爬取百度图标为例:

#爬取流程
#1.导库
import requests #网络请求库
#2.寻址
url = "https://pss.bdstatic.com/static/superman/img/logo/bd_logo1-66368c33f8.png"
#3.请求
res = requests.get(url)
#4.处理
with open("image.png","wb") as file:
    file.write(res.content)

可知找到图标的地址就可以爬取信息

寻址步骤如下:

1.打开想要爬取信息的网站


2.点击键盘上的“F12”,开启开发者模式


3.按如图步骤点击就可以获取想要的信息地址,如此便寻址成功


七、通过API查询想要的信息案例

前面我们已经讲过API接口的作用,下面我们以天气API为例演示爬取过程

#http://tianqiapi.com/index
#导库
import requests
#寻址,api接口url
url = "http://v1.yiketianqi.com/api?appid=52337255&appsecret=D6sbQoqu&city="
while True:
    print("欢迎使用1.0版本天气预报系统!")
    x = input("请输入你要查询的城市:")
    #请求
    res = requests.get(url+x)
    # print(res.text)  #返回了unicode编码
    #把网页的字典列表(json)转化为python的字典和列表,使用.json()方法
    res2 = res.json()
    #索引数据得到想要的内容
    city = res2["city"]
    temp1 = res2["data"]
    temp2 = temp1[0]
    humidity = temp2["humidity"]
    week = temp2["week"]
    wea = temp2["wea"]
    print("您的城市:"+city)
    print(week)
    print("天气是"+wea)
    print("湿度",humidity)
    
#有反爬措施
import requests
url="http://www.baidu.com"
h = {'User-Agent': 'Mozilla/5.0'}
res=requests.get(url,headers=h)
print(res.text)

读出结果

相关文章
|
3天前
|
存储 应用服务中间件 API
创建一个随机图片API
通过web服务器(如Apache、Nginx等)访问该文件以获取随机图片。请确保将images数组中的图片路径替换为您自己的图片路径。您还可以扩展该数组,添加更多图片作为可选内容
22 5
|
8天前
|
SQL 并行计算 API
Dask是一个用于并行计算的Python库,它提供了类似于Pandas和NumPy的API,但能够在大型数据集上进行并行计算。
Dask是一个用于并行计算的Python库,它提供了类似于Pandas和NumPy的API,但能够在大型数据集上进行并行计算。
|
7天前
|
前端开发 JavaScript API
惊呆了!学会AJAX与Fetch API,你的Python Web项目瞬间高大上!
【7月更文挑战第15天】AJAX和Fetch API是Web开发中的关键工具,用于异步前后端交互。AJAX借助XMLHttpRequest实现页面局部更新,而Fetch API是现代的、基于Promise的HTTP请求接口,提供更强大功能和简洁语法。结合Python Web框架如Django或Flask,利用这两者能创造无缝体验,提升项目性能和用户体验。学习并应用这些技术,将使你的Web应用焕发新生。**
16 5
|
7天前
|
前端开发 API UED
Python后端与前端交互新纪元:AJAX、Fetch API联手,打造极致用户体验!
【7月更文挑战第15天】Python后端(Django/Flask)与前端通过AJAX或Fetch API实现异步交互,提升Web应用体验。Python提供强大的后端支持,AJAX用于不刷新页面的数据交换,Fetch API作为现代标准,基于Promise简化HTTP请求。结合两者,构建高效、流畅的交互系统,优化响应速度和用户体验,开启Web开发新篇章。
18 5
|
4天前
|
供应链 搜索推荐 数据挖掘
微店商品详情数据接口(micro.item_get)丨微店API接口指南
`micro.item_get`接口是微店API的关键工具,让开发者能获取商品详情,包括名称、价格、描述、图片、销量和SKU,用于电商同步、数据分析、个性化营销和提升购物体验。此接口加速了数据驱动的决策和业务优化。
7 0
|
6天前
|
JSON 监控 API
2024年7月免费天气API接口推荐
天气API对于开发人员来说是构建响应更快、安全性更高的应用程序的有力工具。使用天气API可以帮助开发者提供出色的用户体验,实现高效的数据管理。
30 0
|
7天前
|
监控 网络协议 安全
由于楼层自动化系统的复杂性和多样性,很难给出一个通用的Python代码示例,因为每个系统可能使用不同的硬件、通信协议和软件接口。
由于楼层自动化系统的复杂性和多样性,很难给出一个通用的Python代码示例,因为每个系统可能使用不同的硬件、通信协议和软件接口。
|
8天前
|
前端开发 API 开发者
深度剖析:AJAX、Fetch API如何成为Python后端开发者的最佳拍档!
【7月更文挑战第14天】在Web开发中,前端与后端的协作关键在于异步数据交换。AJAX和Fetch API是两种主要技术,用于不刷新页面的情况下与服务器通信。AJAX依赖XMLHttpRequest,常用于JSON数据传输,而Fetch API是现代替代品,基于Promise,语法简洁。Python的Flask框架可创建API接口来响应这些请求。了解并熟练使用这些技术能提升Python后端开发的效率,构建高性能的Web应用。
20 0
|
8天前
|
前端开发 API 开发者
从零到精通,AJAX与Fetch API让你的Python Web前后端交互无所不能!
【7月更文挑战第14天】在Web开发中,AJAX和Fetch API扮演着关键角色,用于前后端异步通信。AJAX通过XMLHttpRequest实现页面局部更新,但回调模式和复杂API有一定局限。Fetch API作为现代替代,利用Promise简化异步处理,提供更丰富功能和错误处理。Python后端如Flask、Django支持这些交互,助力构建高性能应用。从AJAX到Fetch API的进步,结合Python,提升了开发效率和用户体验。
10 0
|
8天前
|
XML 前端开发 API
颠覆传统!AJAX、Fetch API与Python后端,开启Web开发新篇章!
【7月更文挑战第14天】Web开发中,AJAX作为异步通信先驱,与新兴的Fetch API一起革新交互体验。Fetch基于Promise,简化了请求处理。Python后端,如Flask,提供稳定支撑。这三者的融合,推动Web应用达到新高度,实现高效、实时交互。通过示例展示,我们看到从发送请求到更新UI的流畅过程,以及Python如何轻松返回JSON数据。这种组合揭示了现代Web开发的潜力和魅力。
12 0