首页
文章
分类
标签
更多
时光机
友情链接
Search
1
史上超全共享单车车锁的开锁方式(含具体方案)转
5,211 阅读
2
渗透测试工具实战技巧合集
3,495 阅读
3
URP综合教务系统通杀getshell
3,023 阅读
4
pentestbox 下安装whatweb后,报IPADDR模块没有配置的解决办法。
2,865 阅读
5
Pentest BOX安装和使用
2,309 阅读
学习资料
工具
视频
笔记
登录
Search
标签搜索
python
javascript
pentestbox
NSA
cms
linux
前端知识
jquery
安全
mysql
php
seafile
seahub
wdcp
Richar
累计撰写
130
篇文章
累计收到
4
条评论
首页
栏目
学习资料
工具
视频
笔记
页面
文章
分类
标签
时光机
友情链接
搜索到
20
篇与
笔记
的结果
2017-06-28
Python爬取全书网后,对python几个模块的了解
新人,仅接触Python两天,未深入学习,代码较渣,勿喷.直接发代码:#!/usr/bin/python # -*- coding: utf-8 -*- #爬取速度较慢,主要是卡在urllib.openurl().read()上 import urllib, re, MySQLdb,time class Sql(object): #创建SQL类来处理数据操作 # conn=MySQLdb.connect(host="localhost", user="root",passwd= "root", db="quanshuwang",charset="utf8") conn = MySQLdb.connect(host="mysql.xxx.com", port=7150, user="noveltest", passwd="123456", db="noveltest", charset="utf8") def addBooks(self,sort,name,imgurl,des,status,author): cur = self.conn.cursor() sql="INSERT INTO novel(sort,name,imgurl,description,status,author) values(%s,'%s','%s','%s','%s','%s')"%(sort,name,imgurl,des,status,author) cur.execute(sql) lastrowid = cur.lastrowid self.conn.commit() return lastrowid def addChapters(self,novelid,title,content): pass cur=self.conn.cursor() sql="insert into chapter(novelid,title,content) values(%s,'%s','%s')"%(novelid,title,content) cur.execute(sql) lastrowid=cur.lastrowid self.conn.commit() return lastrowid def getBookList(): #取出所有书的名称和地址 print 'getbooklist:',time.strftime('%H:%M:%S') url='http://www.quanshuwang.com/map/1.html' html=urllib.urlopen(url).read() #获取HTML源码 html=html.decode('gbk').encode('utf-8') #先用decode()将源码的GBK转换为通用的UNICODE编码,再解压成UTF-8 reg=r'<a href="(/book/.*?)" target="_blank">(.*?)</a>' #正则,锁定(.*?) .为任意字符,*可匹配多个,?非贪婪模式,取最短那个 return re.findall(reg,html) #用RE.FINDALL取出正则匹配的文本 def getAuthor(bookurl): print 'StartgetAuthorAndbookurl:',bookurl,time.strftime('%H:%M:%S') bookurl=bookurl.split('/')[-2] url = 'http://www.quanshuwang.com/book_%s.html' %bookurl print 'startReadHtml:',time.strftime('%H:%M:%S') html = urllib.urlopen(url).read() print 'EndReadHtmlandStartDecode:',time.strftime('%H:%M:%S') html=html.decode('gbk').encode('utf-8') print 'StartgetAuthormsgbookandEndDecode:',time.strftime('%H:%M:%S') sort=re.findall(r'<a href="/list/(\d+)_.*?" class="c009900">.*?</a> >', html)[0] author=re.findall(r'<dt>作 者:</dt><dd> <a href=".*?">(.*?)</a></dd>',html)[0] status=re.findall(r'dl><dt>小说状态:</dt><dd>(.*?)</dd></dl>',html)[0] imgurl=re.findall(r'<img onerror="this.src=.*?" src="(.*?)" width="160" height="200" border="0" alt=".*?" title=".*?" />',html)[0] des=re.findall(r'div class="infoDetail"><div id="waa" style="height:72px;width:690px;overflow:hidden;">(.*?)<br />',html)[0] print 'EndgetAuthormsgbook:',time.strftime('%H:%M:%S') bookmsg={'sort':sort,'author':author,'status':status,'imgurl':imgurl,'des':des} return bookmsg def getChapterList(bookurl):#得到每篇文章的章节 url='http://www.quanshuwang.com%s'%bookurl html=urllib.urlopen(url).read().decode('gb2312').encode('utf-8') reg=r'<li><a href="(.*?)" title=".*?">(.*?)</a></li>' return re.findall(reg,html) def getContent(bookurl,chapterurl): #取得每篇文章的内容 url='http://www.quanshuwang.com%s'%bookurl.replace(bookurl.split('/')[-1],chapterurl) #用章节地址替换书目地址里的链接 html=urllib.urlopen(url).read().decode('gbk').encode('utf-8') reg=r'style5\(\);</script>(.*?)<script type="text/javascript">style6' return re.findall(reg,html)[0] mysql=Sql() #打开数据库链接 for bookname in getBookList(): #循环爬取小说内容 print 'for:',time.strftime('%H:%M:%S') msgbook={} bookurl=bookname[0] #书的URL name=bookname[1] #书名 print 'Startmsgbooklen',len(msgbook) msgbook=getAuthor(bookurl) print 'EndgetauthorandEndmsgbook:',len(msgbook),time.strftime('%H:%M:%S') sort=msgbook['sort'] author = msgbook['author'] imgurl = msgbook['imgurl'] des = msgbook['des'] status=msgbook['status'] urllib.urlretrieve(imgurl, "images/%s.jpg" %name.decode('utf-8'))#因为当前环境为utf-8,故要把书名转成unicode #print type(sort),type(author),type(name),type(imgurl),type(des),type(status) # novelid=mysql.addBooks(int(sort),name,imgurl,des,status,author) print '正在存储小说%s'%name # for chapter in getChapterList(bookurl): # chapterurl=chapter[0] #章节URL # chaptername=chapter[1] #章节名称 # content=getContent(bookurl,chapterurl) #小说内容 # print '正在存储章节%s'%chaptername # mysql.addChapters(novelid,chaptername,content) mysql.conn.close()
2017年06月28日
1,892 阅读
0 评论
0 点赞
2017-06-17
用Python写的一个简单的猜数字游戏
刚入门,代码较渣,轻喷# _*_ coding:utf-8 _*_ import random guess=random.randrange(1,100) #随机生成一个100以内的数 print '**********猜数游戏,随机生成100以内的数***********' trys=input('请输入你想要挑战的次数:\n') #自定义挑战次数 id=1 while id<=int(trys): txt=input('请输入你的第%s次猜数:\n'%id) if txt=='stop': break else: answer=int(txt) if answer<guess: print('你猜的数太小了\n') elif answer>guess: print('你猜的数太大了\n') else: print('恭喜你,猜对了\n') exit() id+=1 print '很遗憾,你所有的机会都用完了,正确的答案是%s下次加油吧!\n'%guess
2017年06月17日
1,480 阅读
0 评论
0 点赞
2017-06-16
HTML name、id、class 的区别
HTML name、id、class 的区别 在一个页面中,有许多的控件(元素或标签)。为了更方便的操作这些标签,就需要给这些标签标识一个身份牌。目录1. name :指定标签的名称。2. id :指定标签的唯一标识。3. class :指定标签的类名。 1. name指定标签的名称。1.1 格式<input type="text" name="username" />1.2 应用场景①form表单:name可作为转递给服务器表单列表的变量名;如上面的传到服务器的名称为:username='text的值'。②input type='radio'单选标签:把几个单选标签的 name设为一个相同值时,将会进行单选操作。<input type="radio" name='sex'/>男 <input type="radio" name='sex'/>女③快速获取一组name相同的标签:获取拥有相同name的标签,一起进行操作,如:更改属性、注册事件等。function changtxtcolor() { var txts = document.getElementsByName('txtcolor'); //获取所有name=txtcolor 的标签 for (var i = 0; i < txts.length; i++) { //循环遍历标签,并把背景色改为red txts[i].style.backgroundColor = 'red'; } }1.3 特性name属性的值,在当前page页面中并非唯一性。 2. id指定标签的唯一标识。2.1 格式<input type=password id="userpwd" />2.2 应用场景①根据提供的唯一id号,快速获取标签对象。如:document.getElementById(id)②用于充当label标签for属性的值:示例:<label for='userid'>用户名:</label>,表示单击此label标签时,id为userid的标签获得焦点。2.3 特性id属性的值,在当前的page页面要是唯一的。 3. class指定标签的类名。3.1 格式<input type=button class="btnsubmit" />3.2 应用场景①CSS操作,把一些特定样式放到一个class类中,需要此样式的标签,可以在添加此类。3.3 特性可以把多个类,放在一个class属性里,但必须用空格隔开;如:class='btnsubmit btnopen'
2017年06月16日
1,484 阅读
0 评论
0 点赞
2017-06-13
用PYTHON写的第一个爬虫程序,并以EXCEL格式保存
自己动手写的第一个Python爬虫,代码比较渣,大神略过。# _*_ coding:utf-8 _*_ import requests,xlwt,json,time,random items=[] def get_content(pn): url='https://www.lagou.com/jobs/positionAjax.json?needAddtionalResult=false' #提交的URL data={'first':'true', #带参数提交 'pn':pn, 'kd':'python'} html=requests.post(url,data).text #获取网页内容 html=json.loads(html) #转成JSON格式 for i in range(14): item=[] item.append(html['content']['positionResult']['result'][i]['positionName']) #职位名称 item.append(html['content']['positionResult']['result'][i]['salary']) #薪资 item.append(html['content']['positionResult']['result'][i]['companyFullName']) #公司名称 item.append(html['content']['positionResult']['result'][i]['workYear']) #要求 # print u'职位名称:%s 薪资:%s 公司名: %s 要求: %s'%item[0],%item[1],%item[2],%item[3] print u'职位名称:%s\n'u'工资:%s\n' u'公司名称:%s\n'u'要求:%s\n'%(item[0],item[1],item[2],item[3]) items.append(item) return items def excel_write(): newtable='test.xls'#excel表名 wb=xlwt.Workbook(encoding='utf-8') #创建并设置表 ws=wb.add_sheet('text1') #创建表的名称 headData=['职位名称','薪资','公司名称','要求'] #设置EXCEL表头 for hd in range(0,4): ws.write(0,hd,headData[hd],xlwt.easyxf('font:bold on ')) #第0行0例开始写入表头 id=1 index=1 while id<=4: get_content(id) id+=1 time.sleep(random.randrange(0,3))#随机休眠几秒防IP锁定 for item in items: #从列表数组里取一行 for i in range(0,4): #从item里取出每列的值 ws.write(index,i,item[i]) index+=1 wb.save(newtable)#保存并生成EXCEL if __name__=="__main__": excel_write() print u'*****************共爬取并写入EXCEL数据%s条************'%len(items)
2017年06月13日
1,437 阅读
0 评论
0 点赞
2017-05-26
sublime 使用介绍:
需要HTML4.01 的版本,输入html:xt 然后按ctrl+E ● 按ctrl+鼠标滚轮,调整字号 ● 输入div*5,按ctrl+E,就能生成5 个div 标签 ● 按鼠标中键可以多行编辑 ● ctrl+shift+k:删除当前行 ● ctrl+shift+D:复制当前行 ● ctrl+shift+上下键:调整当前行的位置 ● ctrl+alt+[ : 可以让CSS 格式进行转换(单行、多行)
2017年05月26日
1,422 阅读
0 评论
0 点赞
1
...
3
4