python爬虫必备的基本知识-程序员宅基地

技术标签: 爬虫  python  Python学习记录  开发语言  

一、爬虫的概念

1为什么要学习爬虫

​ 如今我们所处的时代就是一个大数据时代,很多公式都在开展相关数据业务,但是人工智能,大数据中有一个至关重要的东西,那就是数据,但是我们的数据从哪里来呢?

1.1数据的来源
  • 去第三方的公司购买数据(比如企查查)
  • 去免费的数据网站下载数据(比如国家统计局)
  • 通过爬虫爬取数据
  • 人工收集数据(比如问卷调查)

在上面的来源中:人工的方式费时费力,免费的数据网站上的数据质量不佳,很多第三方的数据公司他们的数据来源往往也是爬虫获取的,所以获取数据最有效的途径就是通过爬虫爬取

1.2爬取到的数据用途
  • 进行在网页或者是app上进行展示

今日热榜,一家并不是做新闻的公司,这个网站上的新闻数据从哪里来的呢?

通过点击,我们可以发现,他的新闻数据都是其他网站上的,在今日热榜上仅仅做了展示

如果后续我们要做一个网站,IT新闻热榜,是不是也可以这样做呢

  • 进行数据分析或者是机器学习相关的项目

2.什么是爬虫

网络爬虫(又被称为网页蜘蛛,网络机器人)就是模拟浏览器发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的程序。

原则上,只要是浏览器(客户端)能做的事情,爬虫都能够做

二、爬虫的分类与爬虫的流程

1.爬虫的分类

根据被爬网站的数量的不同,我们把爬虫分为:

2.爬虫的流程

  • 2.1获取到资源地址

爬虫首先要做的工作就是获取数据的资源地址,有了准确的地址之后我们才能数据去进行发送请求

  • 2.2发送请求获取数据

第二步要做的工作就是获取网页,这里就是获取网页的源代码。源代码里包含了网页的部分有用信息,所以 只要把源代码获取下来,就可以从中提取想要的信息了。

  • 2.3提取信息

获取网页源代码后,接下来就是分析网页源代码,从中提取我们想要的数据。首先,最通用的方法便是采用正则表达式提取,这是一个万能的方法,但是在构造正则表达式时比较复杂且容易出错。 另外,由于网页的结构有一定的规则,所以还有一些根据网页节点属性、CSS选择器或 XPath来提取网页信息的库,如Beautiful Soup、pyquery、lxml 等。使用这些库,我们可以高效快速地从中提取网页信 息,如节点的属性、文本值等。 提取信息是爬虫非常重要的部分,它可以使杂乱的数据变得条理清晰,以便我们后续处理和分析数据。

  • 2.4保存数据

提取信息后,我们一般会将提取到的数据保存到某处以便后续使用。这里保存形式有多种多样,如可以简单保 存为 TXT 文本或 JSON 文本,也可以保存到数据库,如 MySQL 和 MongoDB 等,也可保存至远程服务 器,如借助 SFTP 进行操作等。

三、HTTP基本原理

1、 URL

URL 的全称为 Universal Resource Locator,即统一资源定位符。

列子:
https://www.baidu.com/item/10056474?fr=aladdin http://IP:port/资源路径/?wd=python#flg
协议 :这代表网页使用的请求协议

域名部分:该URL的域名部分为“www.baidu.com”。一个URL中,也可以使用IP地址作为域名使用:202.108.22.5

端口部分:跟在域名后面的是端口,域名和端口之间使用“:”作为分隔符。端口不是一个URL必须的部分,如果省略端口部分。

资源部分:从域名后的最后一个“/”开始到“?”为止,是资源部分

查询参数:从“?”开始到“#”为止之间的部分为参数部分,又称搜索部分、查询部分

2、超文本

其英文名称叫作 hypertext,我们在浏览器里看到的网页就是超文本解析而成的,其网页源代码是一系列 HTML 代码,里面包含了一系列标签,比如 img 显示图片,p 指定显示段落等。浏览器解析这些标签后,便形成了我们平常看到的网页,而网页的源代码 HTML 就可以称作超文本

3、HTTP和HTTPS

在百度的首页 https://www.baidu.com/,中,URL 的开头会有 http 或 https,这个就是访问资源需 要的协议类型,有时我们还会看到 ftp、sftp、smb 开头的 URL,那么这里的 ftp、sftp、smb 都是指 的协议类型。在爬虫中,我们抓取的页面通常就是 http 或 https 协议的,我们在这里首先来了解一下这 两个协议的含义。

  • HTTP 的全称是 Hyper Text Transfer Protocol,中文名叫做超文本传输协议
    • 超文本传输协议
    • 默认端口号:80
  • HTTPS 的全称是 Hyper Text Transfer Protocol over Secure Socket Layer,是以安全为目标的
    • HTTP + SSL(安全套接字层),即带有安全套接字层的超本文传输协议
    • 默认端口号:443
  • HTTP 通道,简单讲是 HTTP 的安全版,即 HTTP 下加入 SSL 层,简称为 HTTPS

4、HTTP的前世今生

5、HTTP的请求过程

  1. 浏览器先向地址栏中的url发起请求,并获取相应
  2. 在返回的响应内容(html)中,会带有css、js、图片等url地址,以及ajax代码,浏览器按照响应内容中的顺序依次发送其他的请求,并获取相应的响应
  3. 浏览器每获取一个响应就对展示出的结果进行添加(加载),js,css等内容会修改页面的内容,js也可以重新发送请求,获取响应
  4. 从获取第一个响应并在浏览器中展示,直到最终获取全部响应,并在展示的结果中添加内容或修改————这个过程叫做浏览器的渲染

注意:

但是在爬虫中,爬虫只会请求url地址,对应的拿到url地址对应的响应(该响应的内容可以是html,css,js,图片等)

浏览器渲染出来的页面和爬虫请求的页面很多时候并不一样

所以在爬虫中,需要以url地址对应的响应为准来进行数据的提取

四、HTTP请求的形式

请求,由客户端向服务端发出,可以分为 4 部分内容:请求方法(Request Method)、请求的网址 (Request URL)、请求头(Request Headers)、请求体(Request Body)。

1、请求方法

作用:让协议清楚的知道,客户端发送了一个什么类型的‘动作指令’

方 法 描 述
GET 请求页面,并返回页面内容
HEAD 类似于 GET 请求,只不过返回的响应中没有具体的内容,用于获取报头
POST 大多用于提交表单或上传文件,数据包含在请求体中
PUT 从客户端向服务器传送的数据取代指定文档中的内容
DELETE 请求服务器删除指定的页面
CONNECT 把服务器当作跳板,让服务器代替客户端访问其他网页
OPTIONS 允许客户端查看服务器的性能
TRACE 回显服务器收到的请求,主要用于测试或诊断

2、请求的网址

请求的网址,即统一资源定位符 URL,它可以唯一确定我们想请求的资源。

3、请求头

Host (主机和端口号)
Connection (链接类型)
Upgrade-Insecure-Requests (升级为HTTPS请求)
User-Agent (浏览器名称)
Accept (传输文件类型)
Referer (页面跳转处)
Accept-Encoding (文件编解码格式)
Cookie (Cookie)
x-requested-with XMLHttpRequest (表示该请求是Ajax异步请求)

4、请求体

请求体一般承载的内容是 POST 请求中的表单数据,而对于 GET 请求,请求体则为空。

5、响应

响应,由服务端返回给客户端,可以分为三部分:响应状态码(Response Status Code)、响应头 (Response Headers)和响应体(Response Body)。
  1. 响应状态码

    响应状态码表示服务器的响应状态,如 200 代表服务器正常响应,404 代表页面未找到,500 代表服务器内部发生错误。在爬虫中,我们可以根据状态码来判断服务器响应状态,如状态码为 200,则证明成功返回数据,再进行进一步的处理,否则直接忽略。

  2. 常见的状态码及其原因

    状态码 说 明 详 情
    100 继续 请求者应当继续提出请求。服务器已收到请求的一部分,正在等待其余部分
    101 切换协议 请求者已要求服务器切换协议,服务器已确认并准备切换
    200 成功 服务器已成功处理了请求
    201 已创建 请求成功并且服务器创建了新的资源
    202 已接受 服务器已接受请求,但尚未处理
    203 非授权信息 服务器已成功处理了请求,但返回的信息可能来自另一个源
    204 无内容 服务器成功处理了请求,但没有返回任何内容
    205 重置内容 服务器成功处理了请求,内容被重置
    206 部分内容 服务器成功处理了部分请求
    300 多种选择 针对请求,服务器可执行多种操作
    301 永久移动 请求的网页已永久移动到新位置,即永久重定向
    302 临时移动 请求的网页暂时跳转到其他页面,即暂时重定向
    303 查看其他位置 如果原来的请求是 POST,重定向目标文档应该通过 GET 提取
    304 未修改 此次请求返回的网页未修改,继续使用上次的资源
    305 使用代理 请求者应该使用代理访问该网页
    307 临时重定向 请求的资源临时从其他位置响应
    400 错误请求 服务器无法解析该请求
    401 未授权 请求没有进行身份验证或验证未通过
    403 禁止访问 服务器拒绝此请求
    404 未找到 服务器找不到请求的网页
    405 方法禁用 服务器禁用了请求中指定的方法
    406 不接受 无法使用请求的内容响应请求的网页
    407 需要代理授权 请求者需要使用代理授权
    408 请求超时 服务器请求超时
    409 冲突 服务器在完成请求时发生冲突
    410 已删除 请求的资源已永久删除
    411 需要有效长度 服务器不接受不含有效内容长度标头字段的请求
    412 未满足前提条件 服务器未满足请求者在请求中设置的其中一个前提条件
    413 请求实体过大 请求实体过大,超出服务器的处理能力
    414 请求 URI 过长 请求网址过长,服务器无法处理
    415 不支持类型 请求格式不被请求页面支持
    416 请求范围不符 页面无法提供请求的范围
    417 未满足期望值 服务器未满足期望请求标头字段的要求
    500 服务器内部错误 服务器遇到错误,无法完成请求
    501 未实现 服务器不具备完成请求的功能
    502 错误网关 服务器作为网关或代理,从上游服务器收到无效响应
    503 服务不可用 服务器目前无法使用
    504 网关超时 服务器作为网关或代理,但是没有及时从上游服务器收到请求
    505 HTTP 版本不支持 服务器不支持请求中所用的 HTTP 协议版本
  3. 响应头

    响应头包含了服务器对请求的应答信息,如 Content-Type、Server、Set-Cookie 等。下面简要说明一

    些常用的头信息。

    • Date:标识响应产生的时间。
    • Last-Modified:指定资源的最后修改时间。
    • Content-Encoding:指定响应内容的编码。
    • Server:包含服务器的信息,比如名称、版本号等。
    • Content-Type:文档类型,指定返回的数据类型是什么,如 text/html 代表返回 HTML 文档,
    • application/x-javascript 则代表返回 JavaScript 文件,image/jpeg 则代表返回图片。
    • Set-Cookie:设置 Cookies。响应头中的 Set-Cookie 告诉浏览器需要将此内容放在 Cookies 中,下次请求携带 Cookies 请求。
    • Expires:指定响应的过期时间,可以使代理服务器或浏览器将加载的内容更新到缓存中。如果再次访问时,就可以直接从缓存中加载,降低服务器负载,缩短加载时间。
  4. 响应体

    最重要的当属响应体的内容了。响应的正文数据都在响应体中,比如请求网页时,它的响应体就是网页的 HTML 代码;请求一张图片时,它的响应体就是图片的二进制数据。我们做爬虫请求网页后,要解析的内容就是响应体
    在浏览器开发者工具中点击 预览,就可以看到网页的源代码,也就是响应体的内容,它是解析的目标。在做爬虫时,我们主要通过响应体得到网页的源代码、JSON 数据等,然后从中做相应内容的提取。

五、浏览器开发者工具的使用

1. 开发者工具打开的方式与语言设置(推荐使用Chrome浏览器)

  • (1)在对应网页页面,右键网站----选择“检查”选项
  • (2)按“F12”按钮
  • (3)点击浏览器右上角‘设置按钮’–>点击更多工具’'–>在点击"开发者工具"

将开发者工具的语言设置成中文:打开开发者工具后点击设置图标 – 在外观一栏将语言设置成中文

2.开发者工具各个标题的作用

  • 第一框:定位元素代码位置,方便快速选中html标签信息(也可以直接在你想看的数据鼠标右击点击检查)

  • 第二个框:是用于屏幕适配的,也就是传说中的chrom能够调试各种移动设备的屏幕分辨率。

  • 元素面板:该标签使用来查看页面的HTML标签元素的,能够也就是查看源码,我们可以看到布局,可以看到用到的样式,还有用到的链接等等。

  • 控制台面板:这个就是一个web控制台

  • 源代码面板:这个是显示资源文件的

    1. 该选择框使用来选择资源的,当网页被加载的时候向服务器端请求出来的文件包括.html .ccs .js这样的文件
    2. 这个地方使用来调试js代码的地方,这个非常重要,看到行号上面有蓝色的标签,这个标签就是断点,当我们需要调试程序的时候打一个断点,然后通过3这个工具栏进行调试,那么调试过程就不详细解释,也就是打一个断点然后刷新页面程序会调到你打断点的地方,然后通过4来查看程序中变量的值什么的。
    3. 3中的标签,第一个是停止状态的按钮就是表示程序是否停止(在debug时),后面的是程序继续跳过方法,跳过下一个语句,调到上一个语句
    4. 配合debug模式来展示调用的参数信息和调用的栈堆函数
  • 网络面板:这个就是抓包常用的工具,可以拦截客户端和服务端的交互数据信息

    1. 控制器 控制网络的外观和功能。
    2. 过滤器 控制请求表具体显示哪些内容。
    3. 概述 显示获取到资源的时间轴信息。
    4. 请求表 按资源获取的前后顺序显示所有获取到的资源信息,点击资源名可以查看该资源的详细信息。
    5. 摘要 显示总的请求数、数据传输量、加载时间信息。
  • 网络面板的请求资源面板

    1. 名称 资源名称,点击名称可以查看资源的详情情况,包括Headers、Preview、Response、Cookies、Timing。
    2. 状态 HTTP状态码。
    3. 类型 请求的资源MIME类型。
    4. 启动器 标记请求是由哪个对象或进程发起的(请求源)。
    5. 大小 从服务器下载的文件和请求的资源大小。如果是从缓存中取得的资源则该列会显示(from cache)
    6. 时间 请求或下载的时间,从发起Request到获取到Response所用的总时间。
    7. 瀑布 显示所有网络请求的可视化瀑布流(时间状态轴),点击时间轴,可以查看该请求的详细信息,点击列头则可以根据指定的字段可以排序。
  • 查看具体的资源请求

    通过点击某个资源的Name可以查看该资源的详细信息,根据选择的资源类型显示的信息也不太一样,可能包括如下Tab信息:

    1. 表头 该资源的HTTP头信息。

      在Headers标签里面可以看到URL、请求方法、状态码、远程地址 等基本信息和详细的http响应头、http请求头等信息。

    2. 载荷 请求地址的查询关键字和post请求携带的参数信息

    3. 预览 根据你所选择的资源类型(JSON、图片、文本)显示相应的预览。

    4. 响应 显示HTTP的Response信息。

    5. 启动器 标记请求是由哪个对象或进程发起的(请求源)

    6. 时间 显示资源在整个请求生命周期过程中各部分花费的时间。

    7. Cookies 显示资源HTTP的Request和Response过程中的Cookies信息。

      如果选择的资源在Request和Response过程中存在Cookies信息,则Cookies标签会自动显示出来,在里面可以查看所有的Cookies信息。

六、会话和Cookies

在浏览网站的过程中,我们经常会遇到需要登录的情况,有些页面只有登录之后才可以访问,而且登录之后可以连续访问很多次网站,但是有时候过一段时间就需要重新登录。还有一些网站,在打开浏览器时就自动登录了,而且很长时间都不会失效,这种情况又是为什么?其实这里面涉及会话(Session)和 Cookies 的相关知识,本节就来揭开它们的神秘面纱

1、无状态 HTTP

在了解会话和 Cookies 之前,我们还需要了解 HTTP 的一个特点,叫作无状态。

  1. 会话

    会话,其本来的含义是指有始有终的一系列动作 / 消息。比如,打电话时,从拿起电话拨号到挂断电话这中间的一系列过程可以称为一个会话。

  2. Cookies

    Cookies 指某些网站为了辨别用户身份、进行会话跟踪而存储在用户本地终端上的数据。

  3. Cookies 列表

    • Name,即该 Cookie 的名称。Cookie 一旦创建,名称便不可更改
    • Value,即该 Cookie 的值。如果值为 Unicode 字符,需要为字符编码。如果值为二进制数据,则需要使用 BASE64 编码。
    • Max Age,即该 Cookie 失效的时间,单位秒,也常和 Expires 一起使用,通过它可以计算出其有效时间。Max Age 如果为正数,则该 Cookie 在 Max Age 秒之后失效。如果为负数,则关闭浏览器时 Cookie 即失效,浏览器也不会以任何形式保存该 Cookie。
    • Path,即该 Cookie 的使用路径。如果设置为 /path/,则只有路径为 /path/ 的页面可以访问该 Cookie。如果设置为 /,则本域名下的所有页面都可以访问该 Cookie。
    • Domain,即可以访问该 Cookie 的域名。例如如果设置为 .zhihu.com,则所有以zhihu.com,结尾的域名都可以访问该 Cookie。
    • Size 字段,即此 Cookie 的大小。
    • Http 字段,即 Cookie 的 httponly 属性。若此属性为 true,则只有在 HTTP Headers 中会带有此 Cookie 的信息,而不能通过 document.cookie 来访问此 Cookie。
    • Secure,即该 Cookie 是否仅被使用安全协议传输。安全协议。安全协议有 HTTPS,SSL 等,在网络上传输数据之前先将数据加密。默认为 false

七、socket介绍

1.什么是socket?

参考:http://c.biancheng.net/socket/

什么是 Socket?

Socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求,使主机间或者一台计算机上的进程间可以通讯。

三次握手 四次挥手

包与包之间的交换 TCP 协议

方法 描述
connect( (host,port) ) host代表服务器主机名或IP,port代表服务器进程所绑定的端口号。
send 发送请求信息
recv 接收数据

2.案列:使用socket下载一张图片

import socket
import re

# 获取到资源地址
url = 'http://image11.m1905.cn/uploadfile/2021/0922/thumb_0_647_500_20210922030733993182.jpg'
# 创建套接字对象
client = socket.socket()
# 创建连接
client.connect(('image11.m1905.cn', 80))
# 构造http请求
http_res = 'GET ' + url + ' HTTP/1.0\r\nHost: image11.m1905.cn\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36\r\n\r\n'
# 发送请求
client.send(http_res.encode())
# 建立一个二进制对象用来存储我们得到的数据
result = b''
data = client.recv(1024)
# 循环接收响应数据 添加到bytes类型
while data:
    result += data
    data = client.recv(1024)
print(result)
# 提取数据
# re.S使 . 匹配包括换行在内的所有字符 去掉响应头
images = re.findall(b'\r\n\r\n(.*)', result, re.S)
# print(images[0])
# 打开一个文件,将我们读取到的数据存入进去,即下载到本地我们获取到的图片
with open('小姐姐.png', 'wb')as f:
    f.write(images[0])

注意

在HTTP1.0和HTTP1.1协议中都有对KeepAlive的支持。其中HTTP1.0需要在请求头中增加”Connection: keep-alive“ header才能够支持。所以默认情况下,Http1.1为Keep-alive,接收完一个报文后,TCP连接不关闭,Receive()还在等待接收数据而不返回;如果HTTP1.1版本的HTTP请求报文不希望使用长连接,则要在HTTP请求报文首部加上Connection: close

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_48425292/article/details/136633219

智能推荐

Lua编程时遇到的一个错误:attempt to index upvalue-程序员宅基地

文章浏览阅读4k次。最近用OpenResty开发一个产品。新学Lua语言,写了不少脚本。前几天遇到这么一个运行时错误:2022/01/21 18:57:01 [error] 581744#0: *74 lua entry thread aborted: runtime error: /opt/lua/blacklist.lua:98: attempt to index upvalue 'actions' (a number value)简化一下,blacklist.lua代码如下:local actions =_attempt to index upvalue

【Unity API】3---GameObject_unity new gameobject()参数-程序员宅基地

文章浏览阅读425次。1.创建游戏物体的三种方法 public GameObject prefab; // Use this for initialization void Start () { //1.第一种创建方法 GameObject go = new GameObject("Cube"); //2.第二种 ,可以实例化特效或者角色等等 ..._unity new gameobject()参数

python知识图谱问答系统代码_医疗知识图谱问答系统探究(一)-程序员宅基地

文章浏览阅读522次。这是 阿拉灯神丁Vicky 的第 23 篇文章1、项目背景为通过项目实战增加对知识图谱的认识,几乎找了所有网上的开源项目及视频实战教程。果然,功夫不负有心人,找到了中科院软件所刘焕勇老师在github上的开源项目,基于知识图谱的医药领域问答项目QABasedOnMedicaKnowledgeGraph。用了两个晚上搭建了两套,Mac版与Windows版,哈哈,运行成功!!!从无到有搭建一个以疾病为..._chat_graph.py

hdu 3986 Harry Potter and the Final Battle(最短路+枚举删边)_3986 harry potter and the final battle 枚举+最短路(删掉任意-程序员宅基地

文章浏览阅读899次。Harry Potter and the Final BattleTime Limit: 5000/3000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 1741 Accepted Submission(s): 487Problem Descript_3986 harry potter and the final battle 枚举+最短路(删掉任意一条边的最长最短

python开发节目程序_python获取央视节目信息-程序员宅基地

文章浏览阅读342次。# -*- coding: utf-8 -*-#---------------------------------------# 程序:cctv节目表抓取# 作者:lqf# 日期:2013-08-09# 语言:Python 2.7# 功能:抓取央视的节目列表信息#---------------------------------------import stringimport..._python获取电视直播节目单

如何用C语言实现OOP-程序员宅基地

文章浏览阅读1.6k次,点赞5次,收藏18次。我们知道面向对象的三大特性分别是:封装、继承、多态。很多语言例如:C++ 和 Java 等都是面向对象的编程语言,而我们通常说 C 是面向过程的语言,那么是否可以用 C 实现简单的面向对象..._c语言如何实现oop编程

随便推点

Bean creation exception on FactoryBean type check: org.springframework.beans.factory.UnsatisfiedDepe_bean creation exception on non-lazy factorybean ty-程序员宅基地

文章浏览阅读1.9w次。Bean creation exception on FactoryBean type check: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name xxxspring bean创建失败我的是ssm项目,项目已启动就报错,mapper接口和mapper的..._bean creation exception on non-lazy factorybean type check: org.springframew

Dan Abramov - [Just JavaScript] 01 Mental Models(心智模型) 随便翻译一下_justjavascrpit-程序员宅基地

文章浏览阅读779次。是翻译的订阅邮件,非原创,下方有英文原文。看一下这段代码:let a = 10;let b = a;a = 0;运行后a和b的值是多少?在进一步阅读之前,先理解它。如果你已经写了一段时间的js,你可能会存疑:“我每天写的代码比这有难度多了,重点是啥?”本练习的目的不是要想你介绍这些变量,相反,假设你已经十分熟悉这些,本练习的目的是为了然你构建起相应的心智模型。什么是心智模型..._justjavascrpit

嵌入式系统的事件驱动型编程技术_[论文阅读笔记]区块链系统中智能合约技术综述...-程序员宅基地

文章浏览阅读276次。区块链系统中智能合约技术综述范吉立 李晓华 聂铁铮 于戈《计算机科学》2019年8月14页,56个参考文献框架1 引言2 区块链中的智能合约语言2.1 智能合约语言2.2 比特币脚本语言图2.3 以太坊灵完备型语言2.3.1 Solidity语言2.3.2 Serpent语言2.4 可验证型语言Pact2.5 超级账本智能合约语言2.6 开发语言的对比3 区块链中智能合约的实现技术3.1 嵌..._嵌入式事件驱动编程

python嵌入式开发实战_Python和PyQT来开发嵌入式ARM界面如何实现-程序员宅基地

文章浏览阅读386次。Python是一种跨平台的计算机程序设计语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发1)。 简介随着Python在互联网人工智能领域的流行,大家也慢慢感受到Python开发的便利,本文就基于嵌入式ARM平台,介绍使用Python配合PyQT5模块来开发图形化应用程序。本文所演示的ARM平台..._qt for python可以写入嵌入式设备吗

python rabbitmq 多任务类型_rabbitmq常用的三种exchange类型和python库pika接入rabbitmq-程序员宅基地

文章浏览阅读108次。现在很多开源软件都提供了对应的web管理界面,rabbitmq也不例外,rabbitmq提供了一个web插件。当rabbit-server启动之后,即在浏览器中通过http://localhost:15672/地址访问页面,提供一个比命令rabbitmqctl更友好的学习rabbitmq的方式。可以简单方便的通过配置rabbitmq,并可以向exchange和queue中发消息来验证自己的理解。如..._python rabbitmq exchange_bind

关于达梦数据库数据迁移工具的使用方法(DTS)_达梦迁移工具使用方法-程序员宅基地

文章浏览阅读5.1k次。达梦DTS工具的使用,适用于简单的数据迁移_达梦迁移工具使用方法