利用page_source抓取网页中的URL,进行链接测试
selenium的page_source方法可以获取到页面源码,下面就把它应用到链接测试中。
# coding:utf-8
__author__ = 'helen'
import re,requests
from selenium import webdriver # 爬取网页资源,并用正则表达式匹配出URL
def get_urlList(target_page):
driver = webdriver.Firefox()
driver.get(target_page)
# 获取网页资源
page = driver.page_source
# 用正则表达式匹配URL集
url_context = re.findall('href=\"(.*?)\"',page,re.S)
url_list = []
for url in url_context:
# 因为url_context中匹配的内容有些不是URL,所以加个if来过滤一下
if 'http'in url:
url_list.append(url)
# 因为网页中的URL基本是正确的,下面我们可以加入一个不存在的URL,检查异常URL的输出
url_list.append('http://www.cnblogs.com/helenMemery/p/35.html')
return url_list # 通过request.get检查URL的返回编码状态,以确认URL返回正常
def test_url(url_list):
try:
for url in url_list:
r = requests.get(url=url)
if r.status_code !=200:
print url
except requests.HTTPError,e:
e.strerror
if __name__ == '__main__':
target_page = 'http://www.cnblogs.com/helenMemery/'
url_list = get_urlList(target_page)
test_url(url_list)
在此感谢悠总的分享:http://www.cnblogs.com/yoyoketang/p/6512604.html
利用page_source抓取网页中的URL,进行链接测试的更多相关文章
- Java 抓取网页中的内容【持续更新】
		
背景:前几天复习Java的时候看到URL类,当时就想写个小程序试试,迫于考试没有动手,今天写了下,感觉还不错 内容1. 抓取网页中的URL 知识点:Java URL+ 正则表达式 import jav ...
 - 利用Crowbar抓取网页异步加载的内容 [Python俱乐部]
		
利用Crowbar抓取网页异步加载的内容 [Python俱乐部] 利用Crowbar抓取网页异步加载的内容 在做 Web 信息提取.数据挖掘的过程中,一个关键步骤就是网页源代码的获取.但是出于各种原因 ...
 - php抓取网页中的内容
		
以下就是几种常用的用php抓取网页中的内容的方法.1.file_get_contentsPHP代码代码如下:>>>>>>>>>>>&g ...
 - Python抓取页面中超链接(URL)的三中方法比较(HTMLParser、pyquery、正则表达式) <转>
		
Python抓取页面中超链接(URL)的3中方法比较(HTMLParser.pyquery.正则表达式) HTMLParser版: #!/usr/bin/python # -*- coding: UT ...
 - 浅谈如何使用python抓取网页中的动态数据
		
我们经常会发现网页中的许多数据并不是写死在HTML中的,而是通过js动态载入的.所以也就引出了什么是动态数据的概念, 动态数据在这里指的是网页中由Javascript动态生成的页面内容,是在页面加载到 ...
 - Python抓取网页中的图片到本地
		
今天在网上找了个从网页中通过图片URL,抓取图片并保存到本地的例子: #!/usr/bin/env python # -*- coding:utf- -*- # Author: xixihuang # ...
 - 用正则表达式抓取网页中的ul 和 li标签中最终的值!
		
获取你要抓取的页面 const string URL = "http://www.hn3ddf.gov.cn/price/GetList.html?pageno=1& ...
 - python抓取网页中图片并保存到本地
		
#-*-coding:utf-8-*- import os import uuid import urllib2 import cookielib '''获取文件后缀名''' def get_file ...
 - python 解决抓取网页中的中文显示乱码问题
		
关于爬虫乱码有很多各式各样的问题,这里不仅是中文乱码,编码转换.还包括一些如日文.韩文 .俄文.藏文之类的乱码处理,因为解决方式是一致的,故在此统一说明. 网络爬虫出现乱码的原因 源网页编码和爬取下来 ...
 
随机推荐
- 【NLP】新词发现
			
http://www.csdn.net/article/2013-05-08/2815186 http://blog.csdn.net/yuyu2223/article/details/7725705 ...
 - 响应式布局中为什么要使用em设置字体大小而不用px
			
px像素(Pixel).相对长度单位.像素px是相对于不同设备显示器屏幕分辨率(pad/phone/pc)而言的.(引自CSS2.0手册) 1em指的是一个字体的大小,它会继承父级元素的字体大小,因此 ...
 - JS图片加载时获取图片宽高信息
			
; var img = new Image(); img.src = node.find("img[class='img1_1']").attr("src"); ...
 - std::ostringstream
			
ostringstream是C++的一个字符集操作模板类,定义在sstream.h头文件中.ostringstream类通常用于执行C风格的串流的输出操作,格式化字符串,避免申请大量的缓冲区,替代sp ...
 - c#基础   第一讲
			
using System;using System.Collections.Generic; using System.Text; namespace MYTest{ class Program { ...
 - Swift 实现单例模式Singleton pattern的三种方法
			
转自:点击打开链接 From my short experience with Swift there are three approaches to implement the Singleton ...
 - iOS 7 Master-Detail模板不好用
			
将storyboard->use size classes disabled
 - 160517、nginx负载均衡详解
			
1:什么是负载均衡 负载平衡(Load balancing)是一种计算机网络技术,用来在多个计算机(计算机集群).网络连接.CPU.磁盘驱动器或其他资源中分配负载,以达到最佳化资源使用.最大化吞吐率. ...
 - 160418、ztree权限菜单
			
1.页面中引用ztree的css和js(大家自行下载ztree) <link rel="stylesheet" href="${ctx}/resources/js/ ...
 - Vue.js_构造器及其实例化概念
			
Vue构造器 1.Vue.js是一个构造函数,编程中称之为构造器 2.每一个new Vue() 都是一个Vue构造函数的实例,这个过程叫做实例化 3.构造函数需要将其实例化后才会启用 var vm = ...