高层:从顶层域获取所有的标签页
一、实验说明
1. 环境登录
无需密码自动登录,系统用户名shiyanlou
2. 环境介绍
本实验环境采用带桌面的Ubuntu Linux环境,实验中会用到桌面上的程序:
- Xfce 终端(LXTerminal): Linux命令行终端,打开后会进入 Shell 环境,可以使用Linux命令
- Firefox:浏览器,可以用在需要前端界面的课程里,只需要打开环境里写的HTML/JS页面即可
- 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
- 你运行起来,查看下网络利用率(系统自带监视器),是不是很低?因为还没进行优化
- ...
后续实验会完成一个更高效的爬虫。
Python3教程、项目网站--传送门