从顶层域获取所有的标签页

一、实验说明

1. 环境登录

无需密码自动登录,系统用户名shiyanlou

2. 环境介绍

本实验环境采用带桌面的Ubuntu Linux环境,实验中会用到桌面上的程序:

  1. Xfce 终端(LXTerminal): Linux命令行终端,打开后会进入 Shell 环境,可以使用Linux命令
  2. Firefox:浏览器,可以用在需要前端界面的课程里,只需要打开环境里写的HTML/JS页面即可
  3. GVim:非常好用的编辑器,最简单的用法可以参考课程Vim编辑器

3. 环境使用

使用GVim编辑器输入实验所需的代码及文件,使用终端运行所需命令进行操作。

实验报告可以在个人主页中查看,其中含有每次实验的截图及笔记,以及每次实验的有效学习时间(指的是在实验桌面内操作的时间,如果没有操作,系统会记录为发呆时间)。这些都是您学习的真实性证明。

实验楼虚拟机,自带了python2.X和python3.X版本,无需安装 该实验建议使用 python2.7 版本, 也就是默认版本

二、课程介绍

这一节是最为本次爬虫课程--基础课的收尾工作

美女标签 标签匹配规则

三、实验代码

#!/usr/bin/env python
# 上面这一行称为 shebang,它能找到当前环境的python的执行环境
#文件名:meizi_tag
import re
import urllib2
import meizi_series_nextpage

def loadurl(url):
    try:
        conn = urllib2.urlopen(url,data=None,timeout=5)
        html = conn.read()
        return html
    except Exception:
        return ''

#下面是主函数
def meizi(url,path):
    #见上面的html代码截图,对比无误
    reTagContent = '<div.*?class="tags">.*?<span>(.*?)</span>'
    reTagUrl = '<a.*?href="(.*?)".*?>'
    print 'start open meiziwang'
    html = ''
    while True:
        html = loadurl(url)
        if html == '':
            print 'load', url,'error'
            continue
        else:
            break
    tagContent = re.findall(reTagContent, html, re.S)
    taglists = re.findall(reTagUrl, tagContent[0], re.S)
    #你仔细看会发现,链接又重,而且匹配、添加到列表,重复依旧在,所以啦,需要去重和排序,
    taglists = sorted(list(set(taglists)))
    for url in taglists:
        meizi_series_nextpage.nextpage(url,path)

meizi('http://www.meizitu.com','/home/shiyanlou/Desktop/meizi')
print 'Spider Stop'

实验楼环境截图,仅仅运行了本节代码,没有调用上节代码实验楼环境截图-高层

高-中-低层,三层代码连起来运行,实验楼环境截图【介于是虚拟环境,我只测试第一个标签,第一个页面,第一个套图里的全部图片】基础爬虫-测试截图

四、课程基础总结

基础课程的总结,如下: - 此次基础爬虫,一共用到了三个模板os、urllib2、re - 基础的四个代码文件,代码总行数不超过200 - 大多数代码主要处理问题:网络问题、path问题、url链接问题 - 文件名,我给的没有后缀,需要加.py - 你运行起来,查看下网络利用率(系统自带监视器),是不是很低?因为还没进行优化 - ...

后续实验会完成一个更高效的爬虫。

版权声明:允许转载,转载请注明出处 —— 《基于Python的网络爬虫》: 从顶层域获取所有的标签页

Copyright @2016-2017 | 赣ICP备16003025号