哈喽大家好,我是鹏哥。
今天想记录的学习主题是 —— 基于pythonista3 app开发自己的iphone应用程序。
~~~上课铃~~~
(由于今天被小伙伴推荐了这首歌,因此就应他的要求,作为此文的背景音乐吧!)
1 写在前面
之前看到翔哥发过一篇如何将安卓手机打造成Python开发环境,心生羡慕。可是由于不舍得那么多的英雄和皮肤,因此只能继续玩着iphone。![]()
网上有很多人都说Appstore里也有 python的开发工具:Pythonista 3,售价68元。对这款app,大家的评价都被五毛党刷成:虽贵真香。抱着被骗的心态,我也花了68元大洋玩了。结果是:
真香!真香!
2 效果展示
本次开发的应用程序(其实就是个小程序,但是不做标题党,没人关注呀
)是个查看杭州天气的功能。
桌面app:weather
3 如何玩呢
下面我从零开始,一步步教大家如何开发属于自己的iphone应用。
(1)从Appstore下载pythonista 3
GitHub地址:https://github.com/ywangd/stash
import requests as r;exec(r.get('https://bit.ly/get-stash').text)从这 里还可以看到Python2/3的标准库也被pythonista 3统一下载好了,太贴心!
然后你会发现,怎么没有启动Pip的脚本:launch_stach.py呢?因为launch_stach.py被自动放到了iphone的最外层文件夹。
然后你就可以像电脑上一样,通过pip命令下载库了:
Tips: 有些库还是无法下载的,如Pyqt5
4 示例代码
查看杭州天气的代码,可以查看【Python成长之路】python 从零学爬虫 -- 获取杭州天气,
因此不再详细介绍代码了。
# coding=utf-8# @Auther : "鹏哥贼优秀"# @Date : 2019/7/28# @Software : PyCharmimport randomfrom bs4 import BeautifulSoupimport requestsdef getheaders():user_list = ["Opera/9.80 (X11; Linux i686; Ubuntu/14.10) Presto/2.12.388 Version/12.16","Opera/9.80 (Windows NT 6.0) Presto/2.12.388 Version/12.14","Mozilla/5.0 (Windows NT 6.0; rv:2.0) Gecko/20100101 Firefox/4.0 Opera 12.14","Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0) Opera 12.14","Opera/12.80 (Windows NT 5.1; U; en) Presto/2.10.289 Version/12.02","Opera/9.80 (Windows NT 6.1; U; es-ES) Presto/2.9.181 Version/12.00","Opera/9.80 (Windows NT 5.1; U; zh-sg) Presto/2.9.181 Version/12.00","Opera/12.0(Windows NT 5.2;U;en)Presto/22.9.168 Version/12.00","Opera/12.0(Windows NT 5.1;U;en)Presto/22.9.168 Version/12.00",]user_agent = random.choice(user_list)headers = {'User-Agent': user_agent}return headersdef weather():url = "http://www.weather.com.cn/weather/101210101.shtml"headers = getheaders()r = requests.get(url, headers=headers)r.encoding = 'utf-8'soup = BeautifulSoup(r.text, "lxml")lines = soup.find('li', class_="sky skyid lv2 on")date = lines.h1.get_text()weather = lines.p.stringlow_temp = lines.find('p', class_="tem").i.get_text()if not lines.find('p', class_="tem").span:high_temp = "未知"else:high_temp = lines.find('p', class_="tem").span.get_text()temp = high_temp + '-' + low_tempwind = lines.find('span', class_="NNW").get('title')windnumber = lines.find('p', class_="win").i.get_text()result = {"日期": date,"天气": weather,"温度": temp,"风向": wind,"风级": windnumber}print(u"日期:{0} \n天气:{1} \n温度:{2} \n风向:{3} \n风级:{4}".format(date, weather, temp, wind, windnumber))return resultif __name__ == "__main__":print('*****程序开始!******')weather()print('*****程序结束!******')
对了,要运行这段代码,需要在pyhonista中下载lxml库。如果不想下载,可以将soup = BeautifulSoup(r.text, "lxml") 改成,效果是一样的。
soup = BeautifulSoup(s, "html.parser")5 总结
然后预告下周的博客主题,基于Pythonista 3开发自己的iphone入口,如下图。好啦,下周见!
~~~下课铃~~~
扫描二维码
与鹏哥一起
学python吧!