python初学者代码示例_Selenium 快速入门笔记和代码示例(Python版)

链接

文档链接:

安装 selenium 模块和 Chrome 浏览器驱动

步骤:

安装 Selenium 模块:

pip install selenium

下载浏览器驱动(下载即可,无需安装,使用时要指定它的路径):请参考 https://selenium-python.readthedocs.io/installation.html#drivers,本文使用 Chrome 浏览器,注意下载与浏览器对应的版本。

快速入门示例代码

本示例以爬取本人博客为例(输出格式:“- 日期: [博文标题](博文链接URL)”):

import re

from selenium import webdriver

driver = webdriver.Chrome(r"E:\test\chromedriver_79.0.3945.36_win32\chromedriver.exe") # 这里指定前面下载的浏览器驱动路径

# driver.maximize_window()

url = 'https://www.cnblogs.com/itwhite/'

driver.get(url)

page = 1

while True:

print("Page %d: %s" % (page, url))

articles = driver.find_elements_by_css_selector("a.postTitle2")

desc = driver.find_elements_by_css_selector("div.postDesc")

assert len(articles) == len(desc)

for a, d in zip(articles, desc):

href = a.get_attribute("href")

title = a.get_attribute("innerHTML").strip()

date = re.search("(\d{4}-\d{2}-\d{2})", d.get_attribute("innerHTML")).group(1)

print("- %s: [%s](%s)" % (date, title, href))

next = driver.find_element_by_id("nav_next_page").get_attribute("innerHTML")

url = None

if re.search("href", next):

url = re.search('href="(\S+)"', next).group(1)

else:

next = driver.find_element_by_id("homepage_bottom_pager").get_attribute("innerHTML")

matched = re.search('href="(\S+)">下一页<', next)

if matched:

url = matched.group(1)

if not url:

print("No next page, exit")

break

driver.get(url)

page += 1

driver.close()

输出内容如下(输出的是Markdown格式,已被cnblogs博客系统转换成HTML了):

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/335346.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用例描述

用例名称&#xff1a;简要说明/描述&#xff0c; 优先级&#xff1a; 参与者&#xff1a; 事件流&#xff1a;就是用例执行时&#xff0c;由一序列活动组成的控制流。 基本事件流&#xff1a;对用例中常规、预期路径的描述。 扩展事件流&#xff1a;主要是对一些异常情况、选…

thinkpad笔记本散热风扇_极致的散热体验,ORICO 全铝DIY双风扇笔记本散热垫评测...

电脑的出现&#xff0c;极大的改变了人类的生活。娱乐、办公、游戏、电子竞技等等都需要用到电脑。而电脑也慢慢的在升级着。电脑的体积也由最开始的的占据几间屋子的庞大体积&#xff0c;到后来的台式机、台式一体机、电脑的体积慢慢的变的越来越小。而便携式笔记本电脑的出现…

清除java_如何在Java地毯下有效地清除问题

清除java因为软件错误可能使我们在开发人员面前看起来很糟糕&#xff0c;并导致其他人对我们的想法减少&#xff0c;所以最好避免编写错误&#xff0c;快速识别和修复错误或掩盖我们的错误。 有许多博客文章和文章讨论如何避免错误以及如何识别和修复错误&#xff0c;因此&…

Web产品的交互说明文档应该怎么写?

经常与开发同学聊天&#xff0c;他们说有一个详细的说明文档可以帮助他们更准确的进行工时评估&#xff0c;还可以帮助他们提高工作效率&#xff0c;减少多余的思考时间。因此在这里分享一些制作交互说明文档的经验。 我先说说说交互原型包含哪些部分&#xff1f; 版本说明及更…

linux类似360软件,linux下有什么类似鲁大师查看电脑配置的软

满意答案drqyna2017.05.26采纳率&#xff1a;40% 等级&#xff1a;11已帮助&#xff1a;5455人linux如何查看系统的硬件配置如何在linux系统下查看系统配置&#xff1f;在图形模式下我们可以很方便的利用Linux的图形工具&#xff0c;点击几下就可以查看到Linux系统的的硬件信…

java 编写代码_如果您在2016年编写过Java代码-这是您不容错过的趋势

java 编写代码2016年最有趣的Java相关主题 关于代码&#xff0c;有很多热门话题&#xff0c;而要跟上所有事情&#xff0c;这是一项全职的工作。 如果您想知道如何从谷壳中分离出小麦&#xff0c;我们已经为您完成了工作。 在下面的文章中&#xff0c;我们将介绍2016年最热门…

thinkphp json_原创干货 | Thinkphp序列化合总

听说转发文章会给你带来好运最近Thinkphp几个版本都出了反序列化利用链&#xff0c;这里集结在一起&#xff0c;下面是复现文章&#xff0c;poc会放在最后01Thinkphp5.1.37环境搭建composercreate-project topthink/think5.1.37 v5.1.37poc演示截图调用链单步调试漏洞起点在\th…

linux安java,Linux安装Java

从人类社会的角度看OO&lpar;独家视角&rpar;引言 在OO的工作中,我们一定会涉及到类,抽象类和接口.那么类和抽象类以及接口到底扮演的什么角色? 本文主要是从人类社会的角度阐述类与抽象类以及接口的"社会"关系,从而让我们抛弃书 ...include与require的区别&a…

前端和后端的区别

后端工程师负责服务器端应用程序的编写开发&#xff08;业务逻辑、方法、函数、数据库代码等&#xff09; 前端工程师负责UI的html代码编写和设计&#xff0c;所以前端工程师一般指网页工程师 前端部分是和用户直接交互的&#xff0c;包括前台和后台部分 客户端其实就是属于前端…

笔记本能安装联想智能云教室吗_挑战Jupyter Notebook:云协作、云硬件,上云的Notebook编程环境...

对全世界的 Python 高手而言&#xff0c;Jupyter Notebook 是目前最流行的编程环境&#xff0c;但它也有一些令人难以忍受的缺点。为此&#xff0c;一个位于旧金山的小团队开发了一款名为 Deepnote 的笔记本工具&#xff0c;这是一种云协作、云硬件&#xff0c;上云的 Notebook…

java自动生成类_自动生成优化的Java类专业知识

java自动生成类如果您今年访问过JavaOne&#xff0c;您可能已经参加了我的演讲“如何从数据库生成定制的Java 8代码”。 在那次演讲中&#xff0c;我展示了如何使用Speedment Open Source工具包使用数据库作为域模型来生成各种Java代码。 我们没有时间要考虑的一件事是&#xf…

在Linux中su和sudo区别,Linux中su和sudo的用法和区别

目录sudosudo&#xff1a;暂时切换到超级用户模式以执行超级用户权限&#xff0c;提示输入密码时该密码为当前用户的密码&#xff0c;而不是超级账户的密码。缺点是每次执行超级用户权限都要在命令前加上 sudo &#xff0c;优点是在当前终端再使用 sudo 不要再重复输入密码(只对…

neo4j 添加属性_Neo4j:动态添加属性/设置动态属性

neo4j 添加属性我一直在研究一个具有英国国家铁路时刻表的数据集&#xff0c;它们以文本格式为您提供每列火车的出发和到达时间。 例如&#xff0c;可以这样创建代表停止的节点&#xff1a; CREATE (stop:Stop {arrival: "0802", departure: "0803H"})该…

python 提升效率_@Python 程序员,如何最大化提升编码效率?

作者 | Enoch CK 译者 | 刘畅 整理 | Jane 出品 | Python大本营 【导语】无论你是一位高级的AI工程师还是学生&#xff0c;你都会在工作或学习过程中需要用到 Python。自 1991 年首次发布后&#xff0c;Python 很快就成为了程序员和技术人员最喜欢的语言。作为一种拥有相对简单…

linux tar -xvf命令,linux下tar命令详解

2011-11-28 13:03朋友你好&#xff01;我刚开始搞linux&#xff0c;碰到了很多问题&#xff0c;想问你下&#xff0c;希望能帮我解答下。下面是我的一段shell 程序#&#xff01;/bin/shwhile [ 0 ]doread scoreif [ $score -lt 60 ];thenecho " you must work hard!"…

linux下如何查看主机是否安装了ftp server

常用的发行版的软件包管理系统有Debian系&#xff08;包括Debian&#xff0c;Ubuntu&#xff0c;Mint等&#xff09;和Red Hat系&#xff08;包括RHEL&#xff0c;Fedora&#xff0c;CentOs&#xff0c;Scientific&#xff09;&#xff0c;前者查看是否安装了ftp的命令是&#…

spring boot rabbitmq_Spring Boot+RabbitMQ 实现延迟消息实现完整版,实用!

本文同步Java知音社区&#xff0c;专注于Java作者&#xff1a;Sam哥哥http://blog.csdn.net/linsongbin1/article/details/80178122概述曾经去网易面试的时候&#xff0c;面试官问了我一个问题&#xff0c;说下完订单后&#xff0c;如果用户未支付&#xff0c;需要取消订单&…

jax-rs jax-ws_信守承诺:针对JAX-RS API的基于合同的测试

jax-rs jax-ws自从我们谈论测试和应用有效的TDD做法以来&#xff0c;已经有一段时间了&#xff0c;特别是与REST&#xff08;ful&#xff09; Web服务和API有关的做法。 但是&#xff0c;这个主题永远都不应忘记&#xff0c;特别是在每个人都在做微服务的世界中&#xff0c;无论…

手机流量共享 linux,linux – 通过HTB共享带宽和优先处理实时流量,哪种方案更好?...

我想在我们的互联网线路上添加一些流量管理.在阅读了大量文档之后,我认为HFSC对我来说太复杂了(我不了解所有曲线的东西,我担心我永远不会把它弄好),CBQ不推荐,基本上HTB就是通往适合大多数人.我们的内部网络有三个“段”,我想在这些段之间或多或少地分享带宽(至少在开始时).此…

负载均衡解决方案

某网站随着知名度的提高&#xff0c;用户访问量日渐增多&#xff0c;近段时间以来&#xff0c;由于访问量的激增&#xff0c;服务不可用的情况时有发生。针对这种状况&#xff0c;结合实际情况&#xff0c;设计了一套解决方案。 技术实现 1、负载均衡。2台同样配置的linux服务…