Python打印scrapy蜘蛛抓取树结构的方法


Posted in Python onApril 08, 2015

本文实例讲述了Python打印scrapy蜘蛛抓取树结构的方法。分享给大家供大家参考。具体如下:

通过下面这段代码可以一目了然的知道scrapy的抓取页面结构,调用也非常简单

#!/usr/bin/env python
import fileinput, re
from collections import defaultdict
def print_urls(allurls, referer, indent=0):
  urls = allurls[referer]
  for url in urls:
    print ' '*indent + referer
    if url in allurls:
      print_urls(allurls, url, indent+2)
def main():
  log_re = re.compile(r'<GET (.*?)> \(referer: (.*?)\)')
  allurls = defaultdict(list)
  for l in fileinput.input():
    m = log_re.search(l)
    if m:
      url, ref = m.groups()
      allurls[ref] += [url]
  print_urls(allurls, 'None')
main()

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
利用PyInstaller将python程序.py转为.exe的方法详解
May 03 Python
Python中常见的异常总结
Feb 20 Python
详谈在flask中使用jsonify和json.dumps的区别
Mar 26 Python
在VS Code上搭建Python开发环境的方法
Apr 06 Python
Python 十六进制整数与ASCii编码字符串相互转换方法
Jul 09 Python
matplotlib实现热成像图colorbar和极坐标图的方法
Dec 13 Python
Python实现数据结构线性链表(单链表)算法示例
May 04 Python
django写用户登录判定并跳转制定页面的实例
Aug 21 Python
Python argparse模块使用方法解析
Feb 20 Python
使用python实现飞机大战游戏
Mar 23 Python
selenium如何定位span元素的实现
Jan 13 Python
pytorch中的model=model.to(device)使用说明
May 24 Python
使用IPython来操作Docker容器的入门指引
Apr 08 #Python
仅用50行Python代码实现一个简单的代理服务器
Apr 08 #Python
用Python实现一个简单的能够发送带附件的邮件程序的教程
Apr 08 #Python
Python 创建子进程模块subprocess详解
Apr 08 #Python
Python中使用gzip模块压缩文件的简单教程
Apr 08 #Python
Python使用scrapy抓取网站sitemap信息的方法
Apr 08 #Python
Python中用format函数格式化字符串的用法
Apr 08 #Python
You might like
ini_set的用法介绍
2014/01/07 PHP
百度工程师讲PHP函数的实现原理及性能分析(三)
2015/05/13 PHP
php计划任务之验证是否有多个进程调用同一个job的方法
2015/12/07 PHP
PHP的swoole扩展安装方法详细教程
2016/05/18 PHP
PHP与SQL语句常用大全
2016/12/10 PHP
php+ajax实现仿百度查询下拉内容功能示例
2017/10/20 PHP
js 方法实现返回多个数据的代码
2009/04/30 Javascript
JavaScript setTimeout和setInterval的使用方法 说明
2010/03/25 Javascript
一个简单的JavaScript数据缓存系统实现代码
2010/10/24 Javascript
javascript实现树形菜单的方法
2015/07/17 Javascript
郁闷!ionic中获取ng-model绑定的值为undefined如何解决
2016/08/27 Javascript
js html css实现复选框全选与反选
2016/10/09 Javascript
简单好用的nodejs 爬虫框架分享
2017/03/26 NodeJs
JavaScript设计模式之工厂模式和抽象工厂模式定义与用法分析
2018/07/26 Javascript
JS解析后台返回的JSON格式数据实例
2018/08/06 Javascript
node.js环境搭建图文详解
2018/09/19 Javascript
js中获取URL参数的共用方法getRequest()方法实例详解
2018/10/24 Javascript
关于微信小程序获取小程序码并接受buffer流保存为图片的方法
2019/06/07 Javascript
微信小程序如何获取群聊的openGid以及名称详解
2019/07/17 Javascript
在Windows8上的搭建Python和Django环境
2014/07/03 Python
Python中无限元素列表的实现方法
2014/08/18 Python
Numpy 改变数组维度的几种方法小结
2018/08/02 Python
详解pandas的外部数据导入与常用方法
2019/05/01 Python
如何更优雅地写python代码
2019/07/02 Python
Mac在python3环境下安装virtualwrapper遇到的问题及解决方法
2019/07/09 Python
Pycharm内置终端及远程SSH工具的使用教程图文详解
2020/03/19 Python
解决python Jupyter不能导入外部包问题
2020/04/15 Python
Python爬虫实现vip电影下载的示例代码
2020/04/20 Python
python tkiner实现 一个小小的图片翻页功能的示例代码
2020/06/24 Python
幼儿园大班教学反思
2014/02/10 职场文书
寄语学生的话
2014/04/10 职场文书
安全隐患整改报告
2014/11/06 职场文书
七年级写作指导之游记作文
2019/10/07 职场文书
Pytorch 实现变量类型转换
2021/05/17 Python
CSS的class与id常用的命名规则
2021/05/18 HTML / CSS
使用scrapy实现增量式爬取方式
2022/06/21 Python