python中年大叔学编程_中年大叔学编程-我用Python保存金山词霸每日一句
其实金山词霸每日一句已经出来很久了,但是我都不知道,今天去金山词霸的官网看了看,感觉这些句子都挺不错的,所以就想着把它们给存下来。
我大概看了一下他的页面,请求的敏感数据是加密的,页面是基于请求的数据动态渲染的,去解析结构的话,会比较花时间,这里我就使用
selenium
来简化操作,它可以模拟浏览器,直接把数据渲染成最终的展示出来的页面,然后,直接解析最终的html就可以得到最终的结果。
安装selenium
pip install selenium
因为是这里是用的google浏览器版本 83.0.4103.97(正式版本) (32 位)
,所以这里我们需要去http://npm.taobao.org/mirrors/chromedriver
下载对应的chromedriver
驱动,然后解压到Python的安装目录。如果不指定自己的安装路径,可以在
cmd中执行where python
命令来查找
C:\Users\lenovo>where pythonD:\Programs\Python\Python38-32\python.exeC:\Users\lenovo\AppData\Local\Microsoft\WindowsApps\python.exe
把我们下载的
chromedriver
复制到对应的目录,我这里是
D:\Programs\Python\Python38-32\
使用的selenium
那么这里先简单的写几句代码
from selenium import webdriverbrowser=webdriver.Chrome()browser.get('http://news.iciba.com/views/dailysentence/daily.html#!/detail/title/2020-06-05')print(browser.page_source)
我们运行python demo.py就会看到这样的效果
这里我需要它的图片、英文和汉译,我们来看看它的网页元素结构
它的英文和汉译分别在detail-content-en和detail-content-zh两个class节点中,这里我们需要借助另外一个插件来解析selenium获取到的html,它就是PyQuery,先执行pip install PyQuery
把它安装下来,现在我们来开始获取他的英文内容、汉译内容以及图片地址
from selenium import webdriver
from pyquery import PyQuery as pq
from time import sleep
browser = webdriver.Chrome()browser.get( 'http://news.iciba.com/views/dailysentence/daily.html#!/detail/title/2020-06-05') # 访问页面sleep(5) # 等待5秒钟html = browser.page_source # 获取页面渲染好的htmlpage = pq(html) # 装载到pyquery中en = page(".detail-content-en") # 查找英文节点zh = page(".detail-content-zh") # 查找中文节点img = page(".detail-banner-img") # 查找图片print(en.text())print(zh.text())print(img.attr('src'))browser.quit() # 退出浏览器
现在,我们来把每日一句的内容保存下来
from selenium import webdriverfrom pyquery import PyQuery as pqimport timeimport requestscur_date = time.strftime("%Y-%m-%d", time.localtime(time.time())) # 取当前日期browser = webdriver.Chrome()browser.get( 'http://news.iciba.com/views/dailysentence/daily.html#!/detail/title/'+cur_date) # 访问页面time.sleep(5) # 等待5秒钟html = browser.page_source # 获取页面渲染好的htmlpage = pq(html) # 装载到pyquery中en = page(".detail-content-en") # 查找英文节点zh = page(".detail-content-zh") # 查找中文节点img = page(".detail-banner-img") # 查找图片with open('D:/ciba/'+cur_date+'.txt', 'wb') as file: # 将内容写入txt文本 file.write(en.text().encode()) file.write("\n".encode()) file.write(zh.text().encode())img_url = img.attr('src')r = requests.get(img_url)with open('D:/ciba/'+cur_date+'.jpg', 'wb')as f: # 将图片保存成文件 f.write(r.content)browser.quit() # 退出浏览器
现在,我们执行python demo.py,就可以得到这样的效果
是不是感觉有点意思?
我只是记录我的学习过程,由于书读的少,可能很多地方表述或者是理解得不对,请轻喷并指正。
python中年大叔学编程_中年大叔学编程-我用Python保存金山词霸每日一句相关推荐
- ai人工智能编程_从人工智能动态编程:Q学习
ai人工智能编程 A failure is not always a mistake, it may simply be the best one can do under the circumsta ...
- Python爬取金山词霸每日一句,存储到MySQL中
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018/7/3 20:25 # @Author : baoshan # @Site : ...
- python中年大叔学编程_中年大叔学编程-Python环境安装
在IT界有一句话是:学编程就是先学程序语法,然后学会百度.这话很真实,我想大部分程序员都是这样的情况,当然也包括我. 这里我来一步一步分享,如何快速开始编程. Python 环境下载.安装 首先,我们 ...
- 负基础学python编程_【数据科学系统学习】Python # 编程基础[二]
在上一篇中我们讲到了函数,如果你想在所编写的别的程序中重用一些函数的话,应该怎么办?正如你可能想象到的那样,答案是模块(Modules).我们这一篇就从模块说起. 模块 为了编写可维护的代码,我们把很 ...
- 小白学习python好还是java好_小白应该学Python还是Java?
Java和Python两门语言都是目前非常热门的语言,可谓北乔峰南慕容,二者不分上下,棋逢对手.但是对于初学者来说,非常困惑,因为时间和精力有限,上手必须要先学一门,到底选那个好呢,今天3分钟带你透彻 ...
- python能开发什么产品_三周学 Python ?不,三周做个产品
我的同事在看到毫无开发经验的我用三周时间,不但从零基础用上了 Python,还做出了一个客户关系管理系统,强烈邀请我分享经验.惶恐,因为我并没有出色的智商,也没有觉得三周学 Python 是一个体现自 ...
- python后端开发学什么_零基础学Python,这是阿里Python8年开发经验写给你的学习路线图...
今天给大家分享一位前辈整理的一个Python web学习路线.这位前辈由于有编程基础,所以采用了自学Python的方式.学完后主要做后端开发.希望对你有所启发. 整理的一个 python web 学习 ...
- python搜网课原理_如何看待风变编程的 Python 网课?
先说下个人情况,大学生,有编程基础. 当时是因为有些来年的课程据说会用到Python,所以想要提前学下(目的是数据可视化分析和数据挖掘).因为当时校园bbs上面看到过"风变编程", ...
- python初中可以学吗_初中学历零基础想转行Python,能否学会?Python难吗?
肯定的回答您:这个是一个技术工种学历不是很重要,完全能学会 其实,很多个程序员都是从不会到会,每种知识也是从基础到复杂,大家都是从零基础开始的,有的学员英语和数字基础也很差,从一点都不了解编码到现在非 ...
最新文章
- Info:Memory module [DIMM] needs attention: Single-bit warning error rate exceeded, Single-bit fai...
- 模拟上帝之手的对抗博弈——GAN背后的数学原理
- abap mm后台表_【中后台应用】从表单抽象到表单中台
- Java多线程学习八:线程池常用的阻塞队列
- C++之函数模板探究
- 仅此一文让你明白ASP.NET MVC原理
- 常见mysql优化 面试题
- 在Arduino和ESP32-s2环境下,测试WiFi Fine Time Measurement (FTM) Round Trip Time (RTT) 的定位和测距
- AI算法工程师必知必会的mysql语法
- k8s部署微服务项目
- 国外邮箱安全性排名,国外邮箱哪个安全好用?
- 汇编语言(王爽)-实验
- 基于visual c++之windows核心编程代码分析(47)实现交换网络的QQ号嗅探
- Eclipse Shell for Plugin
- 12.24魔术VS凯尔特人在线直播视频
- 怎么样用C语言编程自动摇号,C语言摇号程序的代码?
- Access 窗体实现用户名及密码验证登录
- 商务礼仪类毕业论文文献有哪些?
- 值得一读的品牌类好书
- JavaScript技术(js)