电子书网站:
http://www.qu.la/paihangbang/
对网页进行分析可知,
玄幻奇幻排行
武侠仙侠排行
历史军事排行
完本小说排行
观察发现,历史军事和完本小说的时一致的,其余类别是一样的,所以进行分开处理。
每一个分类都是包裹在:
之中 这种调理清晰的网站,大大方便了我们爬虫的编写
一个类别里,出现了排行榜上所有的小说:
玄幻奇幻排行
08-01 1. 太古神王
标题:title = div.a['title'] 链接: link = 'http://www.qu.la/' + div.a['href']
比如小说太古神王链接==http://www.qu.la/book/4140/
观察可知== 网站链接 + 书本链接
由于在总/ 周 / 月排行中难免出现重复的电子书,所以进行了列表去重操作:
列表去重的小技巧:
尤其是在面对爬大量网页的时候,会浪费大量的资源,那么我们如何从抓取的url 列表里去重呢? 刚学 Python 的小伙伴可能会去实现一个循环算法,来去重, 但是 Python 的强大之处就在于他可以通过及其优美的方式来解决很多问题,这里其实只要一行代码就能解决: url_list = list(set(url_list)) 这里我们调用了一个list 的构造函数 set :这样就能保证列表里没有重复的元素了。
然后我们对于电子书《择天记》进行操作:
观察网页信息可知,
link='http://www.qu.la/' + url.a['href']
打开各章节的内容,查看可知:
《太古神王》正文卷
第一章 断脉修行
第二章 恩将仇报
第三章 天才觉醒
......
我们能发现所有的正文内容,都保存在: 所有的章节名就更简单了:
第一章 我改主意了 那我们通过bs4库的各种标签的查找方法,就能很简单的找到啦 好了,让我们看看具体代码的实现:
打开任意章节:
;
世界是相对的。
中土大陆隔着海洋与大西洲遥遥相对。东方地势较高,那里的天空似乎也高了起来,云雾从海上陆地上升腾而起,不停向着那处飘去,最终汇聚在一起,终年不散。
......
开始处,id="content"
结尾处,chaptererror();
这里有个小技巧: 我们从网上趴下来的文件很多时候都是带着 之类的格式化标签, 我们可以通过一个简单的方法把他过滤掉:
html = get_html(url).replace(' ', '\n')
#!/usr/bin/env python
# coding=utf-8
import requests
import bs4
def get_html(url): #网页内容抓取
try:
r = requests.get(url,timeout=30)
r.raise_for_status
r.encoding = r.apparent_encoding
# r.encoding = 'utf-8'
return r.text
except:
print("Open Error!!!")
def get_content(url):
"""
爬取每一类型小说排行榜,
按顺序写入文件,
文件内容为 小说名字+小说链接
将内容保存到列表
并且返回一个装满url链接的列表
"""
url_list = []
html = get_html(url)
# 煮汤
soup = bs4.BeautifulSoup(html,'lxml')
# 看到历史类和完本类的小说与其他小说不在一个div,分开读取
category_list = soup.find_all('div', attrs={'class:','index_toplist mright mbottom'})
# 匹配历史和完本类别的数目
histoty_finished_list = soup.find_all('div', attrs={'class:','index_toplist mbottom'})
for cate in category_list:
name = cate.find('div',attrs={'class:','toptab'}).span.string
with open('novel_list.csv', 'a+') as f:
f.write("\n小说种类:{} \n".format(name))
# 通过id来对总排行榜进行定位,
general_list = cate.find(style='display: block;')
# 找到全部小说名字,发现她们全部都包含在li标签中
book_list = general_list.find_all('li')
# 循环遍历每一个小说的名字以及链接
for book in book_list:
link = 'http://www.qu.la/' + book.a['href']
title = book.a['title']
# 将所有文章的url地址保存在一个列表变量里
url_list.append(link)
# 这里使用a模式,防止清空文件
with open('novel_list.csv','a') as f:
f.write("小说名: {:<} \t 小说地址: {:<} \n".format(title, link))
for cate in histoty_finished_list:
name = cate.find('div', class_='toptab').span.string
with open('novel_list.csv', 'a') as f:
f.write("\n小说种类:{} \n".format(name))
general_list = cate.find(style='display: block;') #找到总排行榜
book_list = general_list.find_all('li')
for book in book_list:
link = 'http://www.qu.la/' + book.a['href']
title = book.a['title']
url_list.append(link)
with open('novel_list.csv', 'a') as f:
f.write("小说名:{:<} \t 小说地址:{:<} \n".format(title, link))
return url_list
def get_txt_url(url):
"""
获取每个章节的url地址:
并创建小说文件
"""
url_list = []
html = get_html(url)
soup =bs4.BeautifulSoup(html,'lxml')
lista = soup.find_all('dd')
# dd是包含小说每一章节链接
txt_name = soup.find('h1').text
# h1 是小说标题
with open ('小说/{}.txt'.format(txt_name),"a+") as f:
print("小说:%s文件创建成功!" %txt_name)
f.write('小说标题:{}\n'.format(txt_name))
for url in lista:
url_list.append('http://www.qu.la/' + url.a['href'])
return url_list, txt_name
def get_one_txt(url, txt_name):
"""获取小说每个章节文本并写入到本地"""
html = get_html(url).replace(' ', '\n')
soup = bs4.BeautifulSoup(html,'lxml')
try:
txt = soup.find('div', id='content').text.replace('chaptererror();','')
title = soup.find('title').text
# 观察正文可知,里面的原文可以扣取出来
with open ('小说/{}.txt'.format(txt_name),"a") as f:
f.write(title+'\n\n')
f.write(txt)
print("当前小说:{} 当前章节:{} 已经下载完毕".format(txt_name,title))
except:
print("Something wrong")
def get_all_txt(url_list):
"""下载排行榜里所有的小说
并保存为txt格式
"""
for url in url_list:
# 获取当前小说的所有章节目录
# 并且声称小说头文件
page_list, txt_name = get_txt_url(url)
"""
for page_url in page_list:
# 遍历每一篇小说,并下载到目录
get_one_txt(page_url, txt_name)
print('当前进度 {}% '.format(url_list.index(url) / len(url_list) * 100))
"""
def main():
# 排行榜地址
base_url = 'http://www.qu.la/paihangbang/'
# 获取排行榜中所有小说链接
url_list = get_content(base_url)
#除去重复小说
url_list = list(set(url_list))
get_all_txt(url_list)
if __name__=='__main__':
main()
缺点: 本次爬虫写的这么顺利,更多的是因为爬的网站是没有反爬虫技术,以及文章分类清晰,结构优美。 但是,按照我们的这篇文的思路去爬取小说,我大概计算了一下: 一篇文章需要:0.5s 一本小说(1000张左右):8.5分钟 全部排行榜(60本): 8.5小时! 这种单线程的爬虫,速度如何能提高呢?
原作者链接:
每天的学习记录都会 同步更新到: 微信公众号: findyourownway 知乎专栏:https://zhuanlan.zhihu.com/Ehco-python blog : www.ehcoblog.ml Github: https://github.com/Ehco1996/Python-crawler
你可能感兴趣的:(爬虫,python,Python爬虫)
7.asyncio库详解
汪汪队~
Python系列教程之进阶篇 python
深入理解Python的asyncio库Python的asyncio库是一个强大的异步I/O框架,用于处理并发和异步编程。它提供了一种基于协程的方式来处理异步任务,使得编写异步代码更加简单和直观。1.什么是asyncio?asyncio是Python3.4引入的标准库,用于编写协程和异步代码。它基于事件循环(EventLoop)的概念,通过异步任务(coroutines)和Future对象来实现非阻
opencv 自适应阈值
虚假程序设计
opencv 人工智能 计算机视觉
需要安装扩展库opencv-contrib-pythonCV_class.pyimportcv2importnumpyasnp#importserialimportos,sysfromdatetimeimportdatetimeimport_threadimportthreadingimporttimeimportwin32ui#只有windows能用.#fromCV_classimport*de
Spring Boot 动态配置数据源全解析
♢.*
spring boot 后端 java
亲爱的小伙伴们,在求知的漫漫旅途中,若你对深度学习的奥秘、Java与Python的奇妙世界,亦或是读研论文的撰写攻略有所探寻,那不妨给我一个小小的关注吧。我会精心筹备,在未来的日子里不定期地为大家呈上这些领域的知识宝藏与实用经验分享。每一个点赞,都如同春日里的一缕阳光,给予我满满的动力与温暖,让我们在学习成长的道路上相伴而行,共同进步✨。期待你的关注与点赞哟!引言在企业级应用开发中,单一数据源往往
深入解析:如何编写 Mapper 文件
♢.*
oracle 数据库 mybatis
亲爱的小伙伴们,在求知的漫漫旅途中,若你对深度学习的奥秘、Java与Python的奇妙世界,亦或是读研论文的撰写攻略有所探寻,那不妨给我一个小小的关注吧。我会精心筹备,在未来的日子里不定期地为大家呈上这些领域的知识宝藏与实用经验分享。每一个点赞,都如同春日里的一缕阳光,给予我满满的动力与温暖,让我们在学习成长的道路上相伴而行,共同进步✨。期待你的关注与点赞哟!在软件开发尤其是涉及数据库交互的项目中
【Python】7天-python实现缓存-day01
qq_40375355
Python-7天小项目 python python 缓存 开发语言
使用Python实现类似redis的缓存,原文是使用go实现的,本文使用python实现,用来比较两者的区别,方便从python转go的开发者比较二者的不同。PS:原文链接是:https://geektutu.com/post/geecache-day1.htmlPS:预计在完成前还会对本文多次修改仅作参考PS:测试代码也会在后续补充一、LRU和LRU-K原文使用的是LRU算法,这里改成LRU-K
100种算法【Python版】第38篇—— Tarjan算法
AnFany
算法 python 开发语言 Tarjan算法 群体分析
本文目录1算法说明2算法示例:社交群体分析3算法示例:交通路网中的强连通分量识别4算法应用1算法说明Tarjan算法由计算机科学家RobertTarjan于1972年提出,目的是在有向图中有效地找到强连通分量(StronglyConnectedComponents,SCC)。强连通分量是指图中一个最大子图,其中任意两个节点之间都有路径相互可达。Tarjan算法是基于深度优先搜索(DFS)的一种高效
Python实现强连通分量算法——Tarjan算法
NoABug
算法 深度优先 python
Python实现强连通分量算法——Tarjan算法Tarjan算法是一种基于深度优先搜索(DFS)的强连通分量(SCC)查找算法,由RobertTarjan在1972年提出。它采用了栈(Stack)数据结构来记录已发现但未处理完的节点,并通过对每个节点进行DFS遍历来寻找强连通分量。以下是Python实现的Tarjan算法的完整源码:#-*-coding:utf-8-*-deftarjan(gra
No module named ‘typing‘ 问题解决
qq_40375355
Linx linux python
ImportError:Nomodulenamed‘typing’问题解决1.问题描述Linux环境升级pip到最新后,运行pip命令出现"Nomodulenamed‘typing’"错误2.问题原因Linux默认环境是2.7,pip==21已经不在支持python2.7,所以出现该问题3.解决方案网上通用python-mpipuninstallpip执行该命令,如果报错以下内容:'pip'isa
Python -- asyncio库
鹿夏
asyncio协程前言问题的引出多线程版本多进程版本生成器版本事件循环协程FutureTask任务协程的使用回调的使用多个任务执行使用回调,如下新语法TCPEchoServer举例aiohttp库安装文档开发前言3.4版本加入标准库。asyncio底层基于selectors实现,看似库,其实就是个框架,包含异步IO、事件循环、协程、任务等内容问题的引出defa():forxinrange(3):p
别再 pip install 了!一个绝佳的包管理器:pipx
西坡不是东坡
python学习 pip
在Python开发过程中,我们常常需要安装各种各样的工具库。有些库是项目级别的,比如Django或者Flask,而有些库是我们在整个系统中都可能用到的命令行工具,比如black、flake8、httpie等。对于后者,传统的pip安装方式可能会引发一些版本冲突或者环境污染的问题。这时,pipx就成了我们的救星。什么是pipx?pipx是一个用于安装和管理Python命令行工具的工具。它的主要优势在
python爬虫项目(一百九十八):电商平台用户行为数据分析与推荐系统、爬取电商平台用户行为数据
人工智能_SYBH
爬虫试读 2025年爬虫百篇实战宝典: 从入门到精通 python 爬虫 数据分析 开发语言 信息可视化 okhttp
在现代电商平台中,用户的行为数据对于优化用户体验、提升销量以及个性化推荐至关重要。通过抓取和分析用户的浏览、点击、购买等行为数据,电商平台能够更好地了解用户的偏好,从而推荐相关产品,增加用户的黏性和购买意愿。本篇博客将详细介绍如何通过爬虫技术抓取电商平台的用户行为数据,并结合数据分析和推荐算法,构建一个简单的推荐系统。目录一、电商平台用户行为数据二、爬虫技术实现2.1网站分析2.2使用Seleni
爬虫学习第六篇轻松搞定网络请求
笨鸟笃行
python学习 爬虫 学习 python
嘿,小伙伴们!今天咱们来聊聊用Python进行网络请求,这是爬虫学习的敲门砖哦。别怕,跟着我一步步来,保证让你轻松上手!(一)安装requests模块首先,得把requests模块装上。看过上一篇的小伙伴应该都搞定了吧,这玩意儿超好用,能帮我们轻松发起网络请求。如果没搞定的,跟着我重新安装一遍,在vscode的终端里输入pipinstallrequests,回车,搞定!就像给手机装了个APP一样简
爬虫学习第一篇(认识爬虫流程和使用工具)
笨鸟笃行
python学习 爬虫 学习
认识爬虫什么是爬虫?爬虫听着好像是一个什么虫子的名字,其实爬虫是一个自动化请求网站并提取数据的程序,简单理解即是一个自动化爬取数据的脚本例如以下就是一个十分简单的爬虫代码(不过这个代码不适用于所有网页,只能爬取一些没有限制的网站)importrequests#导入请求库url=""#输入爬取内容的地址res=requests.get(url)#发送请求到url这个地址print(res.statu
爬虫第二篇(网络通信之发送请求)
笨鸟笃行
python学习 爬虫
发起请求请求的组成部分1.请求方式(get,post等)2.请求url(目标的url)3.请求头(一般需要包含user-agent,referer,cookie)4.请求体(主要应用于post请求,post请求的参数在请求体内,get参数一般在url里面)请求方式GET请求1.定义GET请求是HTTP协议中最常见的请求方法之一,用于从服务器获取资源。它通过URL地址来请求数据,通常用于获取网页内容
Python标准库之asyncio
june_francis
python库 python
asyncio是Python3.4版本引入的标准库,直接内置了对异步IO的支持。asyncio的编程模型就是一个消息循环。我们从asyncio模块中直接获取一个EventLoop的引用,然后把需要执行的协程扔到EventLoop中执行,就实现了异步IO。用asyncio实现Helloworld代码如下:
[email protected] ():print(
使用Python或R语言重新拟合模型
pk_xz123456
python 算法 python r语言 开发语言
以下分别给出使用Python和R语言完成该任务的示例代码,假设我们有一个包含被试编号、实验条件和反应时的数据,并且要拟合一个线性回归模型。Python实现importpandasaspdimportnumpyasnpimportstatsmodels.apiassm#生成示例数据data={'subject':np.repeat(range(1,11),5),'condition':np.tile
python模拟监测自动驾驶模拟过程中违反交通规则的车辆
go5463158465
python 算法 深度学习 python 自动驾驶 开发语言
以下是一个简单的Python示例,用于模拟监测自动驾驶模拟过程中违反交通规则的车辆。在这个示例中,我们假设交通规则包括车辆不能超过限速,并且不能在红灯时通过路口。importrandom#定义交通规则SPEED_LIMIT=60#限速,单位:km/hTRAFFIC_LIGHTS=["red","green"]#交通灯状态#定义车辆类classVehicle:def__init__(self,id)
python asyncio (协程、异步编程)
_Rabbit_
python python 开发语言
文章目录1.简介2.什么是协程3.为何异步4.如何异步4.1简单示例4.2事件循环4.3协程函数和协程对象4.4await关键字4.5Task对象4.6asyncio的Future对象4.7concurrent.futures的Future对象4.8异步迭代器4.9异步上下文管理器4.10uvloop4.11异步库1.简介asyncio(AsynchronousI/O)模块是一个异步代码库,它提供
【华为OD-E卷 - 120 分割数组的最大差值 100分(python、java、c++、js、c)】
CodeClimb
算法题 华为od (A+B+C+D+E 卷)收录分享 华为od python java c++ javascript
【华为OD-E卷-分割数组的最大差值100分(python、java、c++、js、c)】题目给定一个由若干整数组成的数组nums,可以在数组内的任意位置进行分割,将该数组分割成两个非空子数组(即左数组和右数组),分别对子数组求和得到两个值,计算这两个值的差值,请输出所有分割方案中,差值最大的值输入描述第一行输入数组中元素个数n,10?prefixSum[i-1]:0);}longtotalSum
Python爬虫实战(一):翻页爬取数据存入SqlServer_python爬虫翻页
2401_84563438
程序员 python 爬虫 sqlserver
print(str(e))#关闭游标,断开数据库cursor.close()db.close()#实现主要逻辑defrun(self):fortype_numinrange(1,46):#1.拼接网页获取每个类别的页数pageurl=self.baseurl%(1,type_num)html_str=self.parse_url(url)page=self.get_page_num(html_st
OpenCV开源机器视觉软件
视觉人机器视觉
杂说 opencv 开源 人工智能
OpenCV(OpenSourceComputerVisionLibrary)是一个开源的计算机视觉和机器学习软件库,广泛应用于实时图像处理、视频分析、物体检测、人脸识别等领域。它由英特尔实验室于1999年发起,现已成为计算机视觉领域最流行的工具之一,支持多种编程语言(如C++、Python、Java)和操作系统(Windows、Linux、macOS、Android、iOS)。核心功能图像处理基
Spring Boot 中 @Transactional 注解全面解析
♢.*
spring boot 数据库 sql
亲爱的小伙伴们,在求知的漫漫旅途中,若你对深度学习的奥秘、Java与Python的奇妙世界,亦或是读研论文的撰写攻略有所探寻,那不妨给我一个小小的关注吧。我会精心筹备,在未来的日子里不定期地为大家呈上这些领域的知识宝藏与实用经验分享。每一个点赞,都如同春日里的一缕阳光,给予我满满的动力与温暖,让我们在学习成长的道路上相伴而行,共同进步✨。期待你的关注与点赞哟!引言在企业级应用开发中,数据的一致性和
5分钟用 Python 写一个软件,快速入门 PySimpleGUI
西坡不是东坡
python学习 python 开发语言
大家好,很多人都想写一个自己的桌面程序,那么PySimpleGUI是一个非常好的选择,它旨在简化GUI(图形用户界面)的创建过程。它基于几种流行的PythonGUI库,如tkinter、Qt、WxPython和Remi,但提供了一个更简单直观的接口。通过PySimpleGUI,即使是没有图形界面开发经验的开发者也可以快速创建漂亮、功能丰富的窗口应用。为什么选择PySimpleGUI?易用性:PyS
使用ArcGIS和ArcGISLoader进行地理信息处理
scaFHIO
arcgis python
ArcGIS是由Esri开发和维护的地理信息系统(GIS)软件家族,包括客户端、服务器和在线解决方案。对于开发者来说,Python库arcgis提供了强大的功能,支持矢量和栅格分析、地理编码、制图、路径规划等。此外,它还能够管理用户、组和信息项,并可访问Esri及其他权威来源提供的即用型地图和地理数据,也支持自有数据的使用。1.技术背景介绍ArcGIS是一款广泛应用于地理信息系统中的专业工具,它可
python 多进程
Zswdhy
python
#-*-coding:utf-8-*-importtimeimportpymysqlfrommultiprocessingimportProcessfromdatetimeimportdatemonth=date.today().strftime("%Y%m")HOST,USER,PASSWD,DB,PORT='192.168.1.1','admin','password','database',
使用 Python 实现基于 AGA8 GERG - 2008 方程计算掺氢天然气压缩因子的示例代码
go5463158465
python 算法 python 算法 开发语言
AGA8GERG-2008方程是用于计算天然气混合物热力学性质的一种方法,下面是一个使用Python实现基于AGA8GERG-2008方程计算掺氢天然气压缩因子的示例代码。需要注意的是,AGA8GERG-2008方程非常复杂,完整实现需要大量的系数和详细的计算步骤。这里我们简化了部分过程,使用CoolProp库来完成计算,因为CoolProp已经实现了GERG-2008方程。安装依赖库首先确保你已
2024年最全Python入门的60个基础练习(二)(1)
2401_84281588
程序员 python 开发语言
data=f.read(4)#读4字节f.readline()#读到换行符、n结束f.readlines()#把每一行数据读出来放到列表中f.close()################################f=open(‘/tmp/passwd’)forlineinf:print(line,end=‘’)f.close()##############################f
告诉你如何用springboot调用python脚本
luckilyil
项目 spring boot python 后端
目录springboot调用python脚本准备工作方法一:使用ProcessBuilder1.编写测试方法2.解释代码方法二:使用ApacheCommonsExec1.编写测试方法2.解释代码Python脚本的数据通过接口让SpringBoot接收。Python脚本作为服务1.使用Flask创建PythonHTTP服务2.在SpringBoot中调用PythonHTTP服务使用RestTempl
python判断redis中key是否存在_Redis中关于Key的模糊查找
weixin_39846364
最近使用Redis优化项目功能,其中有一部分为模糊查询,找了很多帖子,也没有找到很好的解决方案和思路,最终皇天不负有心人啊,终于让我找到了!!!可以通过Redis中keys命令进行获取key值,具体命令格式:keyspattern文中提到redis中允许模糊查询的有3个通配符,分别是:*,?,[]其中:*:通配任意多个字符?:通配单个字符[]:通配括号内的某一个字符================
连连看 - 蓝桥杯2024年第十五届省赛真题
千小凡
蓝桥杯算法 蓝桥杯 算法 python java
基础知识要求:Java:Scanner类、方法、for循环、集合、数组、Math类Python:方法、for循环、字典、if判断、列表、map()、abs()、input()题目:小蓝正在和朋友们玩一种新的连连看游戏。在一个n×m的矩形网格中,每个格子中都有一个整数,第i行第j列上的整数为Ai,j。玩家需要在这个网格中寻找一对格子(a,b)−(c,d)使得这两个格子中的整数Aa,b和Ac,d相等,
Java 并发包之线程池和原子计数
lijingyao8206
Java计数 ThreadPool 并发包 java线程池
对于大数据量关联的业务处理逻辑,比较直接的想法就是用JDK提供的并发包去解决多线程情况下的业务数据处理。线程池可以提供很好的管理线程的方式,并且可以提高线程利用率,并发包中的原子计数在多线程的情况下可以让我们避免去写一些同步代码。
这里就先把jdk并发包中的线程池处理器ThreadPoolExecutor 以原子计数类AomicInteger 和倒数计时锁C
java编程思想 抽象类和接口
百合不是茶
java 抽象类 接口
接口c++对接口和内部类只有简介的支持,但在java中有队这些类的直接支持
1 ,抽象类 : 如果一个类包含一个或多个抽象方法,该类必须限定为抽象类(否者编译器报错)
抽象方法 : 在方法中仅有声明而没有方法体
package com.wj.Interface;
[房地产与大数据]房地产数据挖掘系统
comsci
数据挖掘
随着一个关键核心技术的突破,我们已经是独立自主的开发某些先进模块,但是要完全实现,还需要一定的时间...
所以,除了代码工作以外,我们还需要关心一下非技术领域的事件..比如说房地产
&nb
数组队列总结
沐刃青蛟
数组队列
数组队列是一种大小可以改变,类型没有定死的类似数组的工具。不过与数组相比,它更具有灵活性。因为它不但不用担心越界问题,而且因为泛型(类似c++中模板的东西)的存在而支持各种类型。
以下是数组队列的功能实现代码:
import List.Student;
public class
Oracle存储过程无法编译的解决方法
IT独行者
oracle 存储过程
今天同事修改Oracle存储过程又导致2个过程无法被编译,流程规范上的东西,Dave 这里不多说,看看怎么解决问题。
1. 查看无效对象
XEZF@xezf(qs-xezf-db1)> select object_name,object_type,status from all_objects where status='IN
重装系统之后oracle恢复
文强chu
oracle
前几天正在使用电脑,没有暂停oracle的各种服务。
突然win8.1系统奔溃,无法修复,开机时系统 提示正在搜集错误信息,然后再开机,再提示的无限循环中。
无耐我拿出系统u盘 准备重装系统,没想到竟然无法从u盘引导成功。
晚上到外面早了一家修电脑店,让人家给装了个系统,并且那哥们在我没反应过来的时候,
直接把我的c盘给格式化了 并且清理了注册表,再装系统。
然后的结果就是我的oracl
python学习二( 一些基础语法)
小桔子
pthon 基础语法
紧接着把!昨天没看继续看django 官方教程,学了下python的基本语法 与c类语言还是有些小差别:
1.ptyhon的源文件以UTF-8编码格式
2.
/ 除 结果浮点型
// 除 结果整形
% 除 取余数
* 乘
** 乘方 eg 5**2 结果是5的2次方25
_&
svn 常用命令
aichenglong
SVN 版本回退
1 svn回退版本
1)在window中选择log,根据想要回退的内容,选择revert this version或revert chanages from this version
两者的区别:
revert this version:表示回退到当前版本(该版本后的版本全部作废)
revert chanages from this versio
某小公司面试归来
alafqq
面试
先填单子,还要写笔试题,我以时间为急,拒绝了它。。时间宝贵。
老拿这些对付毕业生的东东来吓唬我。。
面试官很刁难,问了几个问题,记录下;
1,包的范围。。。public,private,protect. --悲剧了
2,hashcode方法和equals方法的区别。谁覆盖谁.结果,他说我说反了。
3,最恶心的一道题,抽象类继承抽象类吗?(察,一般它都是被继承的啊)
4,stru
动态数组的存储速度比较 集合框架
百合不是茶
集合框架
集合框架:
自定义数据结构(增删改查等)
package 数组;
/**
* 创建动态数组
* @author 百合
*
*/
public class ArrayDemo{
//定义一个数组来存放数据
String[] src = new String[0];
/**
* 增加元素加入容器
* @param s要加入容器
用JS实现一个JS对象,对象里有两个属性一个方法
bijian1013
js对象
<html>
<head>
</head>
<body>
用js代码实现一个js对象,对象里有两个属性,一个方法
</body>
<script>
var obj={a:'1234567',b:'bbbbbbbbbb',c:function(x){
探索JUnit4扩展:使用Rule
bijian1013
java 单元测试 JUnit Rule
在上一篇文章中,讨论了使用Runner扩展JUnit4的方式,即直接修改Test Runner的实现(BlockJUnit4ClassRunner)。但这种方法显然不便于灵活地添加或删除扩展功能。下面将使用JUnit4.7才开始引入的扩展方式——Rule来实现相同的扩展功能。
1. Rule
&n
[Gson一]非泛型POJO对象的反序列化
bit1129
POJO
当要将JSON数据串反序列化自身为非泛型的POJO时,使用Gson.fromJson(String, Class)方法。自身为非泛型的POJO的包括两种:
1. POJO对象不包含任何泛型的字段
2. POJO对象包含泛型字段,例如泛型集合或者泛型类
Data类 a.不是泛型类, b.Data中的集合List和Map都是泛型的 c.Data中不包含其它的POJO
 
【Kakfa五】Kafka Producer和Consumer基本使用
bit1129
kafka
0.Kafka服务器的配置
一个Broker,
一个Topic
Topic中只有一个Partition() 1. Producer:
package kafka.examples.producers;
import kafka.producer.KeyedMessage;
import kafka.javaapi.producer.Producer;
impor
lsyncd实时同步搭建指南——取代rsync+inotify
ronin47
1. 几大实时同步工具比较 1.1 inotify + rsync
最近一直在寻求生产服务服务器上的同步替代方案,原先使用的是 inotify + rsync,但随着文件数量的增大到100W+,目录下的文件列表就达20M,在网络状况不佳或者限速的情况下,变更的文件可能10来个才几M,却因此要发送的文件列表就达20M,严重减低的带宽的使用效率以及同步效率;更为要紧的是,加入inotify
java-9. 判断整数序列是不是二元查找树的后序遍历结果
bylijinnan
java
public class IsBinTreePostTraverse{
static boolean isBSTPostOrder(int[] a){
if(a==null){
return false;
}
/*1.只有一个结点时,肯定是查找树
*2.只有两个结点时,肯定是查找树。例如{5,6}对应的BST是 6 {6,5}对应的BST是
MySQL的sum函数返回的类型
bylijinnan
java spring sql mysql jdbc
今天项目切换数据库时,出错
访问数据库的代码大概是这样:
String sql = "select sum(number) as sumNumberOfOneDay from tableName";
List<Map> rows = getJdbcTemplate().queryForList(sql);
for (Map row : rows
java设计模式之单例模式
chicony
java设计模式
在阎宏博士的《JAVA与模式》一书中开头是这样描述单例模式的:
作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。 单例模式的结构
单例模式的特点:
单例类只能有一个实例。
单例类必须自己创建自己的唯一实例。
单例类必须给所有其他对象提供这一实例。
饿汉式单例类
publ
javascript取当月最后一天
ctrain
JavaScript
<!--javascript取当月最后一天-->
<script language=javascript>
var current = new Date();
var year = current.getYear();
var month = current.getMonth();
showMonthLastDay(year, mont
linux tune2fs命令详解
daizj
linux tune2fs 查看系统文件块信息
一.简介:
tune2fs是调整和查看ext2/ext3文件系统的文件系统参数,Windows下面如果出现意外断电死机情况,下次开机一般都会出现系统自检。Linux系统下面也有文件系统自检,而且是可以通过tune2fs命令,自行定义自检周期及方式。
二.用法:
Usage: tune2fs [-c max_mounts_count] [-e errors_behavior] [-g grou
做有中国特色的程序员
dcj3sjt126com
程序员
从出版业说起 网络作品排到靠前的,都不会太难看,一般人不爱看某部作品也是因为不喜欢这个类型,而此人也不会全不喜欢这些网络作品。究其原因,是因为网络作品都是让人先白看的,看的好了才出了头。而纸质作品就不一定了,排行榜靠前的,有好作品,也有垃圾。 许多大牛都是写了博客,后来出了书。这些书也都不次,可能有人让为不好,是因为技术书不像小说,小说在读故事,技术书是在学知识或温习知识,有
Android:TextView属性大全
dcj3sjt126com
textview
android:autoLink 设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接。可选值(none/web/email/phone/map/all) android:autoText 如果设置,将自动执行输入值的拼写纠正。此处无效果,在显示输入法并输
tomcat虚拟目录安装及其配置
eksliang
tomcat配置说明 tomca部署web应用 tomcat虚拟目录安装
转载请出自出处:http://eksliang.iteye.com/blog/2097184
1.-------------------------------------------tomcat 目录结构
config:存放tomcat的配置文件
temp :存放tomcat跑起来后存放临时文件用的
work : 当第一次访问应用中的jsp
浅谈:APP有哪些常被黑客利用的安全漏洞
gg163
APP
首先,说到APP的安全漏洞,身为程序猿的大家应该不陌生;如果抛开安卓自身开源的问题的话,其主要产生的原因就是开发过程中疏忽或者代码不严谨引起的。但这些责任也不能怪在程序猿头上,有时会因为BOSS时间催得紧等很多可观原因。由国内移动应用安全检测团队爱内测(ineice.com)的CTO给我们浅谈关于Android 系统的开源设计以及生态环境。
1. 应用反编译漏洞:APK 包非常容易被反编译成可读
C#根据网址生成静态页面
hvt
Web .net C# asp.net hovertree
HoverTree开源项目中HoverTreeWeb.HVTPanel的Index.aspx文件是后台管理的首页。包含生成留言板首页,以及显示用户名,退出等功能。根据网址生成页面的方法:
bool CreateHtmlFile(string url, string path)
{
//http://keleyi.com/a/bjae/3d10wfax.htm
stri
SVG 教程 (一)
天梯梦
svg
SVG 简介
SVG 是使用 XML 来描述二维图形和绘图程序的语言。 学习之前应具备的基础知识:
继续学习之前,你应该对以下内容有基本的了解:
HTML
XML 基础
如果希望首先学习这些内容,请在本站的首页选择相应的教程。 什么是SVG?
SVG 指可伸缩矢量图形 (Scalable Vector Graphics)
SVG 用来定义用于网络的基于矢量
一个简单的java栈
luyulong
java 数据结构 栈
public class MyStack {
private long[] arr;
private int top;
public MyStack() {
arr = new long[10];
top = -1;
}
public MyStack(int maxsize) {
arr = new long[maxsize];
top
基础数据结构和算法八:Binary search
sunwinner
Algorithm Binary search
Binary search needs an ordered array so that it can use array indexing to dramatically reduce the number of compares required for each search, using the classic and venerable binary search algori
12个C语言面试题,涉及指针、进程、运算、结构体、函数、内存,看看你能做出几个!
刘星宇
c 面试
12个C语言面试题,涉及指针、进程、运算、结构体、函数、内存,看看你能做出几个!
1.gets()函数
问:请找出下面代码里的问题:
#include<stdio.h>
int main(void)
{
char buff[10];
memset(buff,0,sizeof(buff));
ITeye 7月技术图书有奖试读获奖名单公布
ITeye管理员
活动 ITeye 试读
ITeye携手人民邮电出版社图灵教育共同举办的7月技术图书有奖试读活动已圆满结束,非常感谢广大用户对本次活动的关注与参与。
7月试读活动回顾:
http://webmaster.iteye.com/blog/2092746
本次技术图书试读活动的优秀奖获奖名单及相应作品如下(优秀文章有很多,但名额有限,没获奖并不代表不优秀):
《Java性能优化权威指南》