当前位置: 首页 > news >正文

Python 爬虫开发完整环境部署,爬虫核心框架安装

Python 爬虫开发完整环境部署

前言:

​ 关于本篇笔记,参考书籍为 《Python 爬虫开发实战3 》 笔记做出来的一方原因是为了自己对 Python 爬虫加深认知,一方面也想为大家解决在爬虫技术区的一些问题,本篇文章所使用的环境为:python 3.6.2 64 位
在此其中,我们可能会碰到不兼容的问题,所以有些软件会降低版本来达到兼容,其实这一点大家没必要较真,一个 python 版本,或者一个库的版本,都代表着一个时间,随着 python3 的出现,就代表着 python2 的不兼容,那么库于库之间,代码于代码之间,就会存在一种依存关系,有些库会更新,而有的就不会跟新,但旧的不代表它已经被淘汰,而是一代技术的成熟,以上是我对版本迭代的思考。
我想,以我现在的水平,还达不到窥探源码来修改这些不兼容的问题,所以既然不兼容,那么我就来兼容它即可,python 亦是如此。

0x01 请求库的安装

爬虫可以简单分为几步:抓取页面,分析页面,存储数据
当我们在抓取页面的时候,需要模拟浏览器向服务器发出请求,所以需要用到一些 python 库来实现 HTTP 请求操作
这里,我们出现了三个库 requests,Selenium,aiohttp
install
请求库:
C:\Users\yangh>pip install requests
'标准请求库'C:\Users\yangh>pip install selenium 
'Selenium是一个自动化测试工具,利用它我们可以驱动浏览器执行特定的动作,如点击、下拉等操作。对于一些JavaScript渲染的页面来说,这种抓取方式非常有效。下面我们来看看Selenium的安装过程'C:\Users\yangh>pip3 install aiohttp
'异步请求抓取数据'C:\Users\yangh>pip3 install cchardet aiodns
'字符集编码库,与加速 DNS 解析库 'Software:
ChromeDriver['Chrome 对应']:https://chromedriver.storage.googleapis.com/index.html
GeckoDriver['Firefox 对应']:https://github.com/mozilla/geckodriver/releases
ChromeDriver 安装简介
作用:配合 selenium 库,来达到与浏览器配合,能够与 chrome 配合
  1. 先进入网站:https://chromedriver.storage.googleapis.com/index.html

查看 Chrome 版本
img
下载对应版本软件

配置环境变量,并把其放在 python/Script 目录下

验证

img

GeckoDriver 安装简介
作用:配合 selenium 库,来达到与浏览器配合,能够与 firefox 配合

GeckoDriver 安装也与之大同小异,直接下载最新版,然后对应 64/32 解压,拖到 …/python/Script/

验证

img

PhantomJS 安装简介
作用:PhantomJS 是一个无界面的、可脚本编程的WebKit浏览器引擎,它原生支持多种Web标准:DOM操作、css选择器、JSON、Canvas以及SVG。Selenium支持PhantomJS,这样在运行的时候就不会再弹出一个浏览器了。而且PhantomJS的运行效率也很高,还支持各种参数配置
  • 官方网站:http://phantomjs.org
  • 官方文档:http://phantomjs.org/quick-start.html
  • 下载地址:http://phantomjs.org/download.html
  • API接门说明:http://phantomjs.org/api/command-line.html

PhantomJS 与 ChromeDriver 配置操作一样,添加到 python/Script 文件夹,然后加入环境变量

验证
这里,由于不想修改 selenium 版本,就没安装完毕

0x02 解析库安装

    在抓取网页代码之后,下一步就是提取网站中的信息,提取信息的方式有多种多样,可以使用正则来提取,'但是正则写起来会相对比较繁琐'。这里还有许多强大的解析库,如,'lxml,Beautiful Soup,pyquery'等,此外还提供了非常强大的解析方法,如 'XPath 解析和 CSS 选择器解析等',利用他们我们可以高效的从网页中提取有效信息
install
1:C:\Users\yangh>pip3 install lxml
2:C:\Users\yangh>pip3 install beautifulsoup4 (beautifulsoup4 即 bs4)
3:C:\codeEnvironment\python\wheel>pip3 insatll pyquery-1.4.3-py3-none-any.whl
4:C:\Users\yangh>pip install pillow
lxml 参考
lxml 是 python 的一个解析库,支持 HTML 和 XML 的解析,支持 XPath 解析方式

官方网站:http://lxml.de

GitHub:https://github.com/lxml/lxml

PyPI:https://pypi.python.org/pypi/lxml

Beautiful Soup 参考
Beautiful Soup 是 Python 的一个 HTML 或 XML 解析库,我们可以用它方便地从网页中提取数据,它拥有强大的 API 和多样的 解析方式

官方文档:https://www.crummy.com/software/Beautifu1Soup/bs4/doc

中文文档:https://www.crummy.com/software/Beautifu!Soup/bs4/doc.zh

PyPI:https://pypi.python.org/pypi/beautifulsoup4

Test Beautiful soup4
>>> from bs4 import BeautifulSoup
>>> soup = BeautifulSoup('<p>Hello</p>','lxml')
>>> print(soup.p.string)
Hello只要输出 hello 即成功
pyquery 参考
url:https://pypi.org/project/pyquery/#files
pyquery 同样是一个强大的页面解析工具,它提供了和 Jquery 类似的语法来解析 HTML 文档,支持 CSS 选择器
参考链接
  • GitHub:https://github.com/gawel/pyquery
  • PyPI:https://pypi.python.org/pypi/pyquery
  • 官方文档:http://pyquery.readthedocs.io
resserocr 参考
在爬虫过程中,难免会遇到各种各样的验证码,而大多数验证码还是 '图形验证码',这时候我们就可以直接用 OCR 来识别tesserocr 是 Python 的一个OCR识别库,但其实是对tesseract做的一层PythonAPI封装,所以它的核心是tesseract。因此,在安装tesserocr之前,我们需要先安装 tesseract
相关链接
  1. tesserocrGitHub: https://github.com/sirfz/tesserocr
  2. tesserocrPyPI: https://pypi.python.org/pypi/tesserocr
  3. tesseract 下载地址:http://digi.bib.uni-mannheim.de/tesseract[^ 下载来后,全勾上安装即可]
  4. tesseractGitHub : https://github.com/tesseract-ocr/tesseract
  5. tesseract 语言包:https://github.com/tesseract-ocr/tessdata
  6. tesseract 文档:https://github.com/tesseract-ocr/tesseract/wiki/Documentation
  7. Releases · simonflueckiger/tesserocr-windows_build (github.com)[^ 到这里下载 wheel 文件]

下载安装好后,直接进 OCR 目录:Tesseract-OCR ,复制目录 tessdata 粘贴给 python 根目录一份即可完成安装

验证

测试 tesserocr
img
若正常输出图片内容,则安装成功

测试 tesseract
img

0x03 数据库的安装

作为数据存储的重要部分,数据库同样是必不可少的,数据库可以分为关系型数据库,和非关系型数据库(NOsql),
关系型数据库如:SQLite、MySQL、Oracle、SQL Server、DB2
非关系型数据库:MongoDB、Redis,他们存储形式是键值对,存储形式更加灵活以下,我们来介绍三种数据库,Mysql 以及 MongoDB、Redis
MySQL 安装参考

下载地址:https://www.mysql.com/cn/downloads

也可以通过国内的 phpstudy 一键搭建

注意,通过官网下载的需要开启本地服务 MySQL

MongoDB 的安装
    MongoDB 是由 C++ 语言编写的非关系型数据库,是一个基于分布式文件存储的开源数据库系统,其内容存储形式类似JSON对象,它的字段值可以包含其他文档、数组及文档数组,非常灵活。MongoDB支持多种平台,包括Windows、Linux、MacOS、Solaris等,在其官方网站(https://www. mongodb.com/download-center)均可找到对应的安装包。
  • 官方网站:https://www.mongodb.com
  • 官方文档:https://docs.mongodb.com
  • GitHub:https://github.com/mongodb
  • 中文教程:http://www.runoob.com/mongodb/mongodb-tutorial.html
  • 下载网址:MongoDB Community Download | MongoDB
  • MongoDB安装(超详细)
Redis 安装
  • 官方网站:https://redis.io
  • 官方文档:https://redis.io/documentation
  • 中文官网:http://www.redis.cn
  • GitHub:https://github.com/antirez/redis
  • 中文教程:http://www.runoob.com/redis/redis-tutorial.html
  • RedisDesktop Manager: https://redisdesktop.com
  • Redis Desktop Manager GitHub: https://github.com/uglide/RedisDesktopManager
  • 下载 redis:https://github.com/microsoftarchive/redis/releases
  • 下载 redis 可视化程序:https://wwx.lanzoui.com/it7Eqnacdeh

下载来后一键安装即可默认用户 root 密码 root

0x04 存储库的安装

我们上面只说到存储数据的一个方式,即数据库,但是我们要数据库与我们的 python 交互,那么就需要 '存储库',如   'Mysql 需要安装 PyMySQL','MongoDB 需要安装 PyMongo 等'
PyMySQL 安装
C:\Users\yangh>pip3 install pymysql
验证

img

相关链接
  • GitHub:https://github.com/PyMySQL/PyMySQL
  • 官方文梢:http://pymysql.readthedocs.io/
  • PyPl: https://pypi.python.org/pypi/PyMySQL
PyMongo 安装
C:\Users\yangh>pip3 install pymongo
验证

img

相关链接
  • GitHub:https://github.com/mongodb/mongo-python-driver
  • 官方文档:https://api.mongodb.com/python/current/
  • PyPI: https://pypi.python.org/pypi/pymongo
redis-py 安装
C:\Users\yangh>pip3 install redis
验证
输出如下即成功安装C:\Users\yangh>python
Python 3.6.2 (v3.6.2:5fd33b5, Jul  8 2017, 04:57:36) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import redis
>>> redis.VERSION
(4, 0, 2)
相关链接
  • GitHub:https://github.com/andymccurdy/redis-py
  • 官方文档:https://redis-py.readthedocs.io/
RedisDump 安装
RedisDump 作用与 Redis 的导入导出工具,基于 Ruby 实现,所以需要先下载 'Ruby'
Ruby for windows

访问网站:https://rubyinstaller.org/downloads/ 下载即可

gem 安装

这里我们安装 ruby 后就能使用 gem 命令,来下载 RedisDump
img

验证

img

相关链接
  • GitHub:https://github.com/delano/redis-dump
  • 官方文档:http://delanotes.com/redis-dump
  • Ruby http://www.ruby-lang.org/zh_cn/documentation/installation

0x05 Web 库的安装

    Python 也有 Web 程序服务 'Flask,Django 等',我们可以用他们来开发 '网站' 和 '接口',我们主要拿来做 'API 接口',供 我们的 '爬虫' 使用比如,维护一个嗲鲤齿,代理保存在 Redis 数据库中,我们要将代理池作为一个公共的组件使用,那么如何构建一个方便的平台来供我们获取这些代理呢?最适合的就是 Web 服务提供的 'API 接口','我们只需要请求接口即可获取新的代理'
Flask 安装

Flask 是一个轻量级的 Web 服务程序,它简单、易用、灵活、主要用于 API 服务

C:\Users\yangh>pip3 install flask
验证

img

后面,我们会利用 Flask+Redis 维护动态代理池和 Cookies

相关链接
  • GitHub:https://github.com/pallets/flask
  • 官方文档:http://flask.pocoo.org
  • 中文文档:http://docs.jinkan.org.docs/flask
  • PyPI :https://pypi.python.org/pypi/Flask
Tornado 的安装

Tornado 是一个支持 “异步” 的web框架,通过使用 “非阻塞 I/O 流”,它可以支撑成千上万的开放链接!

C:\Users\yangh>pip3 install tornado
验证

img
img

后面,我们会利用 Tomado+Redis 来搭建一个ADSL拨号代理池

相关链接
  • GitHub:https://github.com/tomadoweb/tomado
  • PyPI:https://pypi.python.org/pypi/tomado
  • 官方文档:http://www.tomadoweb.org

0x06 APP 爬取相关库的安装

    除了 Web 网页,爬虫也可以抓取 'App 的数据',App 中的页面要加载出来,首先需要获取数据,而这些数据一般是通过请求服务器的接口来获取的。由于 App 没有浏览器这种可以比较直观的看到后台请求的工具,所以主要用一些抓包技术来抓取数据

本地测试工具有:

  1. Charles
  2. mitmproxy
  3. mitmdump
  4. Appium

一些简单的接口可以通过 Charles 或 mitmproxy分析,找出规律,然后直接用程序模拟来抓取了,但如果遇到更加复杂的接口,就需要利用 mitmdump 对接 python来抓取到的请求和响应进行实时处理和保存,另外,既然要做规模采集,就需要自动化 App 的操作而不是人工采集,这里我们还会需要一个工具 Appium,它可以像 Selenium 一样对 App 将那些自动化控制,如自动化模拟 App 的点击,下拉等操作

Charles 的安装

下载:https://www.charlesproxy.com/latest-release/download.do

破解:https://www.zzzmode.com/mytools/charles/

安装 CA 证书:
img
img

安装完后可同时设置 Android 于之存在一个局域网,参考以下即可

    如果你的手机是Android系统,可以按照下面的操作进行证书配置。在Android系统中,同样需要设置代理为Charles的代理。设置完毕后,电脑上就会出现一个提示窗口,询问是否信任此设备,此时直接点击Allow按钮即可。接下来,像iOS设备那样,在手机浏览器上打开chls.pro/ssl,这时会出现一个提示框

img

mitmproxy 安装

mitmproxy是一个支持 HTTP 和 HTTPS 的抓包程序,类似 Fiddler,charles功能,只不过,它通过控制台的形式操作。

此外,mitmproxy 还有两个关联组件,一个是 mitmdump,它是 mitmproxy 的命令行接口,利用它可以对接 Python 脚本实现监听后的处理;另一个是mitmweb 它是一个 web 程序,通过它以清除地观察到 mitmproxy 捕获的请求

C:\Users\yangh>pip install mitmproxy==5.0.0

即可查看到 CA 证书

安装 CA 证书

跟着图片步骤走即可
img

证书配置

对于 mitmproxy来说,如果想要截取 HTTPS 请求,就需要设置证书。mitmproxy 在安装后会提供一套 CA 证书,只要客户端信任即可,步骤如下
img
img
img
img

相关链接
  • GitHub:https://github.com/mitmproxy/mitmproxy
  • 官方网站:https://mitmproxy.org
  • PyPI: https://pypi.python.org/pypi/mitmproxy
  • 官方文档:http://docs.mitmproxy.org
  • mitmdump脚本:http://docs.mitmproxy.org/en/stable/scripting/overview.html
  • 下载地址:https://github.com/mitmproxy/mitmproxy/releases
  • DockerHub:https://hub.docker.com/r/mitmproxy/mitmproxy
Appium 安装

首先,需要安装AppiumAppium负责驱动移动端来完成一系列操作,对于iOS设备来说,它使用苹果的UIAutomation来实现驱动;对于Android来说,它使用UIAutomator和Selendroid来实现驱动同时Appium也相当于一个服务器,我们可以向它发送一些操作指令,它会根据不同的指令对移动设备进行驱动,以完成不同的动作。

下载网址:https://github.com/appium/appium-desktop/releases

安装完后即可显示如下即安装成功:
img

以上,我们可以配合 Android 模拟器等来实现即可!

0x07 爬虫核心框架安装

我们直接用 requests、Selenium 等库来写爬虫,如果爬取量不是太大,速度要求不高,是完全可以满足需求的。但是写多了就会发现其内部许多代码和组件是可以重复利用的,如果我们把这些组件抽离出来,将各个功能模块化,就会慢慢形成一个框架雏形,这样慢慢培养它,就像自己养虫子一样,爬虫框架也会越来越来完善。

我们利用框架,就可以不再去关心某些功能的具体实现,只需要关系爬取的逻辑即可。同时也可大大简化代码量,而且框架会变得清晰,爬取效率也会高很多。所以,如果有一定基础,上手框架是一种好的选择。

以下我们主要介绍 pyspider 和 Scrapy 两种框架。

Pyspider 安装
简介:

pyspider是国人 binux 编写的一个网络爬虫框架,它拥有强大的 WebUI、脚本编辑器、任务监控器、项目管理器、结果处理器。同时支持多种数据库后端、多种消息队列、还支持 JavaScript 渲染页面的爬取

安装
C:\Users\yangh>pip3 install pyspider
验证:

img

常见 windows 错误

1:Command ”python setup.py egg_info”failedwith error code 1 in /tmp/pip-build-vXo1W3/pycurl

这是PyCurl安装错误,此时需要安装PyCurl库。从 http://www.lfd.uci.edu/~gohlke/pythonlibs/#pycurl 找到对应的Python版本,然后下载相应的wheel文件即可。比如Windows64位、Python3.6,则需要下载pycurl-7.43.0-cp36-cp36m-win _ amd64.whl,随后用pip安装即可,命令如下

C:\codeEnvironment\python\wheel>pip install pycurl-7.43.0.4-cp36-cp36m-win_amd64.whl

2:若出现报错即直接停止 pyspider 进程,说明 wsgidav ,werkzeug 版本过高,操作如下

C:\Users\yangh>pip uninstall wsgidav
C:\Users\yangh>pip install wsgidav==2.0.1
C:\Users\yangh>python -m pip  uninstall werkzeug
C:\Users\yangh>python -m pip install werkzeug==0.16.1

重新启动 pyspider 即可

相关链接
  • 官方文档:http://docs.pyspider.org
  • PyPI: https://pypi.python.org/pypi/pyspider
  • GitHub:https://github.corn/binux/pyspider
  • 官方教程:http://docs.pyspider.org/en/latest/tutorial
  • 在线实例:http://demo.pyspider.org
  • pyspider 坑参考:https://blog.csdn.net/huangzyi/article/details/114289498
  • 踩坑参考:https://blog.csdn.net/lang_niu/article/details/104501473
  • 踩坑参考:https://blog.csdn.net/qq_39542714/article/details/106835145
  • 踩坑参考:https://blog.csdn.net/weixin_30408675/article/details/97132148
Scrapy 安装

Scrapy 是一个十分强大的爬虫框架,依赖的库比较多,至少需要依赖的库有 Twisted 14.0、lxml 3.4 和 pyOpenSSL 0.14.在不同的平台环境下,它所依赖的库也各不相同,所以在安装 Scrapy 之前,必须把基本库环境安装好,这里笔者只介绍关于 windows 10 的安装

依赖:Anaconda 安装

关于这一种安装方法,大家注意,如果本地已经安装了 Python,就不要用 conda 的安装了,参考后面的安装即可

关于 Anaconda 的安装方式,大家可以去看这篇文章:

https://blog.csdn.net/ITLearnHall/article/details/81708148)

在此不再赘述

安装好后直接输出该命令即可安装完毕:conda install Scrapy

依赖 lxml 安装
C:\Users\yangh>pip install lxml
依赖 pyOpenSSL

关于 pyOpenSSL 直接去官网下载 whl 文件安装即可:https://pypi.python.org/pypi/pyOpenSSL#downloads

C:\codeEnvironment\python\wheel>pip install pyOpenSSL-17.2.0-py2.py3-none-any.whl
依赖 Twisted 安装

下载地址:http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted 下载wheel文件

C:\codeEnvironment\python\wheel>pip install Twisted-20.3.0-cp36-cp36m-win_amd64.whl
依赖 PyWin32

从官方网站下载对应版本的安装包即可

链接为:https://sourceforge.net/projects/pywin32/files/pywin32/Build%20221

下载过来后,直接双击 exe 安装即可

End Scrapy 安装
C:\Users\yangh>pip3 install Scrapy
验证
C:\codeEnvironment\python\wheel>Scrapy
Scrapy 2.5.1 - no active projectUsage:scrapy <command> [options] [args]Available commands:bench         Run quick benchmark testcommandsfetch         Fetch a URL using the Scrapy downloadergenspider     Generate new spider using pre-defined templatesrunspider     Run a self-contained spider (without creating a project)settings      Get settings valuesshell         Interactive scraping consolestartproject  Create new projectversion       Print Scrapy versionview          Open URL in browser, as seen by Scrapy[ more ]      More commands available when run from project directoryUse "scrapy <command> -h" to see more info about a command
相关链接:
  • 官方网站:https://scrapy.org
  • 官方文档:https://docs.scrapy.org
  • PyPI:https://pypi.python.org/pypi/Scrapy
  • GitHub:https://github.com/scrapy/scrapy
  • 中文文梢:http://scrapy-chs.readthedocs.io
Scrapy-Splash 安装

Scrapy-Splash 是一个 Scrapy 中支持 JavaScript 渲染的工具

Scrapy-Splash 的安装分为两部分。

1:Splash 服务的安装,具体通过 Docker 安装后会启动一个 Splash 服务,我们可以通过它的接口来实现 JavaScript 页面的加载

2:Scrapy-Splash 的 Python 库的安装,安装之后即可在 Scrapy 中使用 Splash 服务

在安装之前需要先确保自己有 docker 这个应用,若没有,可以参考 笔者的笔记 docker 的安装于部署

安装
docker run -p 8050:8050 scrapinghub/splash
验证

img

img

可以看到,docker 已经把镜像拉过来了。以后要运行 Scrapy-Splash 直接本地开 docker 即可

相关链接
  • GitHub: https://github.com/scrapy-plugins/scrapy-splash
  • PyPI: https://pypi.python.org/pypi/scrapy-splash
  • 使用说明:https://github.com/scrapy-plugins/scrapy-splash#configuration
  • Splash官方文档:http://splash.readthedocs.io
Scrapy-Redis 安装

Scrapy-Redis 是 Scrapy 的分布式扩展模块,有了它,我们就可以实现 Scrapy 分布式爬虫的搭建

C:\Users\yangh>pip3 install scrapy-redis
验证:

导入库不报错即可
img

相关链接
  • GitHub:https://github.com/rmax/scrapy-redis
  • PyPI:https://pypi.python.org/pypi/scrapy-redis
  • 官方文档:http://scrapy-redis.readthedocs.io

0x08:部署其他相关库

Scrapyrt 安装
pip3 install scrapyrt
后面运行,需要在一个 scrapy 项目中运行才可,默认存在 9080 端口,使用 -p 端口切换
scrapyrt -p 9081
Gerapy 安装
pip3 install gerapy

相关文章:

Python 爬虫开发完整环境部署,爬虫核心框架安装

Python 爬虫开发完整环境部署 前言&#xff1a; ​ 关于本篇笔记&#xff0c;参考书籍为 《Python 爬虫开发实战3 》 笔记做出来的一方原因是为了自己对 Python 爬虫加深认知&#xff0c;一方面也想为大家解决在爬虫技术区的一些问题&#xff0c;本篇文章所使用的环境为&#x…...

汽车标定技术(十三)--标定概念再详解

目录 1.概述 2.基于Flash的标定 3.基于RAM的标定 4.AUTOSAR基于指针标定概念 5.小结 1.概述 最近有朋友问到是否用overlay标定完数据就直接写在Flash中&#xff0c;其实不然&#xff0c;是需要关闭overlay然后通过XCP Program指令集或者UDS刷进Flash。 从这里看出&#…...

PostgreSQL常用命令

数据库版本 :9.6.6 注意 :PostgreSQL中的不同类型的权限有 SELECT,INSERT,UPDATE,DELETE,TRUNCATE,REFERENCES,TRIGGER,CREATE,CONNECT,TEMPORARY,EXECUTE 和 USAGE。 1. 登录PG数据库 以管理员身份 postgres 登陆,然后通过 #psql -U postgres #sudo -i -u postgres …...

使用python脚本部署k8s集群

1.环境规划&#xff1a; 节点IP地址操作系统配置脚本运行节点192.168.174.5centos7.92G2核server192.168.174.150centos7.92G2核client1192.168.174.151centos7.92G2核client2192.168.174.152centos7.92G2 2.运行准备&#xff1a; yum install -y python python-pip pip in…...

【C语言】操作符详解(四):结构成员访问操作符

目录 结构成员访问操作符 结构体 结构体的声明 结构体变量的定义和初始化 结构成员访问操作符 结构体成员的直接访问 结构体成员的间接访问 结构成员访问操作符 结构体 ⭐C语言已经提供了内置类型&#xff0c;如: char、short、int、long、float、double等&#xff0c;但…...

【算法】二分法

1、二分法 1.1 二分法原理 每次将查找的范围缩小一半&#xff0c;直到最后找到记录或者找不到记录返回。 要求&#xff1a;采用二分法查找时&#xff0c;数据需是排好序的。 1.2二分法思路 判断某个数是否在数组中存在&#xff08;例&#xff1a;判断3是否在数组中存在&#…...

2023.12.18 JAVA学习day03,while与for循环

目录 0.switch 判断语句 一.for循环 1.简单练习 2.使用for循环计算1-100求和, 以及偶数求和 3.进阶练习,配合键盘录入与判断使用循环 二.while循环 三种格式的区别&#xff1a; 0.switch 判断语句 switch (表达式) { case 1: 语句体1; break; case …...

使用Pytorch从零开始构建StyleGAN2

这篇博文是关于 StyleGAN2 的&#xff0c;来自论文Analyzing and Improving the Image Quality of StyleGAN&#xff0c;我们将使用 PyTorch 对其进行干净、简单且可读的实现&#xff0c;并尝试尽可能地还原原始论文。 如果您没有阅读 StyleGAN2 论文。或者不知道它是如何工作…...

C++ Qt 开发:ListWidget列表框组件

Qt 是一个跨平台C图形界面开发库&#xff0c;利用Qt可以快速开发跨平台窗体应用程序&#xff0c;在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置&#xff0c;实现图形化开发极大的方便了开发效率&#xff0c;本章将重点介绍ListWidget列表框组件的常用方法及灵活运用。…...

手机天线市场分析:预计2029年将达到576亿美元

手机天线&#xff0c;即手机上用于接收信号的设备&#xff0c;旧式手机有外凸式天线&#xff0c;新式手机多数已隐藏在机身内。这类天线主要都在手机内部&#xff0c;手机外观上看不到里面的东西。 手机天线主要就内置及外置天线两种&#xff0c;内置天线客观上必然比外置天线弱…...

FPGA引脚分配的问题

今天在做一个FPGA的实验时&#xff0c;在引脚分配时失败了&#xff0c;出现了如下报错&#xff1a; 我当时分配的引脚是PIN_AE19&#xff0c;然而奇怪的是我之前并未分配这个引脚&#xff0c;我使用的开发工具是Quartus II 9.1 Web Edition&#xff0c;算个老版本了。 有的网站…...

面试经典150题(27-28)

leetcode 150道题 计划花两个月时候刷完&#xff0c;今天&#xff08;第十三天&#xff09;完成了2道(27-28)150&#xff1a; 今天这两道是真的汗流浃背&#xff01;&#xff01;&#xff01; 27.&#xff08;209. 长度最小的子数组&#xff09;题目描述&#xff1a; 给定一…...

计算机图形学头歌合集(题集附解)

目录 CG1-v1.0-点和直线的绘制 第1关&#xff1a;OpenGL点的绘制 第2关&#xff1a;OpenGL简单图形绘制 第3关&#xff1a;OpenGL直线绘制 第4关&#xff1a;0<1直线绘制-dda算法<> 第5关&#xff1a;0<1直线绘制-中点算法<> 第6关&#xff1a;一般直线绘…...

MacBook Air提供了丰富多彩的截图选项,大到整个屏幕,小到具体的区域

本指南将带你了解在MacBook Air笔记本电脑上进行屏幕截图的各种方法。它涵盖了所有用于截屏的键盘快捷键,还包括如何启动MacBook Air屏幕录制和更改屏幕截图设置的信息。 如何在MacBook Air上进行屏幕截图 在MacBook上进行整个屏幕截图的最快、最简单的方法是使用command+sh…...

【CMU 15-445】Lecture 12: Query Execution I 学习笔记

Query Execution I Processing ModelsIterator ModelMaterialization ModelVectorization Model Access MethodsSequential ScanIndex Scan Modification QueriesHalloween Problem 本节课主要介绍SQL语句执行的相关机制。 Processing Models 首先是处理模型&#xff0c;它定义…...

低代码开发平台的优势及应用场景分析

文章目录 低代码是什么&#xff1f;低代码起源低代码分类低代码的能力低代码的需求市场需要专业开发者需要数字化转型需要 低代码的趋势如何快速入门低代码开发低代码应用领域 低代码是什么&#xff1f; 低代码&#xff08;Low-code&#xff09;是著名研究机构Forrester于2014…...

ES常见查询总结

目录 1:查询总数2:查询所有数据3:查询指定条数4:根据ID查询5:一个查询字符串搜索6:match搜索7:term搜索8:bool搜索9:must多条件匹配查询10:Should满足一个条件查询11: must_not必须不匹配查询12:多个字段查询内容13:一个字段查询多个内容14:通配符和正则匹配15:前缀查询16:短语…...

Spring Boot Docker Compose 支持中文文档

本文为官方文档直译版本。原文链接 Spring Boot Docker Compose 支持中文文档 引言服务连接自定义镜像跳过特定的容器使用特定Compose文件等待容器就绪控制 Docker Compose 的生命周期激活 Docker Compose 配置文件 引言 Docker Compose 是一种流行的技术&#xff0c;可用于为…...

智慧城市/一网统管建设:人员危险行为检测算法,为城市安全保驾护航

随着人们压力的不断增加&#xff0c;经常会看见在日常生活中由于小摩擦造成的大事故。如何在事故发生时进行及时告警&#xff0c;又如何在事故发生后进行证据搜索与事件溯源&#xff1f;旭帆科技智能视频监控人员危险行为/事件检测算法可以给出答案。 全程监控&#xff0c;有源…...

C语言:求和1+1/2-1/3+1/4-1/5+……-1/99+1/100

#include<stdio.h> int main() {int i 0;double sum 0.0;int flag 1;for (i 1;i < 100;i){sum 1.0 / i * flag;flag -flag;}printf("sum%lf\n", sum);return 0; }...

学习什么知识不会过时

近况&#x1f481;&#x1f3fb; 最近这段时间&#xff0c;我真的很糟糕。工作中满负荷做需求&#xff0c;闲了就想玩游戏放松&#xff0c;业余搞些东西的时间很少。本来就有些焦虑&#xff0c;这种状态下更是有些 suffering。究其原因&#xff0c;都是因为部门转换的问题。 一…...

C# WPF上位机开发(ExtendedWPFToolkit扩展包使用)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 虽然个人人为当前的c# wpf内容已经足够多&#xff0c;但是肯定还是有很多个性化的需求没有满足。比如说不够好看&#xff0c;比如说动画效果不好&a…...

【IOS开发】传感器 SensorKit

资源 官方文档 https://developer.apple.com/search/?qmotion%20graph&typeDocumentation SensorKit 使应用程序能够访问选定的原始数据或系统从传感器处理的指标。 步骤信息加速度计或旋转速率数据用户手腕上手表的配置物理环境中的环境光有关用户日常通勤或旅行的详细…...

【C++】封装:练习案例-点和圆的关系

练习案例&#xff1a;点和圆的关系 设计一个圆形类&#xff08;Circle&#xff09;&#xff0c;和一个点类&#xff08;Point&#xff09;&#xff0c;计算点和圆的关系。 思路&#xff1a; 1&#xff09;创建点类point.h和point.cpp 2&#xff09;创建圆类circle.h和circle…...

【vue】正则表达式限制input的输入:

文章目录 1、只能输入大小写字母、数字、下划线&#xff1a;/[^\w_]/g2、只能输入小写字母、数字、下划线&#xff1a;/[^a-z0-9_]/g3、只能输入数字和点&#xff1a;/[^\d.]/g4、只能输入小写字母、数字、下划线&#xff1a;/[^\u4e00-\u9fa5]/g5、只能输入数字&#xff1a;/\…...

异步导入中使用SecurityUtils.getSubject().getPrincipal()获取LoginUser对象导致的缓存删除失败问题

结论 SecurityUtils.getSubject().getPrincipal()实际用的也是ThreadLocal&#xff0c;而ThreadLocal和线程绑定&#xff0c;异步会导致存数据丢失&#xff0c;注意&#xff01; 业务背景 最近&#xff0c;系统偶尔会出现excel导入成功&#xff0c;但系统却提示存在进行中的…...

大数据机器学习深度解读决策树算法:技术全解与案例实战

大数据机器学习深度解读决策树算法&#xff1a;技术全解与案例实战 本文深入探讨了机器学习中的决策树算法&#xff0c;从基础概念到高级研究进展&#xff0c;再到实战案例应用&#xff0c;全面解析了决策树的理论及其在现实世界问题中的实际效能。通过技术细节和案例实践&…...

【开源Mongdb驱动】SpringBoot+Mybatis+Mongdb融合使用教程

#【开源Mongdb驱动】SpringBootMybatisMongdb无缝融合使用教程 介绍 本文介绍一款基于JAVA开源的mongodb jdbc驱动为基础的无缝与springbootmybatis融合使用案例 mongodb JDBC 使用案例 https://blog.csdn.net/gongbing798930123/article/details/135002530 《基于开源的JA…...

freeRTOS使用

创建第一个FreeRTOS程序 1、官网源码下载 &#xff08;1&#xff09;进入FreeRTOS官网FreeRTOS professional services for application and RTOS development and consulting. FreeRTOS is an Open Source Code RTOS &#xff08;2&#xff09;点击下载FreeRTOS 2、处理目录 &…...

基于vue的线上点餐系统论文

基于vue的线上点餐系统 摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了线上点餐系统的开发全过程。通过分析线上点餐系统管理的不足&#xff0c;创建了一个计算机管理线上点餐系统的方案。文章介绍了线上点餐…...

微信公众平台网站建设新闻报道/万物识别扫一扫

InnoDB引擎有几个重点特性&#xff0c;为其带来了更好的性能和可靠性&#xff1a;插入缓冲(Insert Buffer)两次写(Double Write)自适应哈希索引(Adaptive Hash Index)异步IO(Async IO)刷新邻接页(Flush Neighbor Page)关于AIO与SIO为了提高磁盘操作性能&#xff0c;当前的数据库…...

盐城网站推广哪家好/免费seo工具汇总

认识主机板煮 鸡板....咳&#xff01;「主机板」&#xff08;Motherboard&#xff09;不算电脑里最先进的零组件&#xff0c;但绝对是塞最多东西的零组件。事实上&#xff0c;现在新的主机板简直像怪物&#xff0c;上面 可能有数十个长长短短、大大小小、圆的方的、各式各样的插…...

陕西省建设造价协会网站/优化营商环境条例全文

上一次在面试官&#xff1a;来说说MySQL的常见优化方案……中说到 MySQL 性能优化的方案很多&#xff0c;因此它可以全面地考查一个程序员的经验是否丰富。当然对于这个问题的回答也是可深可浅&#xff0c;不同的岗位对此问题的要求也是不同的。MySQL 可以引申出更多的面试问题…...

石景山网站建设的大公司/创网站永久免费建站

windows下 安装 rabbitMQ rabbitMQ是一个在AMQP协议标准基础上完整的&#xff0c;可服用的企业消息系统。它遵循Mozilla Public License开源协议&#xff0c;采用 Erlang 实现的工业级的消息队列(MQ)服务器&#xff0c;Rabbit MQ 是建立在Erlang OTP平台上。 1.安装Erlang 所…...

wordpress popuppress/产品推广软文

2019独角兽企业重金招聘Python工程师标准>>> 下面主要从队列、消息发送、消息接收方面了解消息传递过的一些可靠性处理。 1、队列 消费者是无法订阅或者获取不存在的MessageQueue中信息。消息被Exchange接受以后&#xff0c;如果没有匹配的Queue&#xff0c;则会被…...

武威网站建设价格/友情链接检查工具

Linux下IPTABLES防火墙的设定安装linux后(防火墙是开启状态),需要检查防火墙端口1.iptables防火墙启动和停止启动iptables防火墙时命令行输入 #service iptables start[roothost.jefflei.com ~]# service iptables start应用 iptables 防火墙规则&#xff1a; …...