Ubuntu下安装php-curl扩展

在启用WP Statistics插件的GeoIP选项时,提示没有curl扩展。搜了下网络安装方法基本上都要编译php源代码,vps上没有源代码也懒得下了,去Ubuntu软件源中找找看吧。

$ sudo apt-cache search curl|grep php
php5-curl - CURL module for php5
php-http-request2 - Provides an easy way to perform HTTP requests

可以看到有一个php5-curl,应该就是我要找的。

sudo apt-get install php5-curl

然后重启apache2(如果你也用apache2的话),发现WP Statistics插件,统计-设定中已经可以开启GeoIP了。

 

发表在 技术, 未分类 | 标签为 , , , | 留下评论

Python3抓取煎蛋妹子图

以前写的一篇文章,发表于csdn博客,现在转过来……
闲来无事,从煎蛋妹子图抓取所有图片并保存。ps:900页之前图片都看不到了,所以只能抓900页之后的

#coding=utf-8 

import httplib2,re,random,os
urls=[]
imgUrls=[]
h = httplib2.Http(".cache")  
reg=r'img src="(http.*?gif)" /></p>'  
imgre = re.compile(reg)
filepath='/xxx/imgs'
prefix_url='http://jandan.net/ooxx/page-'


def createJDUrlList(size):
    #煎蛋妹子图前900页无内容
    for i in range(900,size):
        urls https://mannap....rika/.append(prefix_url+str(i))

def getImgUrlsFromPageUrl(pageUrl):
    i_headers = {"User-Agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:39.0) Gecko/"+str(random.random())+" Firefox/39.0","Accept": "text/plain"} 
    response,content = h.request(pageUrl,headers=i_headers)
    content=content.decode('utf-8')
    pageImgUrls=re.findall(imgre,content)
    imgUrls.extend(pageImgUrls)  
    print('pageImgUrls:'+str(len(pageImgUrls)))    

#保存图片到文件,如果图片文件已经存在,则跳过
def getAndSaveImg(imgUrl):
    filename=imgUrl.split('/')[-1]
    file_path=filepath+'/'+filename
    if os.path.exists(file_path):
        return
    print('save:['+imgUrl+'] to ['+file_path+']')
    try:
        #经测试煎蛋有防止爬虫功能,所以改变User-Agent,伪装成新请求
        i_headers = {"User-Agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:39.0) Gecko/"+str(random.random())+" Firefox/39.0","Accept": "text/plain"} 
        response,content = h.request(imgUrl,headers=i_headers)
        save2File(fcontent=content,mode='wb',path=file_path)
    except Exception as e:
        print(e)
            
def save2File(fcontent,path,mode):
    wfile=open(path,mode)
    wfile.write(content)
    wfile.close()
    
def getJiandanMM():
    #最新页面
    createJDUrlList(1474)
    getImgUrlsFromPageUrl(urls[-1])
    for url in urls:
        getImgUrlsFromPageUrl(url)
    #将图片url暂存到文件,下载图片出现错误可以直接从文件载入图片url   
    pre=str(imgUrls)
    pre=pre.replace("[","")
    pre=pre.replace("]","")+"\n"
    save2File(fcontent=pre,mode='w',path=filepath+'/allurls_2.txt')
    
    for imgUrl in imgUrls:
        print(imgUrl)
        getAndSaveImg(imgUrl)
        
def getJiandanMMFromFile(filepath):
    wfile=open(filepath,'r')
    line=wfile.readline()
    wfile.close()
    urls=line.replace('\n','').replace('\'','').replace(' ','').split(',')
    
    for url in urls:
        saveImg(url)
if __name__ == "__main__":
    getJiandanMM()

 

发表在 技术, 未分类 | 标签为 , | 留下评论

Ubuntu下的基于Eclipse的Android环境搭建二三事

闲来无事在笔记本上装了Ubuntu14.04与win7的双系统,打算在Ubuntu下进行Android的开发和学习。以前在Windows下搭建过Android开发环境,安装JDK,安装ADT-Bundle for Windows,然后启动Eclipse就可以开始HelloWorld了。可是在我的的Ubuntu64系统中却不是这么的顺风顺水。

1、ll 提示“ll 未找到命令”,重启登录后回到登录窗口

安装jdk8,设置了环境变量, 翻墙下载adt-bundle-linux-x86_64-20140702后,解压,然后习惯行的在终端中执行“ll”命令,结果居然提示我“未找到命 令”……我去。这个命令是alias命令别名,第一反应是刚才设置环境变量时候source /etc/profile出问题了。这时候脑子不知道怎么想的重启了机器,输入密码,等待……嗯?怎么又回到了登录窗口?闹哪样呀。再来一次,我去还循环 上了……

没办法,ctrl+alt+f1切换到命令行终端,输入用户名密码,还好能登录。不对,提示我说没有我的home文件夹,当前路径设为根目录。玩大了。 cd到/home下,ls一下,果然什么都没有……sudo mkdir XXX   sudo chown XXX XXX,然后再按ctrl+alt+f7,输入密码,嗯,能登录了,不过以前的设置,下载的东西全没了……

进系统后还是打开终端,ll居然还是不能执行,好吧,在我的home下ls -al,貌似少了点啥,一时间也想不起来,索性在系统中又建了一个新的用户,到人家家一看,就是不一样呀。好吧,由于是我手动建的home目录,所以没 有.bashrc和 .profile(为什么别的文件系统都给建了就没建这两个,为什么我要说所以……)。so 把人家的这俩文件cp过来然后删除那个用户,灭口。source了下,一切终于正常了。

2、打开Eclipse导入以前windows中的项目,直接运行。居然提示找不到adb,“Cannot run program “…../sdk/platform-tools/adb”。去它提示的目录下一看一个有执行权限adb就在那好好躺着呢。咋回事,装陌生人呀。没办 法,搜了下。说是adb是32位的程序,在64位linux下闹情绪了。

sudo apt-get install lib32z1

sudo apt-get install lib32stdc++6

 

终于能选择Android Device了。

3、其实最大的问题就在这,选择Android Device时,首先我之前没建虚拟设备,先建一个吧,点击下边的manager–>create–>输入名称,选择设 备,target。问题来了,CPU那显示 NO system images installed for this target,以前遇到过,打开你的Android sdk manager,设置代理服务器,然后install ARM EABI v7a System Image。然后就是等着吧,几k的网速貌似要好久……

4、等不急了,先用我的摩托罗拉ME865运行下吧,插入,嗯,好了。又到了选择Android Device了……可是choose a running Android device 的SerialNumber居然是一串???

Target也是unknown,再上网搜索下,终于解决。

首先先找到你的手机的USB Vendor ID,这个可以通过lsusb命令查看,在我机器上输出如下:

Bus 002 Device 004: ID 064e:f207 Suyin Corp. 
Bus 002 Device 003: ID 09da:054f A4 Tech Co., Ltd 
Bus 002 Device 002: ID 8087:0020 Intel Corp http://rxcare.net.... Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 006: ID 17ef:6019 Lenovo 
Bus 001 Device 008: ID 22b8:4366 Motorola PCS 
Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

可以看到倒数第三个就是我的大摩托,我们需要的就是ID后的那四位字符,22b8。

然后sudo gedit /etc/udev/rules.d/50-android.rules新建规格文件

里面输入

SUBSYSTEMS=="usb",ATTRS{idVendor}=="0bb4",SYMLINK+="android_adb",OWNER="sunshine"

其中,OWNER里面对应的是你自己的用户。

保存关闭后,执行sudo udevadm control –reload-rules命令

然后重启Eclipse,重新插入手机,OK~~终于可以了~~

———————————————————————————————-

参考,鸣谢:

http://www.cnblogs.com/hitwtx/p/3978309.html

http://www.oecp.cn/hi/yangtaoorange/blog/1168748

发表在 技术, 未分类 | 标签为 , , , | 留下评论

Hello world!

15年5月申请了一个搬瓦工的vps,一直只是用来当vpn用的。前两天不知道抽什么风,去注册了个com域名,于是就把域名利用起来吧,也将以前在CSDN的几篇小白文转过来。
话说这域名……oracle会不会有意见?之前javaeye都被改成了iteye……不过就凭我这流量,应该是多想了

发表在 技术, 未分类 | 留下评论