python
文章平均质量分 82
超纯の小白兔
华为云高级工程师
展开
-
Python中线程池的实现
# !/usr/bin/env python# -*- coding:utf-8 -*-# ref_blog:http://www.open-open.com/home/space-5679-do-blog-id-3247.htmlimport Queueimport threadingimport timeclass WorkManager(object): def __原创 2014-06-04 13:06:03 · 1236 阅读 · 0 评论 -
腾讯webqq最新密码加密算法,hash算法
经常在做webqq机器人,但是最头痛的问题就是腾讯经常加一些验证串来防止robot,现在共享出最新的腾讯密码加密算法和hash算法hash算法def webqq_hash(i, a): if isinstance(i, (str, unicode)): i = int(i) class b: def __init__(self, _b,原创 2014-06-30 20:56:20 · 9137 阅读 · 2 评论 -
python实现图片爬虫
#encoding:utf-8import sysreload(sys)sys.setdefaultencoding('utf8')from sgmllib import SGMLParserimport reimport urllibclass URLLister(SGMLParser): def start_a(self, attrs): url = [v原创 2014-05-25 10:53:06 · 1795 阅读 · 0 评论 -
在python中编写socket服务端模块(一):使用select
在linux上编写socket服务端程序一般可以用select、poll、epoll三种方式,本文主要介绍使用select编写socket服务端模块与客户端模块。 服务器端程序代码: ?123456789101112131转载 2014-06-06 09:56:47 · 1535 阅读 · 0 评论 -
Python网络编程中的select 和 poll I/O复用的简单使用
首先列一下,sellect、poll、epoll三者的区别 select select最早于1983年出现在4.2BSD中,它通过一个select()系统调用来监视多个文件描述符的数组,当select()返回后,该数组中就绪的文件描述符便会被内核修改标志位,使得进程可以获得这些文件描述符从而进行后续的读写操作。select目前几乎在所有的平台上支持,其良好跨平台支持也是它的一个优点,事转载 2014-06-06 09:54:38 · 1337 阅读 · 0 评论 -
python 多线程网页爬取
最近,一直在做网络爬虫相关的东西。 看了一下开源C++写的larbin爬虫,仔细阅读了里面的设计思想和一些关键技术的实现。1、larbin的URL去重用的很高效的bloom filter算法; 2、DNS处理,使用的adns异步的开源组件; 3、对于url队列的处理,则是用部分缓存到内存,部分写入文件的策略。 4、larbin对文件的相关操作做了很多工作 5、在larbin转载 2014-06-05 16:30:18 · 2257 阅读 · 0 评论 -
python threading获取线程函数返回值
最近需要用python写一个环境搭建工具,多线程并行对环境各个部分执行一些操作,并最终知道这些并行执行的操作是否都执行成功了,也就是判断这些操作函数的返回值是否为0。但是threading并没有显式的提供获取各个线程函数返回值的方法,只好自己动手,下面就介绍一下自己的实现方式。一开始考虑到执行的操作可能有很多,而且后续会不断补充,因此先写了一个通用的多线程执行类,封装线程操作的基本方法,如转载 2014-06-05 16:25:56 · 11864 阅读 · 0 评论 -
python 图的遍历-深度优先和广度优先
Python的图实现有很多别人已经写好的(比如我下面写的就是参考python-graph),可是不适合一个刚开始的学习的人,我就简化了一下,实现可深度优先和广度优先遍历。#!/usr/bin/env python#-*- coding:utf8 -*-class Graph(object): def __init__(self, *args, **kwargs原创 2014-06-04 16:52:17 · 16625 阅读 · 0 评论 -
Python中线程池的实现(二)
最近在做一些文本处理方面的事情,考虑到程序利用并发性可以提高执行效率(不纠结特殊反例),于是入围的Idea如使用多进程或多线程达到期望的目标,对于进程或线程的创建是有代价的,那么我们是否可以实现一个线程池来达到已创建的线程反复使用从而使代价降低到最小呢?当然可以,要想创建一个线程池,那么必须得有个容器来模拟“池”,在Python中,队列这样的数据结构就可以帮我们解决“池”这个问题,然而随之引来原创 2014-06-04 12:59:33 · 3181 阅读 · 0 评论 -
Python 实现的下载op海贼王网的图片(网络爬虫)
没得事就爬一下我喜欢的海贼王上的图片需要在d盘下建立一个imgcache文件夹# -*- coding: utf-8 -*-import urllibimport urllib2import jsonfrom bs4 import BeautifulSoupimport threadpool import threadclass htmlpaser: de原创 2014-06-04 14:37:11 · 6590 阅读 · 0 评论 -
python 网络爬虫
#filename: toolbox_insight.pyfrom sgmllib import sgmlparserimport threadingimport timeimport urllib2import stringioimport gzipimport stringimport os#rewrite sgmlparser for start_aclass baseg转载 2014-06-04 14:11:42 · 1017 阅读 · 0 评论 -
python网络爬虫2
刚刚开了一个《计算机网络》的课,觉得很有用。正好师兄让我练习编写一个能下载网站网页的程序,正好能用上课上的知识了。为了想作一个效率不差的,而下载网页的性能瓶颈是在网络上,所有决定用Python编写代码。刚学python没几天,学习一种语言的最好方法就是写code.下面的是我用的多线程实现的网络爬虫,并用py2exe生成了一个exe,自身觉得py2exe不太好,又不会更好的,只能......转载 2014-06-04 14:08:54 · 1043 阅读 · 0 评论 -
python网络爬虫
爬虫是封装在WebCrawler类中的,Test.py调用爬虫的craw函数达到下载网页的功能。运用的算法:广度遍历关于网络爬虫的详细信息请参考百度百科 Test.py-------------------------------------------------------------------------[python] view转载 2014-06-04 14:07:53 · 1048 阅读 · 0 评论 -
Python中实现线程池(一)
import Queue, threading, sys from threading import Thread import time,urllib # working thread class Worker(Thread): worker_count = 0 def __init__( self, workQueue, resultQueue,原创 2014-06-04 12:53:55 · 1005 阅读 · 0 评论 -
python 图 遍历-深度优先和广度优先 II
在上一篇(python 图 遍历-深度优先和广度优先)的代码上加了最小生成树和拓扑序列功能。代码如下:#!/usr/bin/env python#-*- coding:utf8 -*-import copyclass Graph(object): def __init__(self, *args, **kwargs): self.node_n原创 2014-06-04 16:54:04 · 3113 阅读 · 1 评论 -
Python中线程池的实现(三)
# -*- coding: utf-8 -*-# Java 理论与实践: 线程池与工作队列: http://www.ibm.com/developerworks/cn/java/j-jtp0730/# 线程池原理及python实现: http://www.cnblogs.com/goodhacker/p/3359985.html# Threadpool: http://chrisarndt原创 2014-06-04 13:01:17 · 1312 阅读 · 0 评论 -
python实现QQ机器人(自动登录,获取群消息,发送群消息)
一次偶然的机会我看见了一个群里的一个QQ号总是根据你所发的消息自动回复,当时很感觉到神奇,我知道可以模拟登录网站,没想到竟然也能模拟登录QQ,首先自己想到的就是如何实现模拟登录PC端的QQ, 开始研究了下,发现QQ所发送的包都很难理解。于是就转到了网页版的QQ,因为在网页里可以捕获所有的请求从而更好的实现模拟功能!首先第一步就是打开网页版的qq,打开浏览器的开发者模式 这里可以监控所有的请原创 2014-06-08 22:25:36 · 60094 阅读 · 12 评论