Python怎么开发详细设计文档Android应用啊可以详细点吗

第一节 在手机上配置Python运行环境
1.下载和安装 Scripting Layer for Android (SL4A)
Scripting Layer for Android (SL4A) 是一个开源项目,目标是为android系统提供脚本语言的支持,使用户可以直接在android平台上进行脚本语言的编辑、解释和执行。这些脚本语言已经可是使用很多封装好的android API来开发功能丰富的android应用程序,并且使开发变得更加的简单和高效!这个平台支持多种脚本语言,比如 Python, Perl, JRuby, Lua, BeanShell, JavaScript, Tcl, shell 等,你可以选择你熟悉的语言进行开发,本系列教程使用Python为编程脚本语言SL4A项目的地址:页面打开后,你可以选择用手机扫描该页面的二维码将应用直接下载并安装到手机上,或者点击二维码图片,将应用下载的电脑上在传输到手机上安装。你要是懒得去项目主页,直接扫描下图的二维码即可:
2.下载和安装 Python for android
在项目主页面的右上方,有该应用支持的所有脚本语言的下载列表,如下图所示;选择你使用的语言,打开相应的语言环境的下载页面,与下载SL4A的方式类似,将该语言包应用下载并安装到你的手机上。我打开的是Python的页面,如下图所示:程序安装完成后,打开Python for Android应用,在应用的最上方会有一个Install的按钮,点击该按钮,就会自动下载Python相关的文件并解压和安装,这个过程结束后,你的android手机上的Python开发环境就配置好了!
3.第一个HelloWorld程序
打开SL4A应用,会进入Python示例代码列表,基本上是对主要API的演示,部分示例可能由于偏老,运行时会提示方法过期或者运行异常的问题,这个至少修改少许代码即可,有机会的话,我会在后续课程中介绍这是示例以及修正的方法。点Menu键,然后点击Add,选择Python2.6.2,就会新建一个Python脚本文件,将文件的名字命名为:HelloPythonInAndroid.py点击屏幕进入脚本编辑区,开始输入如下内容:
import androiddroid = android.Android()droid.makeToast(&Hello, Python in Android&)
输入完成后,如下图所示:
点击Menu,选择Save&Run,恭喜你,你已经用Python完成了第一个Android应用:HelloPythonInAndroid!
第二节 第一个有实用价值的应用
1.python预备知识
单行注释使用#号,#以后的内容是注释,不会被解释器解释执行执行;import语句用来导入模块,后面跟模块名;python中的变量不需要声明类型,变量被赋值之后类型会自动指定,这也是动态语言的特性之一;
元组,python基本数据结构之一,使用这样的形式表示:元组1=(数据1,数据2,数据3)元组一旦生成后就不能修改了元组可以嵌套包括他自己在内的所有列表类型的数据集合,如:元组2=(元组1,数据4,数据5)元组中数据的获取方法: 元组名[索引编号]
字典,python基本数据结构之一,使用这样的形式表示:字典1={键1:值1,键2:值2,键3:值3}字典可以嵌套包括他自己在内的所有列表类型的数据集合字典中数据的获取方法:字典名[键名] 或者 字典名[索引编号]
格式化字符串:字符串中的%s会被后面的对象替换掉,例如:&Hello,%s& % &PuLee&最后返回的结果是:Hello,PuLee注意两个字符串之间的那个%号不要漏掉了!
2.图书价格查询器的功能分析
第一步:调用条形码扫描程序,扫描书的条形码,然后从条形码中获得书籍的ISBN编号
第二步:构造查询书籍价格的Url地址,使用豆瓣的图书搜索功能
第三部:打开浏览器,传入构造好的Url地址,返回查找的结果
3.图书价格查询器的设计实现
实现代码如下:#导入Android的API模块import android#获得操作对象droid = android.Android()#运行扫描程序,返回一个元组code = droid.scanBarcode()#从扫描程序返回的元组中取得isbn编号isbn = code[1]['extras']['SCAN_RESULT']#构造查询书籍的Urlurl = &http://book.douban.com/subject_search?search_text=%s&cat=1001& % isbn#打开浏览器,传入构造好的Url,返回查找结果droid.startActivity(&android.intent.action.VIEW&,url)
最后的返回的查询结果:
第三节 在电脑上编写程序在手机上运行
最手机上写脚本是一件每场辛苦的事情,虽然SL4A人性化的为我们提供了API快速插入功能,并且优美的Python为我们省去了输入分号和括号之苦,但是没有智能感知,没有关键字补全,狭小的按键,输入符号的困难,还是让我没有勇气去在手机上写超过50行的程序.改为在电脑上编写代码,再复制到手机上运行!那么,如何快速的将PC上编写的代码发送到手机上呢?
1. 一些传统的方法
1.1 数据线这个就不用我多说了吧,应该都会的,但是随身带数据线是件很麻烦的事情,所以应该再找些其他方法!1.2 wifi和数据线原理差不多,很多的android的PC客户端都已经支持通过wifi连接手机了,比如豌豆荚,但是不是哪里都有wifi的.1.3使用具有网络同步功能的笔记管理软件通过笔记管理软件,比如,在pc端编写好脚本,上传,然后再在手机上下载下来,粘帖到SL4A中.
2.将程序的代码生成二维码图片
上面的几种方法要么对硬件有要求(数据线,无线路由),要么要下载额外的软件(笔记管理软件),都比较麻烦,其实SL4A的作者也考虑到了这个问题,为我们提供了一种很有趣的代码输入方式:扫描二维码!
方法如下:1. 打开二维码生成页面:,在Contents后面的下拉列表中选择:Text2. 在Text content 后文本区的第一行输入脚本的名称,比如:HelloWorld.py3. 在他的下方输入脚本的内容.4. 在Barcode size 后的下拉列表中选择:L5. 点击Gernerate 生成二维码6. 将右边生成的二维码保存或者与你的朋友们分享!生成的二维码如图所示:
3. 使用手机扫描生成的二维码,并将其转化为py脚本
二维码生成了,如何将它导入手机呢?1.启动SL4A进入脚本列表2.按菜单键(MENU)3.点击Add4.点Scan Barcode5.扫描生成的二维码,脚本便会自动显示在列表中(名称就是第一行的名称)ps:二维码最多容纳的字符为4296个,所以只能用来存放较短的脚本!
另一篇文章:
在Android上用python(Perl、Lua、BeanShell等)编程
&原文来自:http://imxingzhi.appspot.com/?p=110001
偶然间发现了google code上的一个项目&&
该项目开发了一个叫SL4A(Scripting Layer for Android),也被称为ASE(Android Scripting Environment)的软件
该软件可允许一些脚本语言如python、Perl、Lua、Javascript(甚至可以用BeanShell&&可以解释Java代码了)在android平台上来编写并编译程序。
SL4A还能访问Android API,可以在手机上直接开发Android应用!虽然我还没这能耐,但想想还觉得爽啊。
我还发现可以利用SL4A的服务器或是通过USB,在电脑上写脚本然后发送至手机上运行。()
这是款很好很强大的软件!!&&
下面说说如何在Android上用python写程序。
打开项目主页:&下载SL4A软件。
用手机上的条码扫描器扫描位于正中的条码并在手机里下载,或者点击它下载再通过usb传输到手机去。安装它。
接下来,就是增加python语言支持了。
有两种方式安装python解释器。
1. 在项目主页右边Featured downloads处选择并将其下载至手机,方法同上,然后在手机上安装后执行。执行后是一个黑色界面,上面有 Install 按钮,点击它就会自动下载压缩包。
2. 执行SL4A ,按手机的Menu键,选Interpreters, 再按Menu,选Add,就会出现各种支持的语言了,选Python2.6.2 程序便会自动下载并安装。
py文件的执行:
python安装后是会有一些范例的,点击便会自动执行,但范例都是Android API的范例。
自己来写一个:
依次按Menu & Add - Python2.6.2
取个名字:hello.py& 下面就可以写代码了,第一个程序当然是hello world&& ~/(≧▽≦)/~啦啦啦
代码如下:
print &hello world&
按Menu,Save&Run ,屏幕就出现结果了。&
至此,手机就可以用python写程序啦,安装其他语言也是同理。
在Interpreters里直接点击Python 2.6.2的话,可进入python命令行界面,可以直接执行代码,但还是建议新建py文件,因为在命令行界面下不能用全键盘打字,打命令很痛苦:(
Android API:
感谢这新闻,让我知道了这一好东西:
阅读(...) 评论()构建您自己的开发环境
此内容是该系列 # 部分中的第 # 部分: 使用 Python 和 SL4A 的 Android 应用程序,第 1 部分https://www.ibm.com/developerworks/cn/views/global/libraryview.jsp?series_title_by=使用+python+和+sl4a+的+android+应用程序敬请期待该系列的后续内容。此内容是该系列的一部分:使用 Python 和 SL4A 的 Android 应用程序,第 1 部分敬请期待该系列的后续内容。
关于在 Google Android 平台进行开发的一个常见误解是,必须使用 Java™ 语言编写代码。实际上,通过 Scripting Layer for Android (SL4A) 项目您将拥有了多种选项。SL4A 刚开始时候是一个才完成 20% 的项目,是由 Google 员工 Damon Kohler 开发的。几乎耗费了 2 年时间,有了 4 个主版本。
SL4A 为很多脚本编写语言(包括 Lua、Perl、Python 和 Rhino)提供了一个平台。它还支持基础的 Shell 脚本编写。现在,SL4A 项目的 Python 部分已经发展成一个独立的项目,部分原因是由于 Python 的流行,以及从主要 SL4A 版本周期分离新 Python 函数的需要。
本文主要关注于使用 Python 为 Android 平台编写应用程序。Python 是一个功能强大的工具,可以编写简单脚本和复杂的多线程应用程序。在 Android 上使用 Python 最大的优势是有机会使用成千上万行已编写好的代码,而且这些代码均是免费的。Python 是一种易于学习的语言,如果您之前从未使用过,可以在 Internet 上找到许多资源,帮助您尽快上手。
安装和设置开始使用 SL4A 进行开发之前,必须下载和安装几个必备工具。第一个是完整的 Java Development Kit (JDK)。您可以在 Oracle Developer 网站上找到该工具的最新版本。其次,您需要下载 Android software development kit (SDK)。在 Android 开发人员主网站中有两个格式可供下载:一个 .zip 文件和一个 .exe 文件。如果您下载和运行 .exe 文件,将会出现一个界面,要您选择 SDK 版本和想要安装的支持文件(见图 1)。
图 1. 选择您要下载的 Android SDK 选项
对于本文,我在 Windows® 7 64 位机上进行安装和测试。
因为本文是关于使用 Python 为 Android 平台开发应用程序的,显然您需要在开发机器上安装 Python。Windows 自身并不带 Python。在本文撰写时,SL4A Python 版本是 2.6.2。可以下载 Python 2.6 的 32 位或 64 位版本 保持兼容。
在您的 PATH 声明中添加一些 Android SDK 链接是一个很不错的主意,使得启动 SDK Manager 和其他工具变得更加容易。要在 Windows 7 上做到这一点,执行以下步骤:
按 Windows 键,并单击Search。在文本对话框,输入 Environment。单击 Edit the system environment variables。在打开的窗口中,单击 Environment Variables,然后在 User variables 列表中选择 PATH 变量。
单击 Edit,然后将该路径添加到您的 Android SDK 工具目录。
需要添加以下字符串: ;C:\Users\paul\Downloads\android-sdk-windows\platform-tools在将新路径添加到一个新目录之前,必须添加分号 (;)。输入完成后,单击 OK 3 次。
在 Android 设备上安装 SL4A,类似于其他 Android 应用程序安装流程。您可以使用您的设备浏览主 SL4A 项目网站上的 QR 代码,以下载 SL4A 安装文件。下载完成后会自动启动。此时,您可以看到一个安装界面,如图 2 所示。
图 2. SL4A 安装界面单击 Install 启动该流程。最后一步是在您的设备上安装 Python interpreter。你可以使用任何的几种方法完成。从模拟器中,您可以在浏览器搜索框(见图 3)中输入 sl4a download。
图 3. SL4A 下载界面单击 PythonForAndroid_r4.apk 链接开始下载。要实际启动安装程序,通过单击并将模拟器界面顶部拖拉到界面底部,以查看通知界面。单击 Download complete 消息会启动 Python for Android 安装程序(见图 4)。
图 4. Python for Android 初始安装界面
单击 Install 会启动一个进程,该进程下载并打开多个 .zip 文件。为了本文描述方便,只需单击主安装界面上的 Install(图 5)。
图 5. Python for Android 主安装界面
您应该可以看到 3 个独立进程窗口。第一个窗口显示下载,以及提取文件发送到 SD 卡。如果一切正常,出现 “Installation Successful” 消息。
Android SDK 基础有 2 个基本方法可使用 SL4A 测试您的 Python 代码:使用一个模拟器或者使用一个真实物理设备。Android SDK 提供基础模拟器功能和工具创建一个具有与物理设备相同特征的模拟设备。在一些情况下,正如 Samsung 平板电脑附加组件,有一个预配置模拟器可供使用。
SDK Manager 可以作为一个更新管理程序和一个虚拟设备创建工具。每次当您启动 SDK Manager 时,它会连接到 Android 开发人员网站来查看新版本。(您可以单击取消,跳过这一步。)此时,您可以看到 Android SDK and AVD Manager 窗口,如图 6 所示。
图 6. Android SDK 和 AVD Manager在目录树中选择 Virtual devices 会在细节面板中显示之前定义的所有 Android 虚拟设备 (AVD)。要创建一个新模拟设备,单击 New。在 Create New Android Virtual Device (AVD) 窗口,提供 Name、Target 和 SD Card Size 字段所需的信息。图 7 显示了测试设备的记录,名称中不能包含空格,至少得留出 100MB 用于存储。为您的目标设备选择适当的 Android 版本。该下拉菜单只显示之前下载的选项。
图 7. Create New AVD 向导接下来,单击 Create AVD。弹出窗口会提供新设备的详细信息。要启动任何现有虚拟器图像,选择目标,然后单击 Start。在 Launch Options 窗口,您可以继续保留默认屏幕大小,也可以选择 Scale display to real size 复选框选择更大的尺寸。值选为 7 似乎效果不错(见图 8)。启动一个空白的模拟器,选择 Wipe user data 复选框。
图 8. AVD 驱动选项Android SDK 提供的另一个必不可少的工具是 Android Device Bridge (ADB)。该工具提供了一些功能,比如安装应用程序(.apk 文件)、从一个设备复制文件或者将文件复制到设备,以及在该设备上发布 Shell 命令。实际上,您也可以使用 ADB 在一个设备上启动 SL4A,这样您就可以从工作站执行程序。要在您的主机工作站和设备之前建立联系,必须使用 ADB 将 TCP/IP 流量从端口 9999 前移到设备的特定端口。打开一个命令窗口,输入以下命令:
$ adb forward tcp:9999 tcp:42306第二个端口号来自设备。对于最新版本的 SL4A,可以在首选项中设置这一数值。对于标准版本,必须使用 SL4A 提供的数值。
现在,启动 SL4A,然后单击 Menu。从窗口底部的 6 个选项中,单击 View,然后单击 Interpreters(见图 9)。
图 9. 从 SL4A Interpreters 菜单启动远程服务器
再一次单击 Menu,然后单击 Private 启动一个私有服务器。
对于真实设备,其中的区别是 Private 使用 USB 端口启动服务器,而 Public 使用 Wi-Fi 启动。如果再一次查看通知页面,您可以看到 SL4A 服务正在运行(见图 10)。
图 10. Android 通知界面单击消息查看分配的实际端口号。这种情况下,您可以使用端口号 42306 作为 adb forward 命令中的第二个 TCP 值。现在,您可以开始编写一个 Python 代码以及在该设备上进行测试。
Python for Android 中的 Hello World 在任何介绍编程文章中编写 “hello world” 程序几乎已经成了一种习惯。我这样做来证明您可以有多种方法使用 SL4A 编写和测试您的 Python 代码。下面就让我们看看这些代码是什么样子:
import android droid = android.Android() result = droid.makeToast('Hello, world!')每个 SL4A 脚本编写语言都使用一个导入文件(在本案例中,Python 使用 android.py),以在脚本和底层应用程序编程接口 (API) 之间设置接口。您可以直接在设备中输入该代码,使用解释器(参见 )或者使用其他编辑器。要使用解释器,在 Interpreters 界面,选择 Python 2.6.2 来启动 Python 解释器。在结果界面中,您可以输入上述代码,在最后一行,您可以看到一个弹出窗口,其中有 “Hello, world!” 字样。
在一个模拟或者真实设备中执行键入可能让人觉得单调乏味。当结合 ADB 工具在 PC 上编写代码并在 Android 设备上进行测试时,Python 的 IDLE 控制台和编辑器是必不可少的。您惟一需要的是 android.py 文件的一个本地副本。您可以从 python_extras_r14.zip 文件(SL4A 下载页面上提供)中提取,或者使用 adb pull 命令将其从设备中转移。在您主系统驱动器的根目录有一个名为 SDCARD 的目录,可方便镜像模拟设备中的一切。从一个文件路径角度来说,这使得您在需要访问文件系统的本地机器上运行脚本变得很方便。图 11 显示了 IDLE 控制台上的 Hello World 脚本。
图 11. Python IDLE 控制台上的 Hello World
如果启动服务器和执行 adb forward 命令,您将看到没有出现错误信息,而出现了 “Toast” 消息,如图 12 所示。
图 12. Hello World 弹出消息在 Windows 中,可以通过单击 File & New Window 在 IDLE 中启动一个编辑窗口。该窗口为您提供了来自于您开发机器的一个完整的编辑和测试功能,可以在模拟或真实 Android 设备中使用。
查看各个 。
页面了解更多的信息。
上找您所需要的 Python 资源。
下载 ,或者访问 。
下载最新版本的 。
阅读更多 。在 ,可以找到数百篇 ,还有下载、论坛,以及针对 Linux 开发人员和管理员的丰富资源。您将在 developerWorks 找到 。 关注
快速了解 IBM 产品和工具,以及 IT 行业趋势。 包括 IBM Dojo 1.7 Toolkit、新的移动和富 Internet 应用程序 (RIA) 构建块,以及一个基于 Dojo 的图表组件。使用附带的 Rational 工具,该 Feature Pack 可帮助您采用原先面向桌面浏览器开发的 WebSphere 应用程序,对其进行调整,并将它们部署到移动设备中。
以最适合您的方式 :下载产品试用版,在线试用产品,在云环境下试用产品,或者在
中花费几个小时来学习如何高效实现面向服务架构。
添加或订阅评论,请先或。
有新评论时提醒我
static.content.url=http://www.ibm.com/developerworks/js/artrating/SITE_ID=10Zone=移动开发, Open sourceArticleID=818350ArticleTitle=使用 Python 和 SL4A 的 Android 应用程序,第 1 部分: 构建您自己的开发环境publish-date=11,489被浏览2,149,345分享邀请回答import urllib2
import urllib
import datetime
import os.path
to_find_string="https://bd.phncdn.com/videos/"
big_path=""
def save_file(this_download_url,path):
print"- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
time1=datetime.datetime.now()
print str(time1)[:-7],
if (os.path.isfile(path)):
file_size=os.path.getsize(path)/
print "File "+path+" ("+ str(file_size)+"Mb) already exists."
print "Downloading "+path+"..."
f = urllib2.urlopen(this_download_url)
data = f.read()
with open(path, "wb") as code:
code.write(data)
time2=datetime.datetime.now()
print str(time2)[:-7],
print path+" Done."
use_time=time2-time1
print "Time used: "+str(use_time)[:-7]+", ",
file_size=os.path.getsize(path)/
print "File size: "+str(file_size)+" MB, Speed: "+str(file_size/(use_time.total_seconds()))[:4]+"MB/s"
def download_the_av(url):
req = urllib2.Request(url)
content = urllib2.urlopen(req).read()
while len(content)&100:
print"try again..."
content = urllib2.urlopen(req).read()
print "All length:" +str(len(content))
title_begin=content.find("&title&")
title_end=content.find("&/title&")
title=content[title_begin+7:title_end-14]
title=title.replace('/','_')
quality=['720','480','240']
for i in quality:
find_position=content.find("\"quality\":\""+i+"\"")
if find_position&0:
print "Quality: "+i+"P"
to_find=content[find_position:find_position+4000]
pattern=re.compile(r"\"videoUrl\":\"[^\"]*\"")
match = pattern.search(to_find)
the_url=match.group()
the_url=the_url[12:-1]#the real url
the_url=the_url.replace("\\/","/")
save_file(the_url,big_path+title+".mp4")
urls=["https://www.p***hub.com/view_video.php?viewkey=ph592ef8731630a",]
print len(urls),
print " videos to download..."
for url in urls:
print count
download_the_av(url)
print "All done"
2.5K156 条评论分享收藏感谢收起wlkt.ustc.edu.cn/)是一个非常好的平台,上面汇集了很多知名教授的授课视频,以及最新的讲座、报告、表演视频,内容还是相当丰富的。但是这些视频只面向校内IP开放。所以想在校外看到这些视频必须破解视频地址,于是利用Python的requests库结合BeautifulSoup,用了不到10行代码就可以获取真实下载地址。为了方便没有安装Python的电脑使用,简单写了一个GUI界面,给室友用,都说还是挺好的用的哈。考虑到视频版权问题,代码和程序就不放出来了,请大家见谅。2. 获取中科大研究生系统全部学生姓名、学号、选课信息登录中国科学技术大学的研究生综合系统(),可以看到每一门课选课的学生姓名和学号,当时就想能不能做一个这样的系统,来输入任何姓名(或者学号)就可以看到他所有的选课信息呢?这是选课首页:点击每门课的已选人数链接,可以看到所有的选课学生姓名和学号:下面就利用requests的模拟登录功能,先获取全部课程的链接,并保存对于的课程信息,然后挨个获取了所有课程的选课信息。为了保护学生信息,对程序的关键部分进行了模糊处理,希望大家谅解。这样就获取了一个巨大的json文件,里面全部是学生姓名学号选课信息:有了这个json文件,我们可以写入数据库,也可以直接利用json文件来查询:为了方便其他人使用,基于上面的数据我开发了一个线上版本:输入姓名或者学号都可以直接查询别人的选课信息:这个地址就不放出来了,如果您是科大的研究生,私信我,我把链接发给你。3. 扫描中科大研究生系统上的弱密码用户基于上面获得的选课学生学号,很容易利用Python依次模拟登录研究生,密码就用弱密码123456,然后可以获得身份证号码等重要信息。这样就得到了使用123456作为密码的用户信息,所以在此提醒大家一定不要使用弱密码,希望下面的同学早日修改密码。4. 模拟登录中科大图书馆并自动续借最近,科大图书馆系统升级了,到处都加了验证码,所以下面这个方法直接使用肯定是不行了,不过曾经毕竟成功过哈。以前收到借阅图书到期通知短信,就会运行一下这个程序,自动续借了,然后就可以再看一个月了。运行就是这样的,自动续借成功,看到的链接就是每本书的续借链接。5. 网易云音乐批量下载终于来一个正常一点的哈,那么我就直接放代码吧,可以下载网易云音乐各个榜单的全部歌曲,批量下载,速度挺快。请注意提前要创建一个名为 “网易云音乐” 的文件夹。# 网易云音乐批量下载
# By Tsing
# Python3.4.4
import requests
import urllib
# 榜单歌曲批量下载
# r = requests.get('http://music.163.com/api/playlist/detail?id=2884035') # 网易原创歌曲榜
# r = requests.get('http://music.163.com/api/playlist/detail?id=') # 云音乐飙升榜
# r = requests.get('http://music.163.com/api/playlist/detail?id=3778678') # 云音乐热歌榜
r = requests.get('http://music.163.com/api/playlist/detail?id=3779629') # 云音乐新歌榜
# 歌单歌曲批量下载
# r = requests.get('http://music.163.com/api/playlist/detail?id=') # 云音乐歌单——【华语】中国风的韵律,中国人的印记
# r = requests.get('http://music.163.com/api/playlist/detail?id=') # 云音乐歌单——那不是爱,只是寂寞说的谎
arr = r.json()['result']['tracks'] # 共有100首歌
for i in range(10): # 输入要下载音乐的数量,1到100。
name = str(i+1) + ' ' + arr[i]['name'] + '.mp3'
link = arr[i]['mp3Url']
urllib.request.urlretrieve(link, '网易云音乐\\' + name) # 提前要创建文件夹
print(name + ' 下载完成')
于是就可以愉快的听歌了。上面这些都是在Python3的环境下完成的,在此之前,用Python2还写了一些程序,下面也放几个吧。初期代码可能显得有些幼稚,请大神见谅。6. 批量下载读者杂志某一期的全部文章上次无意中发现读者杂志还有一个在线的版本,然后兴趣一来就用Python批量下载了上面的大量文章,保存为txt格式。#!/usr/bin/env python
# -*- coding: utf-8 -*-
# 保存读者杂志某一期的全部文章为TXT
# By Tsing
# Python 2.7.9
import urllib2
from bs4 import BeautifulSoup
def urlBS(url):
response = urllib2.urlopen(url)
html = response.read()
soup = BeautifulSoup(html)
return soup
def main(url):
soup = urlBS(url)
link = soup.select('.booklist a')
path = os.getcwd()+u'/读者文章保存/'
if not os.path.isdir(path):
os.mkdir(path)
for item in link:
newurl = baseurl + item['href']
result = urlBS(newurl)
title = result.find("h1").string
writer = result.find(id="pub_date").string.strip()
filename = path + title + '.txt'
print filename.encode("gbk")
new=open(filename,"w")
new.write("&&" + title.encode("gbk") + "&&\n\n")
new.write(writer.encode("gbk")+"\n\n")
text = result.select('.blkContainerSblkCon p')
for p in text:
context = p.text
new.write(context.encode("gbk"))
new.close()
if __name__ == '__main__':
time = '2015_03'
baseurl = 'http://www.52duzhe.com/' + time +'/'
firsturl = baseurl + 'index.html'
main(firsturl)
7. 获取城市PM2.5浓度和排名最近环境问题很受关注,就用Python写了一个抓取PM2.5的程序玩玩,程序支持多线程,方便扩展。#!/usr/bin/env python
# -*- coding: utf-8 -*-
# 获取城市PM2.5浓度和排名
# By Tsing
# Python 2.7.9
import urllib2
import threading
from time import ctime
from bs4 import BeautifulSoup
def getPM25(cityname):
site = 'http://www.pm25.com/' + cityname + '.html'
html = urllib2.urlopen(site)
soup = BeautifulSoup(html)
city = soup.find(class_ = 'bi_loaction_city')
# 城市名称
aqi = soup.find("a",{"class","bi_aqiarea_num"})
quality = soup.select(".bi_aqiarea_right span")
# 空气质量等级
result = soup.find("div",class_ ='bi_aqiarea_bottom')
# 空气质量描述
print city.text + u'AQI指数:' + aqi.text + u'\n空气质量:' + quality[0].text + result.text
print '*'*20 + ctime() + '*'*20
def one_thread():
print 'One_thread Start: ' + ctime() + '\n'
getPM25('hefei')
getPM25('shanghai')
def two_thread():
print 'Two_thread Start: ' + ctime() + '\n'
threads = []
t1 = threading.Thread(target=getPM25,args=('hefei',))
threads.append(t1)
t2 = threading.Thread(target=getPM25,args=('shanghai',))
threads.append(t2)
for t in threads:
# t.setDaemon(True)
if __name__ == '__main__':
one_thread()
print '\n' * 2
two_thread()
8. 爬取易迅网商品价格信息当时准备抓取淘宝价格的,发现有点难,后来就没有尝试,就把目标选在了易迅网。#!/usr/bin/env python
#coding:utf-8
# 根据易迅网的商品ID,爬取商品价格信息。
# By Tsing
# Python 2.7.9
import urllib2
from bs4 import BeautifulSoup
def get_yixun(id):
price_origin,price_sale = '0','0'
url = 'http://item.yixun.com/item-' + id + '.html'
html = urllib2.urlopen(url).read().decode('utf-8')
soup = BeautifulSoup(html)
title = unicode(soup.title.text.strip().strip(u'【价格_报价_图片_行情】-易迅网').replace(u'】','')).encode('utf-8').decode('utf-8')
print title
soup_origin = soup.find("dl", { "class" : "xbase_item xprice xprice_origin" })
price_origin = soup_origin.find("span", { "class" : "mod_price xprice_val" }).contents[1].text
u'原价:' + price_origin
soup_sale= soup.find('dl',{'class':'xbase_item xprice'})
price_sale = soup_sale.find("span", { "class" : "mod_price xprice_val" }).contents[1]
u'现价:'+ price_sale
return None
if __name__ == '__main__':
get_yixun('2189654')
9. 音悦台MV免积分下载音悦台上有好多高质量的MV,想要下载却没有积分,于是就想到破解下载。当时受一个大神的代码的启发,就写出了下面的代码,虽然写的有点乱,但还是可以成功破解的哈。#!/usr/bin/env python
# -*- coding: utf-8 -*-
# 音悦台MV免积分下载
# By Tsing
# Python 2.7.9
import urllib2
import urllib
mv_id = '2278607'
# 这里输入mv的id,即http://v.yinyuetai.com/video/2275893最后的数字
url = "http://www.yinyuetai.com/insite/get-video-info?flex=true&videoId=" + mv_id
timeout = 30
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 6.3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36',
'Accept':'text/html,application/xhtml+xml,application/q=0.9,image/webp,*/*;q=0.8'
req = urllib2.Request(url, None, headers)
res = urllib2.urlopen(req,None, timeout)
html = res.read()
reg = r"http://\w*?\.yinyuetai\.com/uploads/videos/common/.*?(?=&br)"
pattern=re.compile(reg)
findList = re.findall(pattern,html)
# 找到mv所有版本的下载链接
if len(findList) &= 3:
mvurl = findList[2]
# 含有流畅、高清、超清三个版本时下载超清
mvurl = findList[0]
# 版本少时下载流畅视频
local = 'MV.flv'
print 'downloading...please wait...'
urllib.urlretrieve(mvurl,local)
print "[:)] Great! The mv has been downloaded.\n"
print "[:(] Sorry! The action is failed.\n"
10. 其他请参考:结语:Python是一个利器,而我用到的肯定也只是皮毛,写过的程序多多少少也有点相似,但是我对Python的爱却是越来越浓的。补充:看到评论中有好多知友问哪里可以快速而全面地学习Python编程,我只给大家推荐一个博客,大家认真看就够了:2.4K357 条评论分享收藏感谢收起

我要回帖

更多关于 房地产开发流程 详细 的文章

 

随机推荐