前言
我将这个程序分为两个功能,一是实现爬取小说的最新章节,二是爬取小说的所有章节.
仅供学习.
获取小说详情页的html
通过函数gethtml()实现.
def gethtml(url):#得到小说详细页的html
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36 Edg/98.0.1108.56"
}
try:
r = requests.get(url, headers=headers)
# time.sleep(5)
r.raise_for_status()
#print(r.request.headers)
r.encoding = r.apparent_encoding
return r.text
except:
return "产生异常1."
获取小说具体章节的URL
对于爬取所有章节和最新章节这两个功能来说,实现这个步骤分别用了两个函数 geturl_all()和 getnewtexturl() .
这两个函数用于分析爬取到了html,并分别获取所有章节的url和最新章节的url.
def geturl_all(url):
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36 Edg/98.0.1108.56"
}
try:
r = requests.get(url, headers=headers)
r.raise_for_status()
#print(r.request.headers)
r.encoding = r.apparent_encoding
r=r.text
r=str(r)
url1 = BeautifulSoup(r, 'html.parser')
ans=url1.find_all("dd")
url_list=[]
#print(type(url_list))
for i in range(0,len(ans)):
url_list.append(re.findall(r"href=.*html",str(ans[i])))
return url_list
except:
return "产生异常2."
def getnewtexturl(url):#url为小说介绍页面url,得到小说最新章节的html.
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36 Edg/98.0.1108.56"
}
try:
r = requests.get(url, headers=headers)
r.raise_for_status()
#print(r.request.headers)
r.encoding = r.apparent_encoding
r=r.text
r=str(r)
url1 = BeautifulSoup(r, 'html.parser')
ans=url1.find_all("dd")
r=str(ans[-1])
# print(url1)
ans=re.findall(r"href=.*html",r)
print(ans)
return str(ans)
except:
return "产生异常2."
获取小说章节中的正文.
通过正则表达式来清洗数据,得到正文.
def find_text(html):#得到小说正文
texts=re.findall(r'id="content"(.*)',html)
texts=str(texts)
#tests=
texts=re.split(r"\\r \\r ",texts)
#print(texts)
ans=" "
for i in range(0,len(texts)):
ans+=" "+texts[i]+"\n"
return ans
全部代码:
import requests
import os
from bs4 import BeautifulSoup
import re
import time
def gethtml(url):#得到小说详细页的html
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36 Edg/98.0.1108.56"
}
try:
r = requests.get(url, headers=headers)
# time.sleep(5)
r.raise_for_status()
#print(r.request.headers)
r.encoding = r.apparent_encoding
return r.text
except:
return "产生异常1."
def geturl_all(url):
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36 Edg/98.0.1108.56"
}
try:
r = requests.get(url, headers=headers)
r.raise_for_status()
#print(r.request.headers)
r.encoding = r.apparent_encoding
r=r.text
r=str(r)
url1 = BeautifulSoup(r, 'html.parser')
ans=url1.find_all("dd")
url_list=[]
#print(type(url_list))
for i in range(0,len(ans)):
url_list.append(re.findall(r"href=.*html",str(ans[i])))
return url_list
except:
return "产生异常2."
def getnewtexturl(url):#url为小说介绍页面url,得到小说最新章节的html.
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36 Edg/98.0.1108.56"
}
try:
r = requests.get(url, headers=headers)
r.raise_for_status()
#print(r.request.headers)
r.encoding = r.apparent_encoding
r=r.text
r=str(r)
url1 = BeautifulSoup(r, 'html.parser')
ans=url1.find_all("dd")
r=str(ans[-1])
# print(url1)
ans=re.findall(r"href=.*html",r)
print(ans)
return str(ans)
except:
return "产生异常2."
def find_text(html):#得到小说正文
texts=re.findall(r'id="content"(.*)',html)
texts=str(texts)
#tests=
texts=re.split(r"\\r \\r ",texts)
#print(texts)
ans=" "
for i in range(0,len(texts)):
ans+=" "+texts[i]+"\n"
return ans
moshi=input("1.爬取全文.\n2.爬取最新章节.\n")
def hind_all():
r= open("小说全部章节.text", 'w+', encoding="utf-8")
url = "为了过审QAQ" # 书籍详细介绍页.
url_list =geturl_all(url)
# print(url_list)
for i in range(0,len(url_list)):
print("正在爬取中,请稍候当前在",i,"章节")
#print(url_list[i])
url=str(url_list[i])
url = "为了过审QAQ" + url[8:-2]
html = gethtml(url) ##得到小说最新章节html
text = find_text(html) # 分析出小说正文.
r.write(text)
r.close()
print("爬取成功.")
def hind_last():
url = "为了过审QAQ" # 书籍详细介绍页.
url = getnewtexturl(url) # 得到小说最新章节url
print(url)
url = "为了过审QAQ" + url[8:-2]
# print(url)
html = gethtml(url) ##得到小说最新章节html
# print(html)
# print(type(html))
text = find_text(html) # 分析出小说正文.
# print(text)
with open("小说最新章节.text", 'w+', encoding="utf-8") as f:
f.write(text)
f.close()
if moshi=="1":
hind_all();
else:
hind_last();
更新:
隔了一段时间,感觉原功能还是太简陋,想要爬小说,必须要给定小说的介绍页面的url.所以我又优化了一下程序,新增了几个函数,来实现类似搜索引擎的功能.
首先模拟浏览器发出post请求,去请求你想要搜索的小说的名字.利用以下函数来实现.
def findbook(url):#得到小说详细页的html
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36 Edg/98.0.1108.56"
}
name=input("请输入你想要搜索的小说名字:")
keyword={
" searchkey": name
}
try:
# r = requests.get(url, headers=headers,keyword=keyword)
r=requests.post(url=url,data=keyword,headers=headers)
r.encoding = r.apparent_encoding
return r.text
except:
return "搜索框错误."
然后进行数据清洗,在浏览器给出的响应信息页面中找出搜索结果,找出搜索到的小说和其介绍页面的url.
def findbookurl(html):
soup = BeautifulSoup(html, 'html.parser')
soup=soup.find_all("td",attrs={"class":"even"})
soup=str(soup)
listurl=soup.split("",listurl[i])#+re.findall(r">.*",listurl[i])
# urllist[i]=listurl[i][22:]
if len(data)==0:
continue
# print(str(data))
data=str(data)
urllist.append(data)
#print(listurl[i])
return urllist
返回格式是一个列表,列表的每个元素里边记录了每个搜索到的小说的url和书名.
然后输入想要爬取第几本书.
listurl=findbookurl(text)
print(listurl)
num=input("你想要爬取第几本小说?")
urlnum=listurl[int(num)-1].find("\"")
#print(listurl[int(num)-1][2:urlnum])
url=listurl[int(num)-1][2:urlnum]
namenumstar=listurl[int(num)-1].find(">")
namenumend=listurl[int(num)-1].find("<")
#print(listurl[int(num)-1][namenumstar+1:namenumend])
name=listurl[int(num)-1][namenumstar+1:namenumend]
接下来就是将其url传入之前写的函数里,和之前功能相仿.最后依旧是将小说内容存入TXT文档里.
完整代码:
import requests
import os
from bs4 import BeautifulSoup
import re
import time
import pa
def findbook(url):#得到小说详细页的html
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36 Edg/98.0.1108.56"
}
name=input("请输入你想要搜索的小说名字:")
keyword={
" searchkey": name
}
try:
# r = requests.get(url, headers=headers,keyword=keyword)
r=requests.post(url=url,data=keyword,headers=headers)
r.encoding = r.apparent_encoding
return r.text
except:
return "搜索框错误."
def findbookurl(html):
soup = BeautifulSoup(html, 'html.parser')
soup=soup.find_all("td",attrs={"class":"even"})
soup=str(soup)
listurl=soup.split("",listurl[i])#+re.findall(r">.*",listurl[i])
# urllist[i]=listurl[i][22:]
if len(data)==0:
continue
# print(str(data))
data=str(data)
urllist.append(data)
#print(listurl[i])
return urllist
def gethtml(url):#得到小说详细页的html
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36 Edg/98.0.1108.56"
}
try:
r = requests.get(url, headers=headers)
# time.sleep(5)
r.raise_for_status()
#print(r.request.headers)
r.encoding = r.apparent_encoding
return r.text
except:
return "产生异常1."
def geturl_all(url):
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36 Edg/98.0.1108.56"
}
try:
r = requests.get(url, headers=headers)
r.raise_for_status()
#print(r.request.headers)
r.encoding = r.apparent_encoding
r=r.text
r=str(r)
url1 = BeautifulSoup(r, 'html.parser')
ans=url1.find_all("dd")
url_list=[]
#print(type(url_list))
for i in range(0,len(ans)):
url_list.append(re.findall(r"href=.*html",str(ans[i])))
return url_list
except:
return "产生异常2."
def getnewtexturl(url):#url为小说介绍页面url,得到小说最新章节的html.
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36 Edg/98.0.1108.56"
}
try:
r = requests.get(url, headers=headers)
r.raise_for_status()
#print(r.request.headers)
r.encoding = r.apparent_encoding
r=r.text
r=str(r)
url1 = BeautifulSoup(r, 'html.parser')
ans=url1.find_all("dd")
r=str(ans[-1])
# print(url1)
ans=re.findall(r"href=.*html",r)
print(ans)
return str(ans)
except:
return "产生异常2."
def find_text(html):#得到小说正文
texts=re.findall(r'id="content"(.*)',html)
texts=str(texts)
#tests=
texts=re.split(r"\\r \\r ",texts)
#print(texts)
ans=" "
for i in range(0,len(texts)):
ans+=" "+texts[i]+"\n"
return ans
def hind_all(url):
r= open(name+"全部章节.txt", 'w+', encoding="utf-8")
url_list =geturl_all(url)
# print(url_list)
for i in range(0,len(url_list)):
print("正在爬取中,请稍候当前在",i,"章节")
#print(url_list[i])
url=str(url_list[i])
url = "为了过审QAQ" + url[8:-2]
html = gethtml(url) ##得到小说最新章节html
text = find_text(html) # 分析出小说正文.
r.write(text)
r.close()
print("爬取成功.")
def hind_last(url):
url = getnewtexturl(url) # 得到小说最新章节url
print(url)
url = "为了过审QAQ" + url[8:-2]
# print(url)
html = gethtml(url) ##得到小说最新章节html
# print(html)
# print(type(html))
text = find_text(html) # 分析出小说正文.
# print(text)
with open(name+"最新章节.txt", 'w+', encoding="utf-8") as f:
f.write(text)
f.close()
def ma(url):
moshi=input("1.爬取全文.\n2.爬取最新章节.\n")
# url = "为了过审QAQ"
if moshi == "1":
hind_all(url);
else:
hind_last(url);
url="为了过审QAQ"
text=findbook(url)
listurl=findbookurl(text)
print(listurl)
num=input("你想要爬取第几本小说?")
urlnum=listurl[int(num)-1].find("\"")
#print(listurl[int(num)-1][2:urlnum])
url=listurl[int(num)-1][2:urlnum]
namenumstar=listurl[int(num)-1].find(">")
namenumend=listurl[int(num)-1].find("<")
#print(listurl[int(num)-1][namenumstar+1:namenumend])
name=listurl[int(num)-1][namenumstar+1:namenumend]
ma(url)
你可能感兴趣的:(Pyhon,python,爬虫)
【Python系列】使用切片移动元素位置
Kwan的解忧杂货铺@新空间代码工作室
s2 Python python 开发语言
欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。推荐:kwan的首页,持续学习,不断总结,共同进步,活到老学到老导航檀越剑指大厂系列:全面总结java核心技术,jvm,并发编程redis,kafka,Spring,微服务等常用开发工具系列:常用的开发工具,IDEA,Mac,Alfred,Git,
Python和数据分析:Seaborn新手指南
Python_魔力猿
python 数据分析 信息可视化
Seaborn是建立在Matplotlib之上的统计数据可视化库,它提供了高级接口和漂亮的默认样式,使得数据可视化变得更加简单和美观。1.导论Seaborn在数据可视化中的角色和优势体现在以下方面:简化API:Seaborn的API设计更加简洁,容易使用,尤其适合初学者。它能够通过几行代码生成漂亮而具有信息含量的图表。美观的默认样式:Seaborn具有吸引人的默认颜色和样式,无需额外的配置即可生成
python错误处理(try except )
960
python 开发语言
finally如果有,则一定会被执行(可以没有finally语句)。以有多个except来捕获不同类型的错误:try:print('try...')r=10/int('a')print('result:',r)exceptValueErrorase:print('ValueError:',e)exceptZeroDivisionErrorase:print('ZeroDivisionError:'
aiohttp: AttributeError: ‘NoneType‘ object has no attribute ‘get_extra_info‘
zzzzls~
Python python aiohttp asyncio
使用Proxyman分析aiohttp请求时遇到如上错误:报错环境系统:macPython:Python3.8.11aiohttp:3.8.0抓包软件:Proxyman解决方案:修改***/python3.8/site-packages/aiohttp/connector.py1211行:#注释如下行#runtime_has_start_tls=self._loop_supports_start_
Holoviews 创建复杂的可视化布局
步入烟尘
Python超入门指南全册 Holoviews python
如何使用Holoviews创建复杂的可视化布局在数据科学和数据可视化领域,Holoviews是一个非常强大的Python库,它可以帮助我们轻松地创建各种复杂的可视化布局。Holoviews提供了一个高层次的接口,使得创建交互式和静态可视化变得简单而直观。本文将介绍如何使用Holoviews来创建复杂的可视化布局,让你的数据以最直观的方式展现出来。安装Holoviews首先,确保你已经安装了Holo
Python---AttributeError: 'NoneType' object has no attribute 'xxxx'问题
Jeffrey-J
python python
做剑指找中位数题时发现如下代码报该错误data=[]data=data.append(num)会报:AttributeError:‘NoneType’objecthasnoattribute'append’错误。原因是什么呢?这时我查看了一下data的类型为。说明我们在某对象上试图使用某个方法或访问某个属性,但该对象为空。空对象肯定不会有append属性,所以报错。解决:既然新生成的对象为空,那只
Python教学 | 有备无患!详解 Python 异常处理(try-except)
企研数据
python Python 异常处理 try-except 语法错误 程序异常
更多详情请点击查看原文:Python教学|有备无患!详解Python异常处理(try-except)Python教学专栏,旨在为初学者提供系统、全面的Python编程学习体验。通过逐步讲解Python基础语言和编程逻辑,结合实操案例,让小白也能轻松搞懂Python!>>>点击此处查看往期Python教学内容本文目录引言一、关于异常二、try-except用法三、哪些情况下需要使用try-excep
【Python】解决AttributeError: ‘NoneType‘ object has no attribute ‘xxxx‘
云天徽上
Pandas python 开发语言 pandas 机器学习 numpy
【Python】解决AttributeError:'NoneType'objecthasnoattribute'xxxx'报错欢迎莅临我的个人主页这里是我深耕Python编程、机器学习和自然语言处理(NLP)领域,并乐于分享知识与经验的小天地!博主简介:我是云天徽上,一名对技术充满热情的探索者。多年的Python编程和机器学习实践,使我深入理解了这些技术的核心原理,并能够在实际项目中灵活应用。尤其
python的魔法方法
zhongguo_boy
python
python的魔法方法python中的魔法方法是一些可以让你对类添加“魔法”的特殊方法,它们经常是两个下划线包围来命名的,比如__init__,__call__。魔法方法可以使Python的自由度变得更高,在面向对象方面表现的更好。python有很多魔法方法,根据其作用和特点,归纳总结为以下几类1.基础魔法方法1.1__new____new__是真正的构造函数,在实例化对象时被调用,通常你不会实现
出现 xxx missing 1 required positional argument: ‘self‘ 解决方法
码农研究僧
BUG python bug
目录1.问题所示2.原理分析3.解决方法1.问题所示编译代码的时候,出现如下问题:E:\software\anaconda3\envs\py3.10\python.exeF:\python_project\test\main.pyTraceback(mostrecentcalllast):File"F:\python_project\test\main.py",line36,
12.2 Python绝对路径和相对路径详解
愿与你共信仰
第12章 Python文件操作(I/O) python基础超详细
在介绍绝对路径和相对路径之前,先要了解一下什么是当前工作目录。什么是当前工作目录每个运行在计算机上的程序,都有一个“当前工作目录”(或cwd)。所有没有从根文件夹开始的文件名或路径,都假定在当前工作目录下。注意,虽然文件夹是目录的更新的名称,但当前工作目录(或当前目录)是标准术语,没有当前工作文件夹这种说法。在Python中,利用os.getcwd()函数可以取得当前工作路径的字符串,还可以利用o
python爬虫处理滑块验证_python selenium爬虫滑块验证
用户6731453637
python爬虫处理滑块验证
importrandomimporttimefromPILimportImagefromioimportBytesIOimportrequestsasrqfrombs4importBeautifulSoupasbsfromseleniumimportwebdriverfromselenium.webdriverimportActionChainsfromselenium.webdriverimpo
pandas读取带有表头的数据文件,读取无表头的数据文件
小桥流水---人工智能
人工智能 深度学习 Python程序代码 pandas
在Python中使用pandas库读取数据时,常见的问题之一就是如何处理数据文件中的表头。1.引入pandas库在开始之前,我们首先需要导入pandas库。如果你的环境中还未安装pandas,可以使用pip安装:pipinstallpandas导入pandas库:importpandasaspd2.读取带有表头的数据文件当数据文件中包含表头时,pandas会默认将第一行数据作为DataFrame的
python unittest TypeError setUpClass missing 1 required positional argument cls
Kelly雨薇
python框架
pythonunittest框架使用可以用两种方法:(1)所有内容写在一个python文件里eg:https://blog.csdn.net/panyueke/article/details/85305223(2)function与主框架隔离eg:functions.pydeffun_div(x):returnx/2deffun_add(x):returnx+2deffun_minus(x):re
程式语言区分
白总Server
html python java c++ 开发语言
程序语言有很多种,每种都有其特定的用途和特点。以下是一些广泛使用的编程语言:1.Python:易于学习,广泛用于数据科学、机器学习、网络开发、自动化等领域。2.Java:广泛应用于企业级应用、安卓开发、大型系统开发等。3.C:一种基础语言,广泛用于系统编程、嵌入式开发、操作系统等领域。4.C++:C语言的扩展,支持面向对象编程,用于游戏开发、高性能应用等。5.JavaScript:主要用于网页前端
【python3.3.2】 首次接触python print 出现SyntaxError: invalid syntax
唯落瑾年
python
3.0以后的print都改为了print();>>>print'hello'SyntaxError:invalidsyntax>>>print('hello')hello>>>print(2*8)16
missing 1 required positional argument: ‘self‘
baidu_huihui
self staticmethod classmethod
missing1requiredpositionalargument:'self'解释:这个错误通常发生在Python中使用类方法时,你没有正确地使用self参数。在Python中,实例方法必须至少有一个参数,通常被命名为self,它代表实例本身。当你在类中定义一个方法时,Python会自动将这个self参数加入到方法参数列表中。解决方法:确保你在类的方法定义中使用了self参数,并且在调用这个方
2024年Python最全Python-Matplotlib可视化(1)——一文详解常见统计图的绘制(1)
2401_84558452
程序员 python matplotlib 开发语言
importmatplotlib.pyplotaspltx=range(50)y=[value*2forvalueinx]plt.plot(x,y)plt.show()上述代码将会绘制曲线y=2*x,其中x在[0,50]范围内,如下所示:可以看到窗口上方还包含多个图标,其中:|项目|Value||—|—|||此按钮用于将所绘制的图形另存为所需格式的图片,包括png,jpg,pdf,svg等常见格式
Python魔法之旅-魔法方法(01)
神奇夜光杯
python 开发语言 魔法方法 学习和成长 基础知识
目录一、概述1、定义2、作用二、主要应用场景1、构造和析构2、操作符重载3、字符串和表示4、容器管理5、可调用对象6、上下文管理7、属性访问和描述符8、迭代器和生成器9、数值类型10、复制和序列化11、自定义元类行为12、自定义类行为13、类型检查和转换14、自定义异常三、学习方法1、理解基础2、查阅文档3、编写示例4、实践应用5、阅读他人代码6、参加社区讨论7、持续学习8、练习与总结9、注意兼容
Python中的绝对路径与相对路径详解
小桥流水---人工智能
人工智能 Python程序代码 机器学习算法 python 开发语言
对路径与相对路径Python中的绝对路径与相对路径详解什么是路径?绝对路径优点:缺点:示例:相对路径优点:缺点:示例:Python中如何使用**重点内容**:**在Python中,建议使用`os.path.join`来构建路径,这样可以确保代码在不同操作系统上的兼容性。同时,理解并正确使用绝对路径和相对路径,对于开发可移植和可维护的应用程序至关重要。**结论Python中的绝对路径与相对路径详解在
python列表添加列表_Python中列表(List)方法(基础)
weixin_39843338
python列表添加列表
列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。列表的数据项不需要具有相同的类型。Python列表赋值list1=[‘physics’,‘chemistry’,1997,2000];list2=[1,2,3,4,5];list3=[“a”,“b”,“c”,“d”];Python调用列表中的值list1=[‘physics’,‘chemistry’,1997,2000];
Python安装NumPy
0阿齐兹0
阿齐兹的PyCV学习笔记 python numpy
打开cmd通过python和pip安装:C:\"ProgramFiles"\Python36\python.exe-mpipinstall--usernumpyscipymatplotlibipythonjupyterpandassympynose参考资料:https://www.scipy.org/install.html
python-列表list(详细)
一个小白白YYDS
python 开发语言
文章目录1、列表概念2、列表对象的创建3、列表访问3.1.索引获取列表元素3.2、嵌套列表索引获取列表元素3.3、获取指定元素的索引4、查询列表5、列表增加6、列表删除7、列表修改8、列表排序9、列表生成式1、列表概念语法:使用方括号[]括起来以逗号分隔的数据特性:列表是有序的同一个列表可以包含不同类型的数据列表中的元素可以重复出现可以通过索引的方式来访问列表的元素列表可以嵌套列表列表的元素可以修
python numpy安装步骤-NumPy 安装
编程大乐趣
NumPy安装Python官网上的发行版是不包含NumPy模块的。我们可以使用以下几种方法来安装。1、使用已有的发行版本对于许多用户,尤其是在Windows上,最简单的方法是下载以下的Python发行版,它们包含了所有的关键包(包括NumPy,SciPy,matplotlib,IPython,SymPy以及Python核心自带的其它包):Anaconda:免费Python发行版,用于进行大规模数据
python中列表的常见操作
945048125
python python
列表的相关操作列表中存放的数据是可以进行修改的,比如"增"、"删"、"改""添加元素("增"append,extend,insert)1.append:在列表的末尾进行添加>>>a=[123,345]>>>a.append(678)>>>a[123,345,678]2.extend可以将另一个集合中的元素逐一添加到列表中a=['a','b','c']b=['d','e','f']>>>a.exte
Python的字符串操作
心繁
python 开发语言
1、获取元素1.1索引索引是最简单的获取元素的方式。根据元素在字符串的下标位置直接输出想要获取的一个元素。例:print(str[1])str="Imissyousomuch,let'smeet."print(str[2])#输出结果为:“m”1.2切片切片可以根据元素的下标位置获取想要的多个元素。例:print(str[2:10:1]),即:print(字符串名称[起始元素下标:结束元素下标+1
【Python/Java/C++三种语言】20天拿下华为OD笔试之【位运算】2023B-出错的或电路【欧弟算法】全网注释最详细分类最全的华为OD真题
闭着眼睛学算法
最新华为OD真题 # 数学 # 位运算 算法 python java
文章目录题目描述与示例题目描述输入描述输出描述示例一输入输出说明示例二输入输出说明解题思路代码PythonJavaC++时空复杂度华为OD算法/大厂面试高频题算法练习冲刺训练题目描述与示例题目描述某生产门电路的厂商发现某一批次的或门电路不稳定,具体现象为计算两个二进制数的或操作时,第一个二进制数中某两个比特位会出现交换,交换的比特位置是随机的,但只交换这两个位,其他位不变。很明显,这个交换可能会影
【附源码】基于flask框架基于物联网技术的水质实时监测系统设计与实现 后台(python+mysql+论文)
node-php毕设程序源码
python flask mysql
本系统(程序+源码)带文档lw万字以上文末可获取本课题的源码和程序系统程序文件列表系统的选题背景和意义选题背景:随着物联网技术的迅猛发展,其在环境监测方面的应用日益广泛,特别是水质监测这一重要领域。传统的水质监测方法通常需要人工采集样本后送至实验室分析,这种方法不仅耗时耗力,而且实时性差,难以满足快速响应和预警的需求。因此,基于物联网技术的水质实时监测系统应运而生,通过传感器网络实时收集水质数据,
备战2024数学建模国赛(模型三十):遗传算法 优秀案例(三) 变循环发动机部件法建模及优化
2024年数学建模国赛
备战2024数学建模国赛 2024数学建模(不代写论文 请勿盲目订阅) 数学建模 2024年数学建模国赛 备战数学建模国赛 算法 遗传算法 2024
专栏内容(赛前预售价99,比赛期间299):2024数学建模国赛期间会发布思路、代码和优秀论文。(本专栏达不到国一的水平,适用于有一点点基础冲击省奖的同学,近两年有二十几个国二,但是达不到国一,普遍获得省奖,请勿盲目订阅)python全套教程(一百篇博客):从新手到掌握使用python,可以对数学建模问题进行建模分析。35套模型算法(优秀论文示例):马尔科夫模型、遗传算法、逻辑回归、逐步回归、蚁群
SpringMVC的架构有什么优势?——视图与模型(二)
不会编程的小孩子
架构
#SpringMVC的架构有什么优势?——视图与模型(二)前言关键字:机器学习人工智能AIchatGPT学习实现使用搭建深度python事件远程dockermysql安全技术部署技术自动化代码视图(View)视图是展示结果的组件,它们负责渲染模型数据并生成HTML输出。SpringMVC支持多种视图技术,包括JSP、Thymeleaf等。视图(View)是SpringMVC中渲染并呈现结果的组件,
html
周华华
html
js
1,数组的排列
var arr=[1,4,234,43,52,];
for(var x=0;x<arr.length;x++){
for(var y=x-1;y<arr.length;y++){
if(arr[x]<arr[y]){
&
【Struts2 四】Struts2拦截器
bit1129
struts2拦截器
Struts2框架是基于拦截器实现的,可以对某个Action进行拦截,然后某些逻辑处理,拦截器相当于AOP里面的环绕通知,即在Action方法的执行之前和之后根据需要添加相应的逻辑。事实上,即使struts.xml没有任何关于拦截器的配置,Struts2也会为我们添加一组默认的拦截器,最常见的是,请求参数自动绑定到Action对应的字段上。
Struts2中自定义拦截器的步骤是:
make:cc 命令未找到解决方法
daizj
linux 命令未知 make cc
安装rz sz程序时,报下面错误:
[root@slave2 src]# make posix
cc -O -DPOSIX -DMD=2 rz.c -o rz
make: cc:命令未找到
make: *** [posix] 错误 127
系统:centos 6.6
环境:虚拟机
错误原因:系统未安装gcc,这个是由于在安
Oracle之Job应用
周凡杨
oracle job
最近写服务,服务上线后,需要写一个定时执行的SQL脚本,清理并更新数据库表里的数据,应用到了Oracle 的 Job的相关知识。在此总结一下。
一:查看相关job信息
1、相关视图
dba_jobs
all_jobs
user_jobs
dba_jobs_running 包含正在运行
多线程机制
朱辉辉33
多线程
转至http://blog.csdn.net/lj70024/archive/2010/04/06/5455790.aspx
程序、进程和线程:
程序是一段静态的代码,它是应用程序执行的蓝本。进程是程序的一次动态执行过程,它对应了从代码加载、执行至执行完毕的一个完整过程,这个过程也是进程本身从产生、发展至消亡的过程。线程是比进程更小的单位,一个进程执行过程中可以产生多个线程,每个线程有自身的
web报表工具FineReport使用中遇到的常见报错及解决办法(一)
老A不折腾
web报表 finereport java报表 报表工具
FineReport使用中遇到的常见报错及解决办法(一)
这里写点抛砖引玉,希望大家能把自己整理的问题及解决方法晾出来,Mark一下,利人利己。
出现问题先搜一下文档上有没有,再看看度娘有没有,再看看论坛有没有。有报错要看日志。下面简单罗列下常见的问题,大多文档上都有提到的。
1、address pool is full:
含义:地址池满,连接数超过并发数上
mysql rpm安装后没有my.cnf
林鹤霄
没有my.cnf
Linux下用rpm包安装的MySQL是不会安装/etc/my.cnf文件的,
至于为什么没有这个文件而MySQL却也能正常启动和作用,在这儿有两个说法,
第一种说法,my.cnf只是MySQL启动时的一个参数文件,可以没有它,这时MySQL会用内置的默认参数启动,
第二种说法,MySQL在启动时自动使用/usr/share/mysql目录下的my-medium.cnf文件,这种说法仅限于r
Kindle Fire HDX root并安装谷歌服务框架之后仍无法登陆谷歌账号的问题
aigo
root
原文:http://kindlefireforkid.com/how-to-setup-a-google-account-on-amazon-fire-tablet/
Step 4: Run ADB command from your PC
On the PC, you need install Amazon Fire ADB driver and instal
javascript 中var提升的典型实例
alxw4616
JavaScript
// 刚刚在书上看到的一个小问题,很有意思.大家一起思考下吧
myname = 'global';
var fn = function () {
console.log(myname); // undefined
var myname = 'local';
console.log(myname); // local
};
fn()
// 上述代码实际上等同于以下代码
m
定时器和获取时间的使用
百合不是茶
时间的转换 定时器
定时器:定时创建任务在游戏设计的时候用的比较多
Timer();定时器
TImerTask();Timer的子类 由 Timer 安排为一次执行或重复执行的任务。
定时器类Timer在java.util包中。使用时,先实例化,然后使用实例的schedule(TimerTask task, long delay)方法,设定
JDK1.5 Queue
bijian1013
java thread java多线程 Queue
JDK1.5 Queue
LinkedList:
LinkedList不是同步的。如果多个线程同时访问列表,而其中至少一个线程从结构上修改了该列表,则它必须 保持外部同步。(结构修改指添加或删除一个或多个元素的任何操作;仅设置元素的值不是结构修改。)这一般通过对自然封装该列表的对象进行同步操作来完成。如果不存在这样的对象,则应该使用 Collections.synchronizedList 方
http认证原理和https
bijian1013
http https
一.基础介绍
在URL前加https://前缀表明是用SSL加密的。 你的电脑与服务器之间收发的信息传输将更加安全。
Web服务器启用SSL需要获得一个服务器证书并将该证书与要使用SSL的服务器绑定。
http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后
【Java范型五】范型继承
bit1129
java
定义如下一个抽象的范型类,其中定义了两个范型参数,T1,T2
package com.tom.lang.generics;
public abstract class SuperGenerics<T1, T2> {
private T1 t1;
private T2 t2;
public abstract void doIt(T
【Nginx六】nginx.conf常用指令(Directive)
bit1129
Directive
1. worker_processes 8;
表示Nginx将启动8个工作者进程,通过ps -ef|grep nginx,会发现有8个Nginx Worker Process在运行
nobody 53879 118449 0 Apr22 ? 00:26:15 nginx: worker process
lua 遍历Header头部
ronin47
lua header 遍历
local headers = ngx.req.get_headers()
ngx.say("headers begin", "<br/>")
ngx.say("Host : ", he
java-32.通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小(两数组的差最小)。
bylijinnan
java
import java.util.Arrays;
public class MinSumASumB {
/**
* Q32.有两个序列a,b,大小都为n,序列元素的值任意整数,无序.
*
* 要求:通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小。
* 例如:
* int[] a = {100,99,98,1,2,3
redis
开窍的石头
redis
在redis的redis.conf配置文件中找到# requirepass foobared
把它替换成requirepass 12356789 后边的12356789就是你的密码
打开redis客户端输入config get requirepass
返回
redis 127.0.0.1:6379> config get requirepass
1) "require
[JAVA图像与图形]现有的GPU架构支持JAVA语言吗?
comsci
java语言
无论是opengl还是cuda,都是建立在C语言体系架构基础上的,在未来,图像图形处理业务快速发展,相关领域市场不断扩大的情况下,我们JAVA语言系统怎么从这么庞大,且还在不断扩大的市场上分到一块蛋糕,是值得每个JAVAER认真思考和行动的事情
安装ubuntu14.04登录后花屏了怎么办
cuiyadll
ubuntu
这个情况,一般属于显卡驱动问题。
可以先尝试安装显卡的官方闭源驱动。
按键盘三个键:CTRL + ALT + F1
进入终端,输入用户名和密码登录终端:
安装amd的显卡驱动
sudo
apt-get
install
fglrx
安装nvidia显卡驱动
sudo
ap
SSL 与 数字证书 的基本概念和工作原理
darrenzhu
加密 ssl 证书 密钥 签名
SSL 与 数字证书 的基本概念和工作原理
http://www.linuxde.net/2012/03/8301.html
SSL握手协议的目的是或最终结果是让客户端和服务器拥有一个共同的密钥,握手协议本身是基于非对称加密机制的,之后就使用共同的密钥基于对称加密机制进行信息交换。
http://www.ibm.com/developerworks/cn/webspher
Ubuntu设置ip的步骤
dcj3sjt126com
ubuntu
在单位的一台机器完全装了Ubuntu Server,但回家只能在XP上VM一个,装的时候网卡是DHCP的,用ifconfig查了一下ip是192.168.92.128,可以ping通。
转载不是错:
Ubuntu命令行修改网络配置方法
/etc/network/interfaces打开后里面可设置DHCP或手动设置静态ip。前面auto eth0,让网卡开机自动挂载.
1. 以D
php包管理工具推荐
dcj3sjt126com
PHP Composer
http://www.phpcomposer.com/
Composer是 PHP 用来管理依赖(dependency)关系的工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer 会帮你安装这些依赖的库文件。
中文文档
入门指南
下载
安装包列表
Composer 中国镜像
Gson使用四(TypeAdapter)
eksliang
json gson Gson自定义转换器 gsonTypeAdapter
转载请出自出处:http://eksliang.iteye.com/blog/2175595 一.概述
Gson的TypeAapter可以理解成自定义序列化和返序列化 二、应用场景举例
例如我们通常去注册时(那些外国网站),会让我们输入firstName,lastName,但是转到我们都
JQM控件之Navbar和Tabs
gundumw100
html xml css
在JQM中使用导航栏Navbar是简单的。
只需要将data-role="navbar"赋给div即可:
<div data-role="navbar">
<ul>
<li><a href="#" class="ui-btn-active&qu
利用归并排序算法对大文件进行排序
iwindyforest
java 归并排序 大文件 分治法 Merge sort
归并排序算法介绍,请参照Wikipeida
zh.wikipedia.org/wiki/%E5%BD%92%E5%B9%B6%E6%8E%92%E5%BA%8F
基本思想:
大文件分割成行数相等的两个子文件,递归(归并排序)两个子文件,直到递归到分割成的子文件低于限制行数
低于限制行数的子文件直接排序
两个排序好的子文件归并到父文件
直到最后所有排序好的父文件归并到输入
iOS UIWebView URL拦截
啸笑天
UIWebView
本文译者:candeladiao,原文:URL filtering for UIWebView on the iPhone说明:译者在做app开发时,因为页面的javascript文件比较大导致加载速度很慢,所以想把javascript文件打包在app里,当UIWebView需要加载该脚本时就从app本地读取,但UIWebView并不支持加载本地资源。最后从下文中找到了解决方法,第一次翻译,难免有
索引的碎片整理SQL语句
macroli
sql
SET NOCOUNT ON
DECLARE @tablename VARCHAR (128)
DECLARE @execstr VARCHAR (255)
DECLARE @objectid INT
DECLARE @indexid INT
DECLARE @frag DECIMAL
DECLARE @maxfrag DECIMAL
--设置最大允许的碎片数量,超过则对索引进行碎片
Angularjs同步操作http请求with $promise
qiaolevip
每天进步一点点 学习永无止境 AngularJS 纵观千象
// Define a factory
app.factory('profilePromise', ['$q', 'AccountService', function($q, AccountService) {
var deferred = $q.defer();
AccountService.getProfile().then(function(res) {
hibernate联合查询问题
sxj19881213
sql Hibernate HQL 联合查询
最近在用hibernate做项目,遇到了联合查询的问题,以及联合查询中的N+1问题。
针对无外键关联的联合查询,我做了HQL和SQL的实验,希望能帮助到大家。(我使用的版本是hibernate3.3.2)
1 几个常识:
(1)hql中的几种join查询,只有在外键关联、并且作了相应配置时才能使用。
(2)hql的默认查询策略,在进行联合查询时,会产
struts2.xml
wuai
struts
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache