网站首页 > 博客文章 正文
经常有人说我应该学一门语言,比如 Python 之类,但是却不知道如何入门。这个时候很多人会推荐学各种 web 框架,scrapy 爬虫之类,门槛虽然不高,但是对于新人来说可能就半途而废了。大家需要的或许是通过编程来解决平时遇到的问题,将工作自动化。
本文将通过简单的例子来说下 Python 如何提高效率,减少重复劳动的。
废话不多说,进入正题,首先安装 Python 和 pip, 教程网上很多,比如 廖雪峰的官方网站。 pip 可以理解为安装第三方库的软件包,另外教程里面没有特别说明以 Python2.7 版本为例子。
0x01 selenium 自动登录京东
0x02 SimpleHTTPServer 文件共享
0x03 豆瓣自动顶贴
0x04 摩尔斯密码
0x05 批量发邮件
0x06 自如爬虫
------------------------------------
0x01 selenium 自动登录京东
还记得前段时间阿里月饼事件,当事人因为用 js 脚本刷月饼被开除。直接编写 js 代码可能不够直观,所以本文我们用 selenium 来模拟浏览器执行自动化脚本,同样可以达到效果,比如自动登录京东。
- 安装 selenium
pip install selenium
- 打开京东登录页,用 chrome devtools 查看元素, 我们需要做的步骤就是输入用户名和密码,点击登录按钮。
name = '****' password = '****' # 使用火狐作为默认打开的浏览器,确认已经安装火狐 driver = webdriver.Firefox() driver.get("https://passport.jd.com/new/login.aspx") elem_account = driver.find_element_by_name("loginname") elem_password = driver.find_element_by_name("nloginpwd") elem_account.clear() elem_password.clear() elem_account.send_keys(name) elem_password.send_keys(password) driver.find_element_by_id("loginsubmit").click()
- 只需要更改上面的用户名和密码就能运行脚本, 代码见 github其实 selenium 可以用来秒杀,抢手机,抢火车票。有验证码的时候,自动识别可能有误差,可以手工输入或者一些其他方式。。。
0x02 SimpleHTTPServer 文件共享
有时候你会想要跟一个局域网的人共享文件,如果文件太多,那么用微信一个一个传可能不太方便,这个时候就祭出 SimpleHTTPServer 这个杀器,一行代码都不用写,先 cd 到你需要共享的目录
$ cd /home/share/images
然后直接命令行输入
python -m SimpleHTTPServer
接下来用 ifconfig (windows 下是 ipconfig)查看你的内网 ip, 假设是 192.168.0.11, 在浏览器输入http://192.168.0.11:8000 即可看到
0x03 豆瓣自动顶贴
程序员喜欢是用代码解放双手,能懒则懒。举个例子,你在豆瓣上发布了一个帖子,希望过段时间就回复下来置顶,那么一个是手工回复,当然也可以写脚本来做
- 首先登录豆瓣,进入你需要回复的帖子页面,打开 chrome dev_tools, 当点击回复帖子的时候,查看 NetWork, 可以看到如下图
这里面最重要的是 Cookie 这个东西,他记录了你的登录状态,所以用脚本其实只需要发送带这个 Cookie 的请求就行。
- 三行代码就能搞定
# rv_comment 为你需要回复的字段 payloads = {'ck': 'n1iQ', 'rv_comment': 'up', 'start': '0', 'submit_btn': u'加上去'} # Cookie 自己去填 headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36', 'Cookie': '******'} requests.post('https://www.douban.com/group/topic/93461964/add_comment', data=payloads, headers=headers)
- 这种方式去刷帖肯定是有风险的,所以请大家谨慎使用
0x04 摩尔斯密码
这是一个很无聊的需求,哈哈,如果你想通过摩尔斯密码聊天的话, 或者跟暗恋的人表白
安装依赖
pip install morse-talk
- 将文字编码成摩尔斯密码
import morse_talk as mtalk content = 'i love you' mo_content = mtalk.encode(content) print mo_content
- 输出
.. .-.. --- ...- . -.-- --- ..-
解摩尔斯码
import morse_talk as mtalk mo_content = '-.-- --- ..-' content = mtalk.decode(mo_content) print content
输出
'YOU'
0x05 批量发邮件
如果有一天,老板过来给你一个很大的邮箱列表,要你给每个人发邮件,你该如何去做,最简单的就是写一个 python 程序
import smtplib from email.mime.text import MIMEText receiver = ['***', '***'] # 设置邮件接收人,这里是我的公司邮箱 host = 'smtp.163.com' # 设置发件服务器地址 port = 25 # 设置发件服务器端口号 sender = '****' # 设置发件邮箱 pwd = '*****' # 设置发件邮箱的密码 body = 'hello' # 设置邮件正文,这里是支持HTML的 msg = MIMEText(body, 'html') # 设置正文为符合邮件格式的HTML内容 msg['subject'] = 'Hello world' # 设置邮件标题 msg['from'] = sender # 设置发送人 msg['to'] = ';'.join(receiver) # 设置接收人 s = smtplib.SMTP(host, port) s.login(sender, pwd) # 登陆邮箱 s.sendmail(sender, receiver, msg.as_string()) # 发送邮件
不过由于每个垃圾邮件的屏蔽机制,很可能批量发送会被 spam 掉,所以可以使用 sendcloud 专门的发邮件服务接口。
0x06 自如爬虫
如果你想入门数据分析,但是苦于没有数据,那就看下文如何用 10 行代码写一个最简单的自如房源爬虫
首先我们通过分析看到自如手机版有个 url 如下: http://m.ziroom.com/list/ajax-get-data 能够返回 json 数据
这个基本上包括了租房的一些重要信息,价格,小区,地铁沿线,朝向
所以要做的就是遍历这个地址得到所有的 json 数据
下面是代码:
import requests import time with open('ziroom.txt', 'a+') as f: for i in xrange(10, 9001, 10): payload = {'step': i} res = requests.post('http://m.ziroom.com/list/ajax-get-data', data=payload) for i in res.json()['data']: print i['id'] f.write(str(i)+'\n') time.sleep(3)
欢迎关注 微信公众号「程序化思维」,用最简单的方式写程序
猜你喜欢
- 2024-11-11 投入机器学习的怀抱?先学Python吧
- 2024-11-11 Python从放弃到入门:公众号历史文章爬取为例谈快速学习技能
- 2024-11-11 python爬虫学习(二):python基础(python爬虫零基础)
- 2024-11-11 Python基础知识点整理(python基础重点)
- 2024-11-11 学习Python的第38天,我决定做一匹吃回头草的好马
- 2024-11-11 0基础小白该如何学Python?这些方法你需要了解
- 2024-11-11 0基础小白如何学接口测试?一文讲解接口自动化之python案例脚本
- 2024-11-11 不会写代码!?自学成为年薪30w+数据分析师
- 2024-11-11 数据分析入门必读经典《利用Python进行数据分析》pdf免费分享
- 2024-11-11 非科班出身自学Python,我有4种实用方法告诉你!
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)