其实金山词霸每日一句已经出来很久了,但是我都不知道,今天去金山词霸的官网看了看,感觉这些句子都挺不错的,所以就想着把它们给存下来。

我大概看了一下他的页面,请求的敏感数据是加密的,页面是基于请求的数据动态渲染的,去解析结构的话,会比较花时间,这里我就使用

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保存金山词霸每日一句相关推荐

  1. ai人工智能编程_从人工智能动态编程:Q学习

    ai人工智能编程 A failure is not always a mistake, it may simply be the best one can do under the circumsta ...

  2. Python爬取金山词霸每日一句,存储到MySQL中

    #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018/7/3 20:25 # @Author : baoshan # @Site : ...

  3. python中年大叔学编程_中年大叔学编程-Python环境安装

    在IT界有一句话是:学编程就是先学程序语法,然后学会百度.这话很真实,我想大部分程序员都是这样的情况,当然也包括我. 这里我来一步一步分享,如何快速开始编程. Python 环境下载.安装 首先,我们 ...

  4. 负基础学python编程_【数据科学系统学习】Python # 编程基础[二]

    在上一篇中我们讲到了函数,如果你想在所编写的别的程序中重用一些函数的话,应该怎么办?正如你可能想象到的那样,答案是模块(Modules).我们这一篇就从模块说起. 模块 为了编写可维护的代码,我们把很 ...

  5. 小白学习python好还是java好_小白应该学Python还是Java?

    Java和Python两门语言都是目前非常热门的语言,可谓北乔峰南慕容,二者不分上下,棋逢对手.但是对于初学者来说,非常困惑,因为时间和精力有限,上手必须要先学一门,到底选那个好呢,今天3分钟带你透彻 ...

  6. python能开发什么产品_三周学 Python ?不,三周做个产品

    我的同事在看到毫无开发经验的我用三周时间,不但从零基础用上了 Python,还做出了一个客户关系管理系统,强烈邀请我分享经验.惶恐,因为我并没有出色的智商,也没有觉得三周学 Python 是一个体现自 ...

  7. python后端开发学什么_零基础学Python,这是阿里Python8年开发经验写给你的学习路线图...

    今天给大家分享一位前辈整理的一个Python web学习路线.这位前辈由于有编程基础,所以采用了自学Python的方式.学完后主要做后端开发.希望对你有所启发. 整理的一个 python web 学习 ...

  8. python搜网课原理_如何看待风变编程的 Python 网课?

    先说下个人情况,大学生,有编程基础. 当时是因为有些来年的课程据说会用到Python,所以想要提前学下(目的是数据可视化分析和数据挖掘).因为当时校园bbs上面看到过"风变编程", ...

  9. python初中可以学吗_初中学历零基础想转行Python,能否学会?Python难吗?

    肯定的回答您:这个是一个技术工种学历不是很重要,完全能学会 其实,很多个程序员都是从不会到会,每种知识也是从基础到复杂,大家都是从零基础开始的,有的学员英语和数字基础也很差,从一点都不了解编码到现在非 ...

最新文章

  1. Info:Memory module [DIMM] needs attention: Single-bit warning error rate exceeded, Single-bit fai...
  2. 模拟上帝之手的对抗博弈——GAN背后的数学原理
  3. abap mm后台表_【中后台应用】从表单抽象到表单中台
  4. Java多线程学习八:线程池常用的阻塞队列
  5. C++之函数模板探究
  6. 仅此一文让你明白ASP.NET MVC原理
  7. 常见mysql优化 面试题
  8. 在Arduino和ESP32-s2环境下,测试WiFi Fine Time Measurement (FTM) Round Trip Time (RTT) 的定位和测距
  9. AI算法工程师必知必会的mysql语法
  10. k8s部署微服务项目
  11. 国外邮箱安全性排名,国外邮箱哪个安全好用?
  12. 汇编语言(王爽)-实验
  13. 基于visual c++之windows核心编程代码分析(47)实现交换网络的QQ号嗅探
  14. Eclipse Shell for Plugin
  15. 12.24魔术VS凯尔特人在线直播视频
  16. 怎么样用C语言编程自动摇号,C语言摇号程序的代码?
  17. Access 窗体实现用户名及密码验证登录
  18. 商务礼仪类毕业论文文献有哪些?
  19. 值得一读的品牌类好书
  20. JavaScript技术(js)

热门文章

  1. Vue知识(一)Vue基础语法
  2. 阿里云全站加速 DCDN 升级
  3. Planned Contrasts and Post hoc Tests 多重检验校正
  4. 关于一阶线性电路的零输入响应
  5. 服务器怎么用固态盘安装系统,服务器使用固态盘安装
  6. swift跳转到故事版的界面
  7. CTFHub-时间盲注-wp #(自制脚本做法)
  8. Matlab中的正态分布概率函数
  9. 正则表达式和文本处理工具
  10. 转置卷积中的棋盘效应