当前位置: 首页 > news >正文

Selenium2+python自动化37-爬页面源码(page_source)

前言

有时候通过元素的属性的查找页面上的某个元素,可能不太好找,这时候可以从源码中爬出想要的信息。selenium的page_source方法可以获取到页面源码。

selenium的page_source方法很少有人用到,小编最近看api不小心发现这个方法,于是突发奇想,这里结合python的re模块用正则表达式爬出页面上所有的url地址,可以批量请求页面url地址,看是否存在404等异常

一、page_source

1.selenium的page_source方法可以直接返回页面源码

2.重新赋值后打印出来

二、re非贪婪模式

1.这里需导入re模块

2.用re的正则匹配:非贪婪模式

3.findall方法返回的是一个list集合

4.匹配出来之后发现有一些不是url链接,可以删选下

三、删选url地址出来

1.加个if语句判断,‘http’在url里面说明是正常的url地址了

2.把所有的url地址放到一个集合,就是我们想要的结果啦

四、参考代码

# coding:utf-8
from selenium import webdriver
import re
driver = webdriver.Firefox()
driver.get("http://www.cnblogs.com/yoyoketang/")
page = driver.page_source
# print page
# "非贪婪匹配,re.S('.'匹配字符,包括换行符)"
url_list = re.findall('href=\"(.*?)\"', page, re.S)
url_all = []
for url in url_list:
    if "http" in url:
        print url
        url_all.append(url)
# 最终的url集合
print url_all

学习过程中有遇到疑问的,可以加selenium(python+java) QQ群交流:646645429

selenium+python高级教程》已出书:selenium webdriver基于Python源码案例

(购买此书送对应PDF版本)

 

 

 

相关文章:

  • reverse-integer
  • AC日记——传纸条 洛谷 P1006
  • mongodb 聚合操作
  • P1396 营救
  • 使用Gradle第一次构建Java程序
  • 深入认识CSS的行内元素
  • PHP Smarty template for website
  • 网络中数据传输过程的分析
  • BIO、NIO和AIO的区别(简明版)
  • JavaScript-基础入门.0008.JavaScript作用范围
  • 《微信公众平台开发》图书介绍
  • PE分析
  • 判断用户名是否正确
  • loadrunner中Windows Resource没有数据或不可用
  • vue-todolist-example学习
  • 【JavaScript】通过闭包创建具有私有属性的实例对象
  • 10个确保微服务与容器安全的最佳实践
  • Apache Zeppelin在Apache Trafodion上的可视化
  • CSS实用技巧
  • java多线程
  • java概述
  • Leetcode 27 Remove Element
  • Odoo domain写法及运用
  • Phpstorm怎样批量删除空行?
  • Protobuf3语言指南
  • spring + angular 实现导出excel
  • SpriteKit 技巧之添加背景图片
  • TCP拥塞控制
  • webpack4 一点通
  • 分布式事物理论与实践
  • 理解IaaS, PaaS, SaaS等云模型 (Cloud Models)
  • 深度学习中的信息论知识详解
  • 网页视频流m3u8/ts视频下载
  • 小程序button引导用户授权
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • 移动端解决方案学习记录
  • 策略 : 一文教你成为人工智能(AI)领域专家
  • #Z2294. 打印树的直径
  • #数学建模# 线性规划问题的Matlab求解
  • #我与Java虚拟机的故事#连载13:有这本书就够了
  • (webRTC、RecordRTC):navigator.mediaDevices undefined
  • (阿里云万网)-域名注册购买实名流程
  • (附源码)python房屋租赁管理系统 毕业设计 745613
  • (附源码)计算机毕业设计SSM保险客户管理系统
  • (附源码)计算机毕业设计ssm基于Internet快递柜管理系统
  • (附源码)计算机毕业设计SSM疫情社区管理系统
  • (四)docker:为mysql和java jar运行环境创建同一网络,容器互联
  • (原創) X61用戶,小心你的上蓋!! (NB) (ThinkPad) (X61)
  • (转贴)用VML开发工作流设计器 UCML.NET工作流管理系统
  • .net 4.0 A potentially dangerous Request.Form value was detected from the client 的解决方案
  • .NET 中让 Task 支持带超时的异步等待
  • .net(C#)中String.Format如何使用
  • .Net程序帮助文档制作
  • .net获取当前url各种属性(文件名、参数、域名 等)的方法
  • .NET与 java通用的3DES加密解密方法