爬页面源码

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

一、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

  

 

posted @ 2017-12-04 15:20  Silence&QH  阅读(512)  评论(0编辑  收藏  举报