- 博客(30)
- 收藏
- 关注
转载 python获得子线程的返回值
import sysimport threadingimport Queueq = Queue.Queue()def worker1(x, y): func_name = sys._getframe().f_code.co_name print "%s run ..." % func_name q.put((x + y, func_name))def worker2(x, y):
2017-04-25 20:12:55
15201
转载 python从子线程中获得返回值
# coding:utf-8import timefrom threading import Threaddef foo(number): time.sleep(20) return numberclass MyThread(Thread): def __init__(self, number): Thread.__init__(self)
2017-04-25 17:14:53
10606
转载 python中decode和encode
字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码。decode的作用是将其他编码的字符串转换成unicode编码,如str1.decode('gb2312'),表示将gb2312编码的字符串str1转换成unico
2017-04-18 10:21:17
554
原创 决策树算法与Python实现
算法原理:决策树算法是一种逼近离散函数值的方法。它是一种典型的分类方法,首先对数据进行处理,利用归纳算法生成可读的规则和决策树,然后使用决策对新数据进行分析。本质上决策树是通过一系列规则对数据进行分类的过程。用下面一张图片就可以很直观的知道决策树是如何分类的:对于离散的属性值,根据每个属性下的类别分出叶节点,直到所有的叶节点里都是相同类型的数据类别构建思路:创建分支
2017-03-27 16:52:30
1820
原创 机器学习实战——使用K-近邻算法识别手写数字
使用K-近邻分类器构造手写识别系统,手写数字图片已经经过处理成为文本文件,如下所示:每张图片都是32像素X32像素首先,我们要把每个输入的文本文件转换KNN算法(前面的KNN算法实践已经有了,这里就不贴了)可以处理的格式,即一维数组的形式,定义以下函数:def img2vector(filename): """ 将32x32的图像转化为1x1024的向量
2017-03-25 21:45:33
1156
原创 机器学习实战——使用K-近邻算法进行约会配对
任务:通过海伦收集的3个特征,如: 1.每年获得的飞行常客里程数 2.玩视频游戏所耗的时间百分比 3.每周消费的冰淇淋公升数用K近邻的方法,预测海伦对未知对象的好感度主要步骤都是按照机器学习实战这本书进行的,代码实现如下:#!/usr/bin/python# -*- encoding:utf-8 -*-"""@author : kelvi
2017-03-25 17:43:36
945
原创 KNN算法及python实现
邻近算法,或者说K最近邻(kNN,k-NearestNeighbor)分类算法是数据挖掘分类技术中最简单的方法之一。所谓K最近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最接近的k个邻居来代表。算法思想kNN算法的核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。该方法在确定分类决策上只依据最
2017-03-24 22:01:29
691
转载 Python导入自己写的模块
1.如果自己写的一个python程序需要作为模块导入,则在使用的时候需要首先import sys,然后sys.path.append("c:/python"),c:/python是程序所在目录。意思就是告诉解释器除了从默认的目录中寻找之外,还需要从目录c:\python中寻找模块。这样之后就可以使用import hello(hello是自己编写的程序的名字)导入自己的模块了。2.将库文件复制到
2017-03-24 15:39:11
10459
原创 Python安装第三方包
安装了anaconda的话,可以非常容易的安装第三方的包,因为它已经帮你安装了pip模块,可以直接pip安装。下面说说我安装第三方包的几个方法。1.conda install 包名2.pip install 包名3.在python官网的pypi里搜索包名,下载到本地,解压后,打开命令行,cd到安装包的文件夹输入python setup.py build输入python setu
2017-03-23 13:16:51
533
原创 Python带步进的切片
切片操作对python中所有可以索引的对象都可以切片操作1.带步进正向切片默认步进为1In[24]: a = '123456789'In[25]: a[0:8]Out[25]: '12345678'指定步进In[26]: a[0:8:2]Out[26]: '1357'带步进遍历In[33]: a[::2]Out[33]: '13579'2.带步进反
2017-03-19 11:48:55
2785
原创 python字符串反转
python的str没有reverse属性,要反转字符串时可以使用以下方法:1.反向步进切片In[20]: a = 'ABC_()'In[21]: a[::-1]Out[21]: ')(_CBA'2.reversed()In[22]: reversed(a)Out[22]: In[23]: print ''.join(reversed(a)))(_CBArevers
2017-03-19 11:25:16
800
转载 Python字符串比较忽略大小写的方法
1.正则表达式,使用IGNORECASE标志>>> import re>>> m = re.search('multi', 'A mUltiCased string', re.IGNORECASE)>>> bool(m)2.在比较前把2个字符串转换成同样大写,用upper()方法,或小写,lower()>>> s = 'A mUltiCased string'.lower()>>
2017-03-19 10:02:24
39719
原创 爬虫奇遇记——等待访问处理办法
有时候一些网站访问时间超级慢,爬虫一直在等待访问,没有访问就不执行下一步代码,这时我们可以通过超时设置来控制,当爬虫超过一定时间还没有访问到内容时,退出访问,执行下一步代码。参数是timeout。#coding:utf-8import urllib2try: url = "http://www.baidu.com" f = urllib2.urlopen(url, time
2017-03-08 19:24:08
718
原创 python中csv模块写文件时总是空一行的解决办法
在用python的csv模块时,用一般方法打开文件,进行写操作,总是会出现每行后面都自动空行的情况。with open('***.csv', 'a+') as f: csvwriter = csv.Dictwriter([...]) csvwriter.writerow()看了官方文档也找不到解决办法,后来通过搜索看到一个解决方法。就是csv的writer在window
2017-03-08 10:49:43
5926
1
原创 计算mover distance的问题,速度太慢了
任务要用1000篇文章来跟数据集里面的9722篇文章做一个mover distance的计算,总共要求的9722000个结果,但是现在每个结果平均都要两秒以上,有可能更慢。用了多线程,开了10个线程也快不起来。电脑是128G内存,CPU是i7-6855。请大神指教,谢谢!源码#!/usr/bin/python# -*- encoding:utf-8 -*-"""@author
2017-03-02 09:47:48
1373
1
原创 Python爬虫实战——蚂蜂窝国内目的地全抓取
上一篇文章爬的是豆瓣电影,是属于静态页面的,而且很有规律的,做起来比较容易。这次的蚂蜂窝国内目的主要有三点比较困难的地方1.不是静态页面,要通过post请求才能获得需要的信息,通过刷新网页可以看到发送了什么请求,或者也可以用网络监听器2.返回的响应是json形式的文件,不能直接用lxml去解析,要通过json模块来进行转化3.缺失信息的情况比较多,需要多种判断源码#!/usr/
2017-03-01 20:29:21
5059
原创 Python爬虫实战——豆瓣电影top250
很多天没有发博客了,这几天在弄一个文本相似度的项目,问题一个接一个,忙活了好几天。今天分享一下之前的写的爬虫,用来爬豆瓣电影的top250。首先,F12看看电影的信息在哪里每个电影的信息都在这个class="item"的块中,好的,这下好办了,找到这个块,就可以一个个把里面的东西抓出来了。这里面最麻烦的还是处理信息缺失的问题,有的电影没有一句话评论,如果用了list来索引,
2017-03-01 20:00:33
864
原创 Python实用文本操作
记录不熟悉的文件操作,遇到一个记一个。1.打开文件,并且在末尾添加内容with open('**.txt', 'a+') as f: f.write()2.多行写入文件先把要写的文件存在列表中,然后用writelines()file = open('C:\docpath.txt', 'w')file.writelines(doc_path)file.close
2017-02-27 23:17:25
497
原创 Python爬虫实战——代理IP全部抓取
写爬虫程序时,为了使爬虫不被屏蔽,有时需要使用到代理IP,这时就要去免费的代理IP网站找IP,为了省事,我写了个爬虫程序,把代理IP网站的所有IP全部爬了下来,存在本地的文件里,以后需要直接从文件中读取。这个网页的内容比较容易抓取,我主要需要三个内容,http类型,IP地址和端口号以下是源码:#!/usr/bin/python# -*- encoding:utf-8 -*-
2017-02-26 13:03:19
1330
原创 Python爬虫实战——模拟登录教务系统
之前都是爬静态页面,不用登录的,这次试试有登录的。网页的登录主要是发送POST请求到服务器,得到响应后跳转到登录界面。每次登录,浏览器都会记录下cookie信息,在python中,可以用urllib,urllib2来获取cookie信息,然后利用cookie信息来模拟登录。当然还是得输入登录名和密码的。先在浏览器上登录教务系统,登录后查看POST请求里面请求信息,就可以看到发送了什么信息过
2017-02-26 12:20:54
2424
原创 爬虫奇遇记——如何按照标签的文本内容来抓取
俗话说的好:只要能爬下来,其他都不是事。昨天写爬虫遇到这样一个情况:父标签的class内容都一样,里面子标签只有标签带文本,还是来张图比较明了:我又要以站长之家的为例说明了可以发现,这两块,父标签和子标签内容一模一样,findall第一个指向的是第一块的,直接用索引我试过,一开始是可以的,但是对于其他网页,有的并没有注册商这一块,这时候索引就对不上了,还有可能报IndexErr
2017-02-25 07:46:04
2711
原创 Python文本相似度实战——基于gensim和nltk库
任务内容:给定一个文本库,比如说新闻文本(无标注的)等等,现在有一些已经做好标注的文本,如何在文本库中找到与做好标注的文本相似的文章。所用工具:python , gensim , nltkgensim提供了很多算法来实现文本相似度的比较,比如TF-IDF,topic model,以及LDA等等。nltk则是自然语言处理领域非常知名的库,包含很多处理文本内容的方法
2017-02-25 07:16:56
9723
1
原创 爬虫奇遇记——标签去哪儿
这一系列分享我在写爬虫过程中遇到的奇葩事这次遇到的是在爬html文件时,发现爬下来的标签内容变了,举个例子有可能变成:再看实际的,比如站长之家的whois查询爬下来,却是这样的后面的clearfix没有了!这可能是网络商的策略,以后遇到clearfix的标签要小心了
2017-02-24 10:15:57
674
原创 爬虫奇遇记——爬不到想要的内容
这一系列将分享在写网络爬虫时遇到的奇葩事我们在写爬虫时,总是先F12看一下网页的源代码,看到内容后再想策略去抓取想要的内容,这种思路对于文本内容是静态的话是行得通的,但是如果遇到动态加载的内容,就很麻烦了,你会发现你爬下的html文件里根本找不到你想要的内容,这也是网络商应对爬虫的一种策略。下面举例说明,用站长之家的SEO查询来讲比如想抓这个中文网站排名的数据,看一下源码:
2017-02-24 09:39:30
2458
原创 Python实用的字符串操作
遇到的实用字符串的操作,遇到一个写一个,以后再系统整理成一篇1.判断一个字符串中是否含有想要找的字符串:my_string = "abcdef"if "abc" in my_string: has_abc = Trueif has_abc == True: print "String contains string."这是单个的,如果要满足多个条件,可以用列表
2017-02-23 23:57:32
374
转载 解读URL的组成部分
以下面这个URL为例,介绍下普通URL的各部分组成http://www.aspxfans.com:8080/news/index.asp?boardID=5&ID=24618&page=1#name从上面的URL可以看出,一个完整的URL包括以下几部分:1.协议部分:该URL的协议部分为“http:”,这代表网页使用的是HTTP协议。在Internet中可以使用
2017-02-23 22:49:44
1423
原创 BeautifulSoup及lxml使用小记
Bs4中常用findall与class_来寻找节点book_cover=soup.find_all("div",class_='cover')得到的结果是存在列表中的bs4 tree,仍旧可以用findall遍历 遇到有些只有标签的,没有任何属性的,想要的到标签中的内容,可以寻找兄弟节点如find_next_siblings()找下一个兄弟节点
2017-02-23 14:29:35
1090
1
原创 Python爬虫实战——豆瓣新书速递
主要以豆瓣图书首页的新书速递为例,练习爬虫过程中的请求网页的方式,还有分别用三种方式来解析爬到的网页文档1.请求网页可以用urllib2,open(),也可以用request(),这里对这两个库的区别不做细讲,主要讲讲爬虫过程中的普通请求方式和伪装浏览器请求。普通请求:# 普通方式读取douban_book_html = urllib2.urlopen("https://book
2017-02-23 13:08:41
2148
2
原创 Python爬虫实战——豆瓣电影Top250
第一篇博客,用我昨天学的爬虫来见证一下,纯粹记录自己的学习。废话不多说,show your code!!#!/usr/bin/python# -*- encoding:utf-8 -*-"""@author : kelvin@file : douban_movie@time : 2017/2/22 23:04@description : """import sysim
2017-02-23 10:07:31
1716
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人