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)

读出结果

相关文章
|
5天前
|
API PHP 开发者
速卖通商品详情接口(速卖通API系列)
速卖通(AliExpress)是阿里巴巴旗下的跨境电商平台,提供丰富的商品数据。通过速卖通开放平台(AliExpress Open API),开发者可获取商品详情、订单管理等数据。主要功能包括商品搜索、商品详情、订单管理和数据报告。商品详情接口aliexpress.affiliate.productdetail.get用于获取商品标题、价格、图片等详细信息。开发者需注册账号并创建应用以获取App Key和App Secret,使用PHP等语言调用API。该接口支持多种请求参数和返回字段,方便集成到各类电商应用中。
|
9天前
|
JSON 数据可视化 API
Python 中调用 DeepSeek-R1 API的方法介绍,图文教程
本教程详细介绍了如何使用 Python 调用 DeepSeek 的 R1 大模型 API,适合编程新手。首先登录 DeepSeek 控制台获取 API Key,安装 Python 和 requests 库后,编写基础调用代码并运行。文末包含常见问题解答和更简单的可视化调用方法,建议收藏备用。 原文链接:[如何使用 Python 调用 DeepSeek-R1 API?](https://apifox.com/apiskills/how-to-call-the-deepseek-r1-api-using-python/)
|
11天前
|
JSON API 数据格式
微店商品列表接口(微店 API 系列)
微店商品列表接口是微店API系列的一部分,帮助开发者获取店铺中的商品信息。首先需注册微店开发者账号并完成实名认证,选择合适的开发工具如PyCharm或VS Code,并确保熟悉HTTP协议和JSON格式。该接口支持GET/POST请求,主要参数包括店铺ID、页码、每页数量和商品状态等。响应数据为JSON格式,包含商品详细信息及状态码。Python示例代码展示了如何调用此接口。应用场景包括商品管理系统集成、数据分析、多平台数据同步及商品展示推广。
|
3天前
|
JSON 前端开发 API
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
24 5
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
|
2天前
|
监控 供应链 搜索推荐
亚马逊商品详情接口(亚马逊 API 系列)
亚马逊作为全球最大的电商平台之一,提供了丰富的商品资源。开发者和电商从业者可通过亚马逊商品详情接口获取商品的描述、价格、评论、排名等数据,对市场分析、竞品研究、价格监控及业务优化具有重要价值。接口基于MWS服务,支持HTTP/HTTPS协议,需注册并获得API权限。Python示例展示了如何使用mws库调用接口获取商品详情。应用场景包括价格监控、市场调研、智能选品、用户推荐和库存管理等,助力电商运营和决策。
44 23
|
3天前
|
JSON 数据挖掘 API
lazada商品详情接口 (lazada API系列)
Lazada 是东南亚知名电商平台,提供海量商品资源。通过其商品详情接口,开发者和商家可获取商品标题、价格、库存、描述、图片、用户评价等详细信息,助力市场竞争分析、商品优化及库存管理。接口采用 HTTP GET 请求,返回 JSON 格式的响应数据,支持 Python 等语言调用。应用场景包括竞品分析、价格趋势研究、用户评价分析及电商应用开发,为企业决策和用户体验提升提供有力支持。
48 21
|
8天前
|
API 文件存储 数据安全/隐私保护
python 群晖nas接口(一)
这段代码展示了如何通过群晖NAS的API获取认证信息(SID)并列出指定文件夹下的所有文件。首先,`get_sid()`函数通过用户名和密码登录NAS,获取会话ID(SID)。接着,`list_file(filePath, sid)`函数使用该SID访问FileStation API,列出给定路径`filePath`下的所有文件。注意需替换`yourip`、`username`和`password`为实际值。
49 18
|
4天前
|
数据采集 JSON 监控
速卖通商品列表接口(以 AliExpress Affiliate 商品查询 API 为例)
以下是使用 Python 调用速卖通商品列表接口(以 AliExpress Affiliate 商品查询 API 为例)的代码示例。该示例包含准备基础参数、生成签名、发送请求和处理响应等关键步骤,并附有详细注释说明。代码展示了如何通过公共参数和业务参数构建请求,使用 HMAC-SHA256 加密生成签名,确保请求的安全性。最后,解析 JSON 响应并输出商品信息。此接口适用于商品监控、数据采集与分析及商品推荐等场景。注意需通过 OAuth2.0 获取 `access_token`,并根据官方文档调整参数和频率限制。
|
5天前
|
存储 搜索推荐 API
淘宝拍立淘按图搜索API接口系列概述
淘宝拍立淘按图搜索API接口允许用户通过上传图片或拍摄实物来搜索相似或相同的商品。这一功能主要依赖于图像识别技术,系统会对上传的图片进行分析和处理,提取出商品的特征信息,并在淘宝的商品数据库中进行匹配搜索,最终返回与上传图片相似或相同的商品列表。
|
4天前
|
JSON 监控 API
速卖通商品列表接口(速卖通API系列)
速卖通提供商品列表API,开发者可通过关键词、类目、价格范围等条件获取商品标题、价格、销量等基本信息。使用前需注册开发者账号、创建应用并授权获取access_token。Python示例代码展示了如何调用接口,返回JSON格式数据,包含商品列表、总数、页码等信息。应用场景包括商品监控、数据分析和个性化推荐。注意API会更新,请参考官方文档。

热门文章

最新文章