一、前言
强烈建议:请在电脑的陪同下,阅读本文。本文以实战为主,阅读过程如稍有不适,还望多加练习。
本文的实战内容有:
网络小说下载(静态网站)
优美壁纸下载(动态网站)
爱奇艺VIP视频下载
二、网络爬虫简介
网络爬虫,也叫网络蜘蛛(Web Spider)。它根据网页地址(URL)爬取网页内容,而网页地址(URL)就是我们在浏览器中输入的网站链接。比如:https://www.baidu.com/,它就是一个URL。
在讲解爬虫内容之前,我们需要先学习一项写爬虫的必备技能:审查元素(如果已掌握,可跳过此部分内容)。
1. 审查元素
在浏览器的地址栏输入URL地址,在网页处右键单击,找到检查,如下图所示:(不同浏览器的叫法不同,Chrome浏览器叫做检查,Firefox浏览器叫做查看元素,但是功能都是相同的)
我们可以看到,右侧出现了一大推代码,这些代码就叫做HTML。什么是HTML?举个容易理解的例子:我们的基因决定了我们的原始容貌,服务器返回的HTML决定了网站的原始容貌。
为啥说是原始容貌呢?因为人可以整容啊!扎心了,有木有?那网站也可以"整容"吗?可以!请看下图:
我能有这么多钱吗?显然不可能。我是怎么给网站"整容"的呢?就是通过修改服务器返回的HTML信息。我们每个人都是"整容大师",可以修改页面信息。我们在页面的哪个位置点击审查元素,浏览器就会为我们定位到相应的HTML位置,进而就可以在本地更改HTML信息。
再举个小例子:我们都知道,使用浏览器"记住密码"的功能,密码会变成一堆小黑点,是不可见的。可以让密码显示出来吗?可以,只需给页面"动个小手术"!以淘宝为例,在输入密码框处右键,点击检查。
可以看到,浏览器为我们自动定位到了相应的HTML位置。将下图中的password属性值改为text属性值(直接在右侧代码处修改):
就这样,浏览器"记住的密码"显现出来了:
说这么多,什么意思呢?浏览器就是作为客户端从服务器端获取信息,然后将信息解析,并展示给我们的。我们可以在本地修改HTML信息,为网页"整容",但是我们修改的信息不会回传到服务器,服务器存储的HTML信息不会改变。刷新一下界面,页面还会回到原本的样子。这就跟人整容一样,我们能改变一些表面的东西,但是不能改变我们的基因。
2. 简单实例
网络爬虫的第一步就是根据URL,获取网页的HTML信息。在Python3中,可以使用urllib.request和requests进行网页爬取。
requests库强大好用,所以本文使用requests库获取网页的HTML信息。requests库的github地址:https://github.com/requests/requests
(1)requests安装
在学习使用requests库之前,我们需要在电脑中安装好requests库。在cmd中,使用如下指令安装requests库:
pip install requests
easy_install requests
使用pip和easy_install都可以安装,二选一即可。
(2)简单实例
安装好requests库之后,我们先来大体浏览一下requests库的基础方法:
官方中文教程地址:http://docs.python-requests.org/zh_CN/latest/user/quickstart.html
requests库的开发者为我们提供了详细的中文教程,查询起来很方便。本文不会对其所有内容进行讲解,摘取其部分使用到的内容,进行实战说明。
首先,让我们看下requests.get()方法,它用于向服务器发起GET请求,不了解GET请求没有关系。我们可以这样理解:get的中文意思是得到、抓住,那这个requests.get()方法就是从服务器得到、抓住数据,也就是获取数据。让我们看一个例子(以 www.gitbook.cn 为例)来加深理解:
# -*- coding:UTF-8 -*- import requests if __name__ == '__main__': target = 'http://gitbook.cn/' req = requests.get(url=target) print(req.text)
requests.get()方法必须设置的一个参数就是url,因为我们得告诉GET请求,我们的目标是谁,我们要获取谁的信息。我们将GET请求获得的响应内容存放到req变量中,然后使用req.text就可以获得HTML信息了。运行结果如下:
左侧是我们程序获得的结果,右侧是我们在www.gitbook.cn 网站审查元素获得的信息。我们可以看到,我们已经顺利获得了该网页的HTML信息。这就是一个最简单的爬虫实例,可能你会问,我只是爬取了这个网页的HTML信息,有什么用呢?客官稍安勿躁,接下来进入我们的实战正文。
三、爬虫实战
实战内容由简单到复杂,难度逐渐增加,但均属于入门级难度。下面开始我们的第一个实战内容:网络小说下载。
1. 小说下载
(1)实战背景
小说网站《笔趣看》URL:http://www.biqukan.com/
《笔趣看》是一个盗版小说网站,这里有很多起点中文网的小说,该网站小说的更新速度稍滞后于起点中文网正版小说的更新速度。并且该网站只支持在线浏览,不支持小说打包下载。因此,本次实战就是从该网站爬取并保存一本名为《一念永恒》的小说,该小说是耳根正在连载中的一部玄幻小说。PS:本实例仅为交流学习,支持耳根大大,请上起点中文网订阅。
(2)小试牛刀
我们先看下《一念永恒》小说的第一章内容,URL:http://www.biqukan.com/1_1094/5403177.html
用已经学到的知识获取HTML信息试一试,编写代码如下:
# -*- coding:UTF-8 -*-
import requests
if __name__ == '__main__':
target = 'http://www.biqukan.com/1_1094/5403177.html'
req = requests.get(url=target)
print(req.text)
运行代码,可以看到如下结果:
可以看到,我们很轻松地获取了HTML信息。但是,很显然,很多信息是我们不想看到的,我们只想获得如右侧所示的正文内容,我们不关心那些看着眼晕的英文字母。如何把正文内容从这些众多的HTML信息中提取出来呢?这就是本小节实战的主要内容。
(3)Beautiful Soup
爬虫的第一步,获取整个网页的HTML信息,我们已经完成。接下来就是爬虫的第二步,解析HTML信息,提取我们感兴趣的内容。对于本小节的实战,我们感兴趣的内容就是文章的正文。提取的方法有很多,例如使用正则表达式、Xpath、Beautiful Soup等。对于初学者而言,最容易理解,并且使用简单的方法就是使用Beautiful Soup提取感兴趣内容。
Beautiful Soup的安装方法和requests一样,使用如下指令安装(也是二选一):
一个强大的第三方库,都会有一个详细的官方文档。我们很幸运,Beautiful Soup也是有中文的官方文档。URL:http://beautifulsoup.readthedocs.io/zh_CN/latest/
同理,我会根据实战需求,讲解Beautiful Soup库的部分使用方法,更详细的内容,请查看官方文档。
现在,我们使用已经掌握的审查元素方法,查看一下我们的目标页面,你会看到如下内容:
不难发现,文章的所有内容都放在了一个名为div的“东西下面”,这个"东西"就是html标签。HTML标签是HTML语言中最基本的单位,HTML标签是HTML最重要的组成部分。不理解,没关系,我们再举个简单的例子:一个女人的包包里,会有很多东西,她们会根据自己的习惯将自己的东西进行分类。镜子和口红这些会经常用到的东西,回归放到容易拿到的外侧口袋里。那些不经常用到,需要注意安全存放的证件会被放到不容易拿到的里侧口袋里。
html标签就像一个个“口袋”,每个“口袋”都有自己的特定功能,负责存放不同的内容。显然,上述例子中的div标签下存放了我们关心的正文内容。这个div标签是这样的:
细心的朋友可能已经发现,除了div字样外,还有id和class。id和class就是div标签的属性,content和showtxt是属性值,一个属性对应一个属性值。这东西有什么用?它是用来区分不同的div标签的,因为div标签可以有很多,我们怎么加以区分不同的div标签呢?就是通过不同的属性值。
仔细观察目标网站一番,我们会发现这样一个事实:class属性为showtxt的div标签,独一份!这个标签里面存放的内容,是我们关心的正文部分。
知道这个信息,我们就可以使用Beautiful Soup提取我们想要的内容了,编写代码如下:
# -*- coding:UTF-8 -*-
from bs4 import BeautifulSoup
import requests
if __name__ == "__main__":
target = 'http://www.biqukan.com/1_1094/5403177.html' req = requests.get(url = target) html = req.text bf = BeautifulSoup(html) texts = bf.find_all('div', class_ = 'showtxt') print(texts)
在解析html之前,我们需要创建一个Beautiful Soup对象。BeautifulSoup函数里的参数就是我们已经获得的html信息。然后我们使用find_all方法,获得html信息中所有class属性为showtxt的div标签。find_all方法的第一个参数是获取的标签名,第二个参数class_是标签的属性,为什么不是class,而带了一个下划线呢?因为python中class是关键字,为了防止冲突,这里使用class_表示标签的class属性,class_后面跟着的showtxt就是属性值了。看下我们要匹配的标签格式:
这样对应的看一下,是不是就懂了?可能有人会问了,为什么不是find_all('div', id = 'content', class_ = 'showtxt')?这样其实也是可以的,属性是作为查询时候的约束条件,添加一个class_='showtxt'条件,我们就已经能够准确匹配到我们想要的标签了,所以我们就不必再添加id这个属性了。运行代码查看我们匹配的结果:
我们可以看到,我们已经顺利匹配到我们关心的正文内容,但是还有一些我们不想要的东西。比如div标签名,br标签,以及各种空格。怎么去除这些东西呢?我们继续编写代码:
# -*- coding:UTF-8 -*- from bs4 import BeautifulSoup import requests if __name__ == "__main__": target = 'http://www.biqukan.com/1_1094/5403177.html' req = requests.get(url = target) html = req.text bf = BeautifulSoup(html) texts = bf.find_all('div', class_ = 'showtxt') print(texts[0].text.replace('\xa0'*8,'\n\n'))
find_all匹配的返回的结果是一个列表。提取匹配结果后,使用text属性,提取文本内容,滤除br标签。随后使用replace方法,剔除空格,替换为回车进行分段。 在html中是用来表示空格的。replace('\xa0'*8,'\n\n')就是去掉下图的八个空格符号,并用回车代替:
程序运行结果如下:
可以看到,我们很自然的匹配到了所有正文内容,并进行了分段。我们已经顺利获得了一个章节的内容,要想下载正本小说,我们就要获取每个章节的链接。我们先分析下小说目录,URL:http://www.biqukan.com/1_1094/
通过审查元素,我们发现可以发现,这些章节都存放在了class属性为listmain的div标签下,选取部分html代码如下:
在分析之前,让我们先介绍一个概念:父节点、子节点、孙节点。和
限定了标签的开始和结束的位置,他们是成对出现的,有开始位置,就有结束位置。我们可以看到,在
标签包含
标签,那这个标签就是标签的子节点,
标签又包含标签和 标签,那么 标签和 标签就是
你可能感兴趣的:(Python)
机器学习:k均值
golemon.
ML 机器学习 均值算法 人工智能
所有代码和文档均在golitter/Decoding-ML-Top10:使用Python优雅地实现机器学习十大经典算法。(github.com),欢迎查看。在“无监督学习”中,训练样本的标记信息是未知的,目标是通过对无标记训练样本的学习来揭示数据的内在性质及规律,为进一步的数据分析提供基础,较为经典的是聚类。**聚类试图将数据集中的样本划分为若干个通常是不相交的子集,每个子集称为一个“簇”。**聚
Python常见面试题的详解4
ylfhpy
Python基础 python 开发语言 面试
1.单例模式的实现方式要点:Python有多种实现单例模式的方法。模块由于其特性天然支持单例,首次导入生成对象,后续导入直接复用。通过装饰器可以控制实例的创建,元类能借助__call__方法管理实例化过程,重写类的__new__方法也能保证实例的唯一性。示例:pythondefsingleton(cls):instances={}defget_instance(*args,**kwargs):#如
python:求解爱因斯坦场方程
belldeep
python python 爱因斯坦
在物理学中,爱因斯坦的广义相对论(GeneralRelativity)是描述引力如何作用于时空的理论。广义相对论由爱因斯坦在1915年提出,并被阿尔伯特·爱因斯坦、纳森·罗森和纳尔逊·曼德尔斯塔姆共同发展。广义相对论的核心方程是爱因斯坦场方程,它描述了时空的几何结构如何由物质的分布决定。如果你想用Python来探索或模拟广义相对论中的某些现象,你可以从以下几个方面入手:1.使用现有的库Python
【Python】使用国内镜像加速 pip 安装详解
Peter-Lu
# 人工智能之python基础 python pip
文章目录一、pip工具简介1.什么是pip?2.什么是`-i`参数?二、国内镜像源的选择三、如何使用国内镜像源1.临时指定国内镜像源2.批量安装依赖时使用镜像源3.全局配置国内镜像源配置方法:四、国内镜像的使用场景1.安装大型库时2.批量安装依赖五、注意事项1.镜像源的选择2.镜像源的可信性3.镜像源与pip缓存在Python开发中,pip是一个非常重要的工具,用于安装和管理Python的第三方库
pandas(02 pandas基本功能和描述性统计)
twilight ember
pandas python 开发语言
前面内容:pandas(01入门)目录一、PythonPandas基本功能1.1Series基本功能1.2DataFrame基本功能二、PythonPandas描述性统计2.1常用函数*2.2汇总数据(describe)*一、PythonPandas基本功能到目前为止,我们已经学习了三种Pandas数据结构以及如何创建它们。我们将主要关注DataFrame对象,因为它在实时数据处理中非常重要,并讨
工控网络安全学习路线
206333308
安全
一、基础技能编程语言:从汇编语言开始学习,了解底层机器指令和内存管理等基础知识。接着学习C/C++,掌握面向过程和面向对象编程的基本概念和技术,为后续的漏洞挖掘和底层分析打下基础。最后学习Python,它在安全领域应用广泛,可用于自动化脚本编写、漏洞扫描和数据分析等。《计算机网络原理》:掌握网络通信的基本原理,包括OSI七层模型、TCP/IP协议栈、IP地址分配、子网掩码等。了解网络拓扑结构、路由
大数据知识图谱之深度学习——基于BERT+LSTM+CRF深度学习识别模型医疗知识图谱问答可视化系统_bert+lstm
2301_76348014
程序员 深度学习 大数据 知识图谱
文章目录大数据知识图谱之深度学习——基于BERT+LSTM+CRF深度学习识别模型医疗知识图谱问答可视化系统一、项目概述二、系统实现基本流程三、项目工具所用的版本号四、所需要软件的安装和使用五、开发技术简介Django技术介绍Neo4j数据库Bootstrap4框架Echarts简介NavicatPremium15简介Layui简介Python语言介绍MySQL数据库深度学习六、核心理论贪心算法A
Python的垃圾回收机制,详解Python的GC体系
李云龙炮击平安线程
python 系统架构 面试 跳槽 后端 架构
什么是垃圾回收?为什么需要垃圾回收?垃圾回收即Garbagecollection简称为GC,是Python,Java等高级语言所使用的内存回收机制,由虚拟机帮助我们管理内存,让它自动把我们去追踪和回收内存中的对象。没有作用的对象就是垃圾,虚拟机就是扫地机器人,在某个时机自动帮我们清除垃圾。区别于C和C++这种让用户自己进行内存管理的方式,由虚拟机代用户管理内存。让用户自己进行内存管理的方式固然自由
自动化办公|xlwings 数据类型和转换
游客520
自动化 实用代码 python全栈学习 自动化 运维 python
xlwings数据类型和转换:Python与Excel的桥梁在使用xlwings进行Python和Excel数据交互时,理解两者之间的数据类型对应关系至关重要。本篇将详细介绍Python数据类型与Excel数据类型的对应关系,以及如何进行数据类型转换。一、Python数据类型与Excel数据类型的对应关系Python数据类型Excel数据类型说明int数字整数float数字浮点数str文本字符串b
python如何解压缩文件或文件夹
游客520
实用代码 python全栈学习 python
在日常开发或数据处理工作中,我们经常需要对文件或文件夹进行压缩和解压缩操作。Python提供了强大的内置模块,如zipfile和shutil,可以帮助我们高效地完成这些任务。本文将介绍如何使用Python对文件夹或文件进行压缩和解压缩,内容包括两种常见方式:zipfile和shutil,并提供完整代码示例。压缩文件或文件夹1.使用zipfile模块压缩文件夹zipfile模块是Python标准库的
Python 爬虫验证码识别
acheding
python python 爬虫 ocr
在我们进行爬虫的过程中,经常会碰到有些网站会时不时弹出来验证码识别。我们该如何解决呢?这里分享2种我尝试过的方法。0.验证码示例1.OpenCV+pytesseract使用Python中的OpenCV库进行图像预处理(边缘保留滤波、灰度化、二值化、形态学操作和逻辑运算),然后结合pytesseract进行文字识别。pytesseract需要配合安装在本地的tesseract-ocr.exe文件一起
【Python实用技巧】爬取数据保存到Excel中
「已注销」
python python 爬虫 开发语言
嗨嗨,大家好~今天来给你们分享一个小技巧如何用python爬取数据保存到Excel中话不多说,马上开始需要源码、教程,或者是自己有关python不懂的问题,都可以来这里哦https://jq.qq.com/?_wv=1027&k=s5bZE0K3这里还有学习资料与免费课程领取开发工具Python版本:3.6相关模块:importrequestsfromlxmlimportetreeimportti
Python爬取小说保存为Excel
不知所云975
python
本代码以实际案例介绍,爬取‘笔趣阁最新小说‘列表保存为表格文件。类封装以及网络爬虫以及openpyxl模块可以参考学习。#更新小说目录importrequestsfromlxmlimportetreeimportopenpyxlfromopenpyxl.stylesimportFont,Alignment,Side,Border,PatternFill#定义下载表格的类classDown_exce
python 爬取图片并保存到excel_python制作爬虫并将抓取结果保存到excel中
weixin_39778582
python 爬取图片并保存到excel
学习Python也有一段时间了,各种理论知识大体上也算略知一二了,今天就进入实战演练:通过Python来编写一个拉勾网薪资调查的小爬虫。第一步:分析网站的请求过程我们在查看拉勾网上的招聘信息的时候,搜索Python,或者是PHP等等的岗位信息,其实是向服务器发出相应请求,由服务器动态的响应请求,将我们所需要的内容通过浏览器解析,呈现在我们的面前。可以看到我们发出的请求当中,FormData中的kd
python爬取的数据保存到表格中_利用Python爬取的数据存入Excel表格
weixin_39608063
分析要爬取的内容的网页结构:demo.py:importrequests#requests是HTTP库importrefromopenpyxlimportworkbook#写入Excel表所用fromopenpyxlimportload_workbook#读取Excel表所用frombs4importBeautifulSoupasbs#bs:通过解析文档为用户提供需要抓取的数据importosim
python爬取天眼查存入excel表格_python爬取企查查江苏企业信息生成excel表格
吴寿鹤
1.前期准备具体请查看上一篇2.准备库requests,BeautifulSoup,xlwt,lxml1.BeautifulSoup:是专业的网页爬取库,方便抓取网页信息2.xlwt:生成excel表格3.lxml:xml解析库3.具体思路企查查网站具有一定的反爬机制,直接爬取会受到网站阻拦,所以我们需要模拟浏览器请求,绕过反爬机制,打开企查查网站,获取cookie及一系列请求头文件,然后使用Be
学会Python3模拟登录并爬取表格数据!excel高手也自叹不如!
m0_60635321
2024年程序员学习 excel python 爬虫
先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!因此收集整理了一份《2024年最新Python全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课
使用 Python 将爬取的内容保存到 Excel 表格
木觞清
python excel 开发语言
在数据爬取的过程中,很多时候我们需要将爬取到的内容保存到Excel表格中,以便进一步处理、分析和可视化。Python提供了强大的库来实现这一功能,常用的有requests、BeautifulSoup用于网页内容的爬取,以及pandas、openpyxl用于将数据保存到Excel文件。本文将带你一步步完成从爬取数据到保存到Excel文件的整个过程。1.安装必要的库首先,你需要安装一些Python库。
Python学习心得字符串的去重操作
lifegoesonwjl
python 开发语言 pycharm
一个字符串中可能包含许多相同的元素,为了保证字符串中的唯一性,下面介绍的是字符串的去重操作:第一种方式:利用for+if的结构进行去重这个程序是对字符串中的每个元素进行判断,如果不在新建的空字符串中就把该元素添加进来,否则就直接忽略过去。s='helloworldhelloworldhelloworld'new_s=''foritemins:ifitemnotinnew_s:new_s+=item
使用Python实现深度学习模型:知识蒸馏与模型压缩
Echo_Wish
Python 笔记 从零开始学Python人工智能 Python算法 python 深度学习 开发语言
在深度学习领域,模型的大小和计算复杂度常常是一个挑战。知识蒸馏(KnowledgeDistillation)和模型压缩(ModelCompression)是两种有效的技术,可以在保持模型性能的同时减少模型的大小和计算需求。本文将详细介绍如何使用Python实现这两种技术。目录引言知识蒸馏概述模型压缩概述实现步骤数据准备教师模型训练学生模型训练(知识蒸馏)模型压缩代码实现结论1.引言在实际应用中,深
来看看爬虫合不合法
度假的小鱼
Python基础 爬虫 搜索引擎 python
活动地址:CSDN21天学习挑战赛文章目录一、爬虫合不合法二、什么是爬虫三、爬虫的分类四、为什么学网络爬虫一、爬虫合不合法随着Python在最近几年的流行,Python中的爬虫也逐渐进入到大家的视野中,但是很多小伙伴,还是在担心爬虫的合法性。今天就来和大家一起讨论一下爬虫的合法性。大家可能在网上看到很多有关程序员写爬虫被抓这样的新闻只因写了一段爬虫,公司200多人被抓!爬虫的本身是合法的,但是如何
Linux上Scapy完全指南:从入门到实战攻防
和舒貌
linux 信息与通信 网络安全 安全
Linux上Scapy完全指南:从入门到实战攻防目录Scapy简介与核心优势Linux环境安装与配置Scapy基础操作高级功能与协议分析实战案例:网络诊断与安全审计性能优化与调试技巧常见问题解答一、Scapy简介与核心优势1.1什么是Scapy?Scapy是一款基于Python的交互式数据包操作工具,能够构造、发送、捕获和分析网络协议数据包。其核心特点包括:支持超过800种协议(如TCP/IP、H
《爬虫写得好,铁窗关到老,做了5年Python
code高级开源
2024年程序员学习 爬虫 python 开发语言
**我的使命与愿景:**持续稳定输出,赋能中国技术社区蓬勃发展!最近的IT公司违法案件越来越多,看了很多因为爬虫,数字货币,博彩网站外包等被抓的事情,给大家提个醒,打工注意不能违法,写代码背后也有法律风险。一、什么是爬虫?通过爬虫代码,下载互联网上的数据到本地,并且提取出我们需要的信息的过程。二、典型违法案例典型案例(一):构成非法获取计算机信息系统数据罪张某等非法获取计算机信息系统数据案(上海市
Python面试题:解释一下什么是 Python 的 GIL(全局解释器锁)
杰哥在此
Python系列 python 开发语言
Python的GIL(GlobalInterpreterLock,全局解释器锁)是CPython解释器中的一个机制,它限制了在任何给定的时刻只有一个线程能够执行Python字节码。这意味着,即使在多核处理器上,Python程序也不能通过多线程实现真正的并行执行。GIL的背景GIL是由CPython解释器实现的,它是为了简化内存管理而引入的。Python中的对象管理(特别是引用计数)不是线程安全的,
Day47(补)【软考】2022年下半年软考软件设计师综合知识真题-计算机软件知识2
一个一定要撑住的学习者
# 软件设计师 算法
文章目录2022年下半年软考软件设计师综合知识真题第1章计算机系统基础知识(18/38)计算机软件知识2-6/6(其中一个做过)哲学概念及收敛思维:分母为0的故障哲学分类,考事务故障集合除数为零是否属于事务故障?哲学概念及收敛思维:Python3列表截取[max,min,-n]的哲学理解,输入-,考集合排列从大到小,range和list输入,考结束值min不在集合中哲学概念及收敛思维:**栈帧的核
python M3U8转换为MP4
会飞的鱼—
python
importosimportasyncioimportrandomimportshutilimportaiohttpimportffmpegfromconcurrent.futuresimportThreadPoolExecutor#M3U8文件的URL#m3u8_url='********************.m3u8'#临时存储TS文件的文件夹ts_folder='ts_files'os.
多语言实现图像生成的API调用指南
IT·小灰灰
人工智能 数据挖掘 深度学习 语言模型 图像处理 AI作画
在现代软件开发中,API(应用程序编程接口)的使用变得越来越普遍。无论是JavaScript、Python、Go还是Java,开发者们都需要与各种API进行交互以实现特定的功能。本文将通过一个具体的例子,展示如何使用不同的编程语言调用一个图像生成的API,并生成一幅描述海岛的图像。目录API获取方式正文1.JavaScript实现2.Python实现3.Go实现4.Java实现结语API获取方式前
Django ORM - 聚合查询
lsx202406
开发语言
DjangoORM-聚合查询引言Django是一个强大的PythonWeb框架,它拥有一个功能丰富的对象关系映射(Object-RelationalMapping,简称ORM)。ORM允许开发者以Python类和对象的交互方式来操作数据库,而不是直接编写SQL查询。本文将深入探讨DjangoORM中的聚合查询功能,包括其基本用法、常用函数以及在实际开发中的应用场景。聚合查询简介聚合查询,顾名思义,
Python自学攻略:AI时代的高效学习法 —— 如何用大模型快速上手编程
优化小秦
人工智能
在AI技术爆发的今天,学习Python已不再是传统的“看书+敲代码”模式。借助大语言模型(如Deepseek、GPT、Claude、Kimi、豆包等),学习效率可以提升数倍。本文将结合实操路径、工具链和避坑指南,为你提供一套AI时代的Python速成方案。一、为什么AI能让Python学习效率飙升?实时纠错与解释传统学习:遇到报错需反复查资料,耗时且挫败感强AI辅助:直接将错误信息丢给大模型,1秒
【大模型】阿里云百炼平台对接DeepSeek-R1大模型使用详解
小码农叔叔
AI大模型实战与应用 DeepSeek-R1使用 阿里云对接DeepSeek 百炼平台使用DeepSeek DeepSeek使用详解 DeepSeek-R1使用详解 DeepSeek-R1
目录一、前言二、DeepSeek简介2.1DeepSeek是什么2.2DeepSeekR1特点2.2.1DeepSeek-R1创新点2.3DeepSeekR1应用场景2.4与其他大模型对比三、阿里云百炼大平台介绍3.1阿里云百炼大平台是什么3.2阿里云百炼平台主要功能3.2.1应用场景3.3为什么选择阿里云百炼平台四、前置准备4.1注册百炼平台账户4.2获取apikey4.3本地安装python环
windows下源码安装golang
616050468
golang安装 golang环境 windows
系统: 64位win7, 开发环境:sublime text 2, go版本: 1.4.1
1. 安装前准备(gcc, gdb, git)
golang在64位系
redis批量删除带空格的key
bylijinnan
redis
redis批量删除的通常做法:
redis-cli keys "blacklist*" | xargs redis-cli del
上面的命令在key的前后没有空格时是可以的,但有空格就不行了:
$redis-cli keys "blacklist*"
1) "blacklist:12:
[email protected]
oracle正则表达式的用法
0624chenhong
oracle 正则表达式
方括号表达示
方括号表达式
描述
[[:alnum:]]
字母和数字混合的字符
[[:alpha:]]
字母字符
[[:cntrl:]]
控制字符
[[:digit:]]
数字字符
[[:graph:]]
图像字符
[[:lower:]]
小写字母字符
[[:print:]]
打印字符
[[:punct:]]
标点符号字符
[[:space:]]
2048源码(核心算法有,缺少几个anctionbar,以后补上)
不懂事的小屁孩
2048
2048游戏基本上有四部分组成,
1:主activity,包含游戏块的16个方格,上面统计分数的模块
2:底下的gridview,监听上下左右的滑动,进行事件处理,
3:每一个卡片,里面的内容很简单,只有一个text,记录显示的数字
4:Actionbar,是游戏用重新开始,设置等功能(这个在底下可以下载的代码里面还没有实现)
写代码的流程
1:设计游戏的布局,基本是两块,上面是分
jquery内部链式调用机理
换个号韩国红果果
JavaScript jquery
只需要在调用该对象合适(比如下列的setStyles)的方法后让该方法返回该对象(通过this 因为一旦一个函数称为一个对象方法的话那么在这个方法内部this(结合下面的setStyles)指向这个对象)
function create(type){
var element=document.createElement(type);
//this=element;
你订酒店时的每一次点击 背后都是NoSQL和云计算
蓝儿唯美
NoSQL
全球最大的在线旅游公司Expedia旗下的酒店预订公司,它运营着89个网站,跨越68个国家,三年前开始实验公有云,以求让客户在预订网站上查询假期酒店时得到更快的信息获取体验。
云端本身是用于驱动网站的部分小功能的,如搜索框的自动推荐功能,还能保证处理Hotels.com服务的季节性需求高峰整体储能。
Hotels.com的首席技术官Thierry Bedos上个月在伦敦参加“2015 Clou
java笔记1
a-john
java
1,面向对象程序设计(Object-oriented Propramming,OOP):java就是一种面向对象程序设计。
2,对象:我们将问题空间中的元素及其在解空间中的表示称为“对象”。简单来说,对象是某个类型的实例。比如狗是一个类型,哈士奇可以是狗的一个实例,也就是对象。
3,面向对象程序设计方式的特性:
3.1 万物皆为对象。
C语言 sizeof和strlen之间的那些事 C/C++软件开发求职面试题 必备考点(一)
aijuans
C/C++求职面试必备考点
找工作在即,以后决定每天至少写一个知识点,主要是记录,逼迫自己动手、总结加深印象。当然如果能有一言半语让他人收益,后学幸运之至也。如有错误,还希望大家帮忙指出来。感激不尽。
后学保证每个写出来的结果都是自己在电脑上亲自跑过的,咱人笨,以前学的也半吊子。很多时候只能靠运行出来的结果再反过来
程序员写代码时就不要管需求了吗?
asia007
程序员不能一味跟需求走
编程也有2年了,刚开始不懂的什么都跟需求走,需求是怎样就用代码实现就行,也不管这个需求是否合理,是否为较好的用户体验。当然刚开始编程都会这样,但是如果有了2年以上的工作经验的程序员只知道一味写代码,而不在写的过程中思考一下这个需求是否合理,那么,我想这个程序员就只能一辈写敲敲代码了。
我的技术不是很好,但是就不代
Activity的四种启动模式
百合不是茶
android 栈模式启动 Activity的标准模式启动 栈顶模式启动 单例模式启动
android界面的操作就是很多个activity之间的切换,启动模式决定启动的activity的生命周期 ;
启动模式xml中配置
<activity android:name=".MainActivity" android:launchMode="standard&quo
Spring中@Autowired标签与@Resource标签的区别
bijian1013
java spring @Resource @Autowired @Qualifier
Spring不但支持自己定义的@Autowired注解,还支持由JSR-250规范定义的几个注解,如:@Resource、 @PostConstruct及@PreDestroy。
1. @Autowired @Autowired是Spring 提供的,需导入 Package:org.springframewo
Changes Between SOAP 1.1 and SOAP 1.2
sunjing
Changes Enable SOAP 1.1 SOAP 1.2
JAX-WS
SOAP Version 1.2 Part 0: Primer (Second Edition)
SOAP Version 1.2 Part 1: Messaging Framework (Second Edition)
SOAP Version 1.2 Part 2: Adjuncts (Second Edition)
Which style of WSDL
【Hadoop二】Hadoop常用命令
bit1129
hadoop
以Hadoop运行Hadoop自带的wordcount为例,
hadoop脚本位于/home/hadoop/hadoop-2.5.2/bin/hadoop,需要说明的是,这些命令的使用必须在Hadoop已经运行的情况下才能执行
Hadoop HDFS相关命令
hadoop fs -ls
列出HDFS文件系统的第一级文件和第一级
java异常处理(初级)
白糖_
java DAO spring 虚拟机 Ajax
从学习到现在从事java开发一年多了,个人觉得对java只了解皮毛,很多东西都是用到再去慢慢学习,编程真的是一项艺术,要完成一段好的代码,需要懂得很多。
最近项目经理让我负责一个组件开发,框架都由自己搭建,最让我头疼的是异常处理,我看了一些网上的源码,发现他们对异常的处理不是很重视,研究了很久都没有找到很好的解决方案。后来有幸看到一个200W美元的项目部分源码,通过他们对异常处理的解决方案,我终
记录整理-工作问题
braveCS
工作
1)那位同学还是CSV文件默认Excel打开看不到全部结果。以为是没写进去。同学甲说文件应该不分大小。后来log一下原来是有写进去。只是Excel有行数限制。那位同学进步好快啊。
2)今天同学说写文件的时候提示jvm的内存溢出。我马上反应说那就改一下jvm的内存大小。同学说改用分批处理了。果然想问题还是有局限性。改jvm内存大小只能暂时地解决问题,以后要是写更大的文件还是得改内存。想问题要长远啊
org.apache.tools.zip实现文件的压缩和解压,支持中文
bylijinnan
apache
刚开始用java.util.Zip,发现不支持中文(网上有修改的方法,但比较麻烦)
后改用org.apache.tools.zip
org.apache.tools.zip的使用网上有更简单的例子
下面的程序根据实际需求,实现了压缩指定目录下指定文件的方法
import java.io.BufferedReader;
import java.io.BufferedWrit
读书笔记-4
chengxuyuancsdn
读书笔记
1、JSTL 核心标签库标签
2、避免SQL注入
3、字符串逆转方法
4、字符串比较compareTo
5、字符串替换replace
6、分拆字符串
1、JSTL 核心标签库标签共有13个,
学习资料:http://www.cnblogs.com/lihuiyy/archive/2012/02/24/2366806.html
功能上分为4类:
(1)表达式控制标签:out
[物理与电子]半导体教材的一个小问题
comsci
问题
各种模拟电子和数字电子教材中都有这个词汇-空穴
书中对这个词汇的解释是; 当电子脱离共价键的束缚成为自由电子之后,共价键中就留下一个空位,这个空位叫做空穴
我现在回过头翻大学时候的教材,觉得这个
Flashback Database --闪回数据库
daizj
oracle 闪回数据库
Flashback 技术是以Undo segment中的内容为基础的, 因此受限于UNDO_RETENTON参数。要使用flashback 的特性,必须启用自动撤销管理表空间。
在Oracle 10g中, Flash back家族分为以下成员: Flashback Database, Flashback Drop,Flashback Query(分Flashback Query,Flashbac
简单排序:插入排序
dieslrae
插入排序
public void insertSort(int[] array){
int temp;
for(int i=1;i<array.length;i++){
temp = array[i];
for(int k=i-1;k>=0;k--)
C语言学习六指针小示例、一维数组名含义,定义一个函数输出数组的内容
dcj3sjt126com
c
# include <stdio.h>
int main(void)
{
int * p; //等价于 int *p 也等价于 int* p;
int i = 5;
char ch = 'A';
//p = 5; //error
//p = &ch; //error
//p = ch; //error
p = &i; //
centos下php redis扩展的安装配置3种方法
dcj3sjt126com
redis
方法一
1.下载php redis扩展包 代码如下 复制代码
#wget http://redis.googlecode.com/files/redis-2.4.4.tar.gz
2 tar -zxvf 解压压缩包,cd /扩展包 (进入扩展包然后 运行phpize 一下是我环境中phpize的目录,/usr/local/php/bin/phpize (一定要
线程池(Executors)
shuizhaosi888
线程池
在java类库中,任务执行的主要抽象不是Thread,而是Executor,将任务的提交过程和执行过程解耦
public interface Executor {
void execute(Runnable command);
}
public class RunMain implements Executor{
@Override
pub
openstack 快速安装笔记
haoningabc
openstack
前提是要配置好yum源
版本icehouse,操作系统redhat6.5
最简化安装,不要cinder和swift
三个节点
172 control节点keystone glance horizon
173 compute节点nova
173 network节点neutron
control
/etc/sysctl.conf
net.ipv4.ip_forward =
从c面向对象的实现理解c++的对象(二)
jimmee
C++ 面向对象 虚函数
1. 类就可以看作一个struct,类的方法,可以理解为通过函数指针的方式实现的,类对象分配内存时,只分配成员变量的,函数指针并不需要分配额外的内存保存地址。
2. c++中类的构造函数,就是进行内存分配(malloc),调用构造函数
3. c++中类的析构函数,就时回收内存(free)
4. c++是基于栈和全局数据分配内存的,如果是一个方法内创建的对象,就直接在栈上分配内存了。
专门在
如何让那个一个div可以拖动
lingfeng520240
html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml
第10章 高级事件(中)
onestopweb
事件
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
计算两个经纬度之间的距离
roadrunners
计算 纬度 LBS 经度 距离
要解决这个问题的时候,到网上查了很多方案,最后计算出来的都与百度计算出来的有出入。下面这个公式计算出来的距离和百度计算出来的距离是一致的。
/**
*
* @param longitudeA
* 经度A点
* @param latitudeA
* 纬度A点
* @param longitudeB
*
最具争议的10个Java话题
tomcat_oracle
java
1、Java8已经到来。什么!? Java8 支持lambda。哇哦,RIP Scala! 随着Java8 的发布,出现很多关于新发布的Java8是否有潜力干掉Scala的争论,最终的结论是远远没有那么简单。Java8可能已经在Scala的lambda的包围中突围,但Java并非是函数式编程王位的真正觊觎者。
2、Java 9 即将到来
Oracle早在8月份就发布
zoj 3826 Hierarchical Notation(模拟)
阿尔萨斯
rar
题目链接:zoj 3826 Hierarchical Notation
题目大意:给定一些结构体,结构体有value值和key值,Q次询问,输出每个key值对应的value值。
解题思路:思路很简单,写个类词法的递归函数,每次将key值映射成一个hash值,用map映射每个key的value起始终止位置,预处理完了查询就很简单了。 这题是最后10分钟出的,因为没有考虑value为{}的情