
python
文章平均质量分 54
kelvinLLL
这个作者很懒,什么都没留下…
展开
-
Python爬虫实战——豆瓣电影top250
很多天没有发博客了,这几天在弄一个文本相似度的项目,问题一个接一个,忙活了好几天。今天分享一下之前的写的爬虫,用来爬豆瓣电影的top250。首先,F12看看电影的信息在哪里每个电影的信息都在这个class="item"的块中,好的,这下好办了,找到这个块,就可以一个个把里面的东西抓出来了。这里面最麻烦的还是处理信息缺失的问题,有的电影没有一句话评论,如果用了list来索引,原创 2017-03-01 20:00:33 · 864 阅读 · 0 评论 -
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实现
算法原理:决策树算法是一种逼近离散函数值的方法。它是一种典型的分类方法,首先对数据进行处理,利用归纳算法生成可读的规则和决策树,然后使用决策对新数据进行分析。本质上决策树是通过一系列规则对数据进行分类的过程。用下面一张图片就可以很直观的知道决策树是如何分类的:对于离散的属性值,根据每个属性下的类别分出叶节点,直到所有的叶节点里都是相同类型的数据类别构建思路:创建分支原创 2017-03-27 16:52:30 · 1821 阅读 · 0 评论 -
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 阅读 · 0 评论 -
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 阅读 · 0 评论 -
机器学习实战——使用K-近邻算法进行约会配对
任务:通过海伦收集的3个特征,如: 1.每年获得的飞行常客里程数 2.玩视频游戏所耗的时间百分比 3.每周消费的冰淇淋公升数用K近邻的方法,预测海伦对未知对象的好感度主要步骤都是按照机器学习实战这本书进行的,代码实现如下:#!/usr/bin/python# -*- encoding:utf-8 -*-"""@author : kelvi原创 2017-03-25 17:43:36 · 945 阅读 · 0 评论 -
机器学习实战——使用K-近邻算法识别手写数字
使用K-近邻分类器构造手写识别系统,手写数字图片已经经过处理成为文本文件,如下所示:每张图片都是32像素X32像素首先,我们要把每个输入的文本文件转换KNN算法(前面的KNN算法实践已经有了,这里就不贴了)可以处理的格式,即一维数组的形式,定义以下函数:def img2vector(filename): """ 将32x32的图像转化为1x1024的向量原创 2017-03-25 21:45:33 · 1156 阅读 · 0 评论 -
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 阅读 · 1 评论 -
python中decode和encode
字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码。decode的作用是将其他编码的字符串转换成unicode编码,如str1.decode('gb2312'),表示将gb2312编码的字符串str1转换成unico转载 2017-04-18 10:21:17 · 555 阅读 · 0 评论 -
python的正则表达式re模块的常用方法
收藏一篇正则表达式的文章,以后方便查看点击打开链接转载 2017-05-04 09:39:45 · 468 阅读 · 0 评论 -
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 · 10609 阅读 · 0 评论 -
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 阅读 · 0 评论 -
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 阅读 · 0 评论 -
Python爬虫实战——蚂蜂窝国内目的地全抓取
上一篇文章爬的是豆瓣电影,是属于静态页面的,而且很有规律的,做起来比较容易。这次的蚂蜂窝国内目的主要有三点比较困难的地方1.不是静态页面,要通过post请求才能获得需要的信息,通过刷新网页可以看到发送了什么请求,或者也可以用网络监听器2.返回的响应是json形式的文件,不能直接用lxml去解析,要通过json模块来进行转化3.缺失信息的情况比较多,需要多种判断源码#!/usr/原创 2017-03-01 20:29:21 · 5059 阅读 · 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 阅读 · 3 评论 -
爬虫奇遇记——如何按照标签的文本内容来抓取
俗话说的好:只要能爬下来,其他都不是事。昨天写爬虫遇到这样一个情况:父标签的class内容都一样,里面子标签只有标签带文本,还是来张图比较明了:我又要以站长之家的为例说明了可以发现,这两块,父标签和子标签内容一模一样,findall第一个指向的是第一块的,直接用索引我试过,一开始是可以的,但是对于其他网页,有的并没有注册商这一块,这时候索引就对不上了,还有可能报IndexErr原创 2017-02-25 07:46:04 · 2711 阅读 · 0 评论 -
Python文本相似度实战——基于gensim和nltk库
任务内容:给定一个文本库,比如说新闻文本(无标注的)等等,现在有一些已经做好标注的文本,如何在文本库中找到与做好标注的文本相似的文章。所用工具:python , gensim , nltkgensim提供了很多算法来实现文本相似度的比较,比如TF-IDF,topic model,以及LDA等等。nltk则是自然语言处理领域非常知名的库,包含很多处理文本内容的方法原创 2017-02-25 07:16:56 · 9723 阅读 · 5 评论 -
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 评论 -
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 阅读 · 0 评论 -
爬虫奇遇记——等待访问处理办法
有时候一些网站访问时间超级慢,爬虫一直在等待访问,没有访问就不执行下一步代码,这时我们可以通过超时设置来控制,当爬虫超过一定时间还没有访问到内容时,退出访问,执行下一步代码。参数是timeout。#coding:utf-8import urllib2try: url = "http://www.baidu.com" f = urllib2.urlopen(url, time原创 2017-03-08 19:24:08 · 718 阅读 · 0 评论 -
Python爬虫实战——模拟登录教务系统
之前都是爬静态页面,不用登录的,这次试试有登录的。网页的登录主要是发送POST请求到服务器,得到响应后跳转到登录界面。每次登录,浏览器都会记录下cookie信息,在python中,可以用urllib,urllib2来获取cookie信息,然后利用cookie信息来模拟登录。当然还是得输入登录名和密码的。先在浏览器上登录教务系统,登录后查看POST请求里面请求信息,就可以看到发送了什么信息过原创 2017-02-26 12:20:54 · 2424 阅读 · 0 评论 -
Python爬虫实战——代理IP全部抓取
写爬虫程序时,为了使爬虫不被屏蔽,有时需要使用到代理IP,这时就要去免费的代理IP网站找IP,为了省事,我写了个爬虫程序,把代理IP网站的所有IP全部爬了下来,存在本地的文件里,以后需要直接从文件中读取。这个网页的内容比较容易抓取,我主要需要三个内容,http类型,IP地址和端口号以下是源码:#!/usr/bin/python# -*- encoding:utf-8 -*-原创 2017-02-26 13:03:19 · 1330 阅读 · 0 评论 -
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 阅读 · 0 评论 -
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 阅读 · 0 评论