抓“糗百”新鲜事的python程序

看到”糗百”的好多好玩的东西。。就想抓取下来。。然后发到我们的微博上。。

关键字:python,redis,pyquery,urllib

思路:只抓取首页的好玩的。不能有重复的。pyquery是个好东西。。可以用jquery的语法来抓取网页。赞一个。urllib也是个好东西。解决了下载图片的问题。redis第一次尝试。也是个好东西。。把抓到的id存到redis的hash里。。耶。所有的”家伙”都齐全了。。开始码了。

 

#!/usr/bin/python
# -*- coding: utf-8 -*-

from pyquery import PyQuery as pq
from lxml import etree
import redis
import sys
import re
import urllib
import urllib2
import json
import hashlib
import random
import time
import os

hash_name = ‘qiushibaike’
server_address = ‘localhost’
img_base_path = ‘/data/img’

def getRandomFileName(ext):
    return chr(random.randint(97, 122)) + str(random.randint(10000,99999)) + str(time.time()).split(‘.’)[0] + ext

def getHashPath():
    dirtotal = 99
    dirdepth = 3
    hashpath = ”
    for i in range(1, dirdepth):
        hashpath = hashpath + str(random.randint(1, dirtotal)) + ‘/’
    return hashpath
#发微博接口   

def sendData(args):
    url = ‘http://a.b.c/weibo/send’
    args[‘account’] = ‘qiushibaike@gmail.com’
    args[‘robot_type’] = ‘gtalk’
    args[‘src’] = 20

    data = urllib.urlencode(args)
    req = urllib2.Request(url, data)
    response = urllib2.urlopen(req)
    r_data = response.read()
    json_data = json.loads(r_data)
    return json_data

print sys.getdefaultencoding()
reload(sys)
sys.setdefaultencoding(‘UTF-8′)

ids = []
qb = pq(‘http://www.qiushibaike.com’)
for i in qb(‘div[id^=qiushi_tag]’):
    m = re.match(r'[w_]+?(d+)$’, qb(i).attr(‘id’))
    ids.append(m.group(1))
r_server = redis.Redis(server_address)
exists_list = r_server.hmget(hash_name, ids)
val_ids = {}
for i in range(len(ids)):
    if not exists_list[i]:
        val_ids[ids[i]] = 1

args = {}
url = ”
ext = ”
count = 1
for i in val_ids.keys():
    a = ‘qiushi_tag_’ + i
    args[‘act’] = ‘addWeibo’
    args[‘content’] = qb(‘#’ + a).find(‘div.content’).text()
    args[‘pic’] = ”
    args[‘qid’] = ‘102251’
    if count == 1:
        args[‘extra_weibo’] = ‘1’
    else:
        args[‘extra_weibo’] = ”

    if qb(‘#’ + a).find(‘div.thumb’):
        url = qb(‘#’ + a).find(‘div.thumb img’).attr(‘src’)
        print ‘download img from:’ + url
        ext = os.path.splitext(url)[1]
        print ‘img ext: ‘ + ext
        path = getHashPath()
        full_path = img_base_path + path
        if not os.path.exists(full_path):
            os.makedirs(full_path)
        filename = getRandomFileName(ext)
        ab_path = full_path + filename
        urllib.urlretrieve(url, ab_path)
        args[‘pic’] = ‘/weibo/’ + path + filename
        print ‘img:’ + url + ‘ save file:’ + ab_path
    print args
    ret = sendData(args)
    if not int(ret[‘errcode’]):
        del val_ids[i]    
    print args[‘content’]
    count += 1
    if count > 5:
        time.sleep(61)
        count = count % 5
    else:
        time.sleep(2)
    
        
if len(val_ids):
    r_server.hmset(hash_name, val_ids)

windows下映射远程linux的samba

好久没有好玩的东西了。。。最近身体不行了。回家啥也不想动。。只想休息。。休息。。也懒得动电脑。。。先把身体整好了再说其它的吧。。

windows下映射远程linux服务器的samba

1. 首先要关掉xp的server服务

net stop server

2. 映射远程linux的139端口到本地139

plink -L 139:127.0.0.1:139 test@server_address(也可以用putty)

 

然后映射本地\127.0.0.1test到本地驱动器就可以了。。

人的一生,到底在追求什么?

从测试环境中看到一篇博文<<人的一生,到底在追求什么?>>

有 一个美国商人坐在墨西哥海边一个小渔村的码头上,看着一个墨西哥渔夫划着一艘小船靠岸,小船上有好几尾大黄鳍鲔鱼。这个美国商人对墨西哥渔夫能抓这么高档 的鱼恭维了一番,还问要多少时间才能抓这么多?墨西哥渔夫说,才一会儿功夫就抓到了。美国人再问,你为什么不待久一点,好多抓一些鱼?墨西哥渔夫觉得不以 为然:这些鱼已经足够我一家人生活所需啦!

美国人又问:那么你一天剩下那么多时间都在干什么?

墨西哥渔夫解释:我呀?我每天睡到自然醒,出海抓几条鱼,回来后跟孩子们玩一玩;再跟老婆睡个午觉,黄昏时晃到村子里喝点小酒,跟哥儿们玩玩吉他。我的日子可过得充满又忙碌呢!

美国人不以为然,帮他出主意,他说:我是美国哈佛大学企管硕士,我倒是可以帮你忙!你应该每天多花一些时间去抓鱼,到时候你就有钱去买条大一点的船。自然你就可以抓更多鱼,在买更多渔船。然后你就可以拥有一个渔船队。

到时候你就不必把鱼卖给鱼贩子,而是直接卖给加工厂。然后你可以自己开一家罐头工厂。如此你就可以控制整个生产、加工处理和行销。然后你可以离开这个小渔村,搬到墨西哥城,再搬到洛杉矶,最后到纽约,在那经营你不断扩充的企业。

墨西哥渔夫问:这又花多少时间呢?
美国人回答:十五到二十年。
墨西哥渔夫问:然后呢?

美国人大笑着说:然后你就可以在家当皇帝啦!时机一到,你就可以宣布股票上市,把你的公司股份卖给投资大众;到时候你就发啦!你可以几亿几亿地赚!

然后呢?

美国人说:到那个时候你就可以退休啦!你可以搬到海边的小渔村去住。每天睡到自然醒,出海随便抓几条鱼,跟孩子们玩一玩,再跟老婆睡个午觉,黄昏时,晃到村子里喝点小酒,跟哥儿们玩玩吉他。

墨西哥渔夫疑惑的说:我现在不就是这样了吗?