Python打印scrapy蜘蛛抓取树结构的方法
本文实例讲述了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程序设计有所帮助。
相关推荐
-
一个很简单的jquery+xml+ajax的无刷新树结构(无css,后台是c#)
复制代码 代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data.Linq; using System.Xml; using System.Xml.Linq; namespace WebApplication3 { public
-
Python实现二叉树结构与进行二叉树遍历的方法详解
二叉树的建立 使用类的形式定义二叉树,可读性更好 class BinaryTree: def __init__(self, root): self.key = root self.left_child = None self.right_child = None def insert_left(self, new_node): if self.left_child == None: self.left_child = BinaryTree(new_node) else: t = BinaryTr
-
mybatis实现读取树结构数据实例代码
mybatis实现读取树结构数据详细介绍如下所示: 表结构 CREATE TABLE `lscrm_function_privilege` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '编号', `create_id` varchar(30) NOT NULL DEFAULT 'sys', `update_id` varchar(30) NOT NULL DEFAULT 'sys', `create_time` timestam
-
java根据数据库表内容生产树结构json数据的方法
1.利用场景 组织机构树,通常会有组织机构表,其中有code(代码),pcode(上级代码),name(组织名称)等字段 2.构造数据(以下数据并不是组织机构数据,而纯属本人胡编乱造的数据) List<Tree<Test>> trees = new ArrayList<Tree<Test>>(); tests.add(new Test("0", "", "关于本人")); tests.add(new
-
asp下生成目录树结构的类
关于生成目录树结构的类 本程序有两文件test.asp 和tree.asp 还有一些图标文件 1.test.asp 调用类生成树 代码如下 <%@ Language=VBScript %> <html> <head> <link rel="stylesheet" href="tree.css"> <title>tree</title> </head> <!-- #include
-
JAVA 根据数据库表内容生产树结构JSON数据的实例代码
1.利用场景 组织机构树,通常会有组织机构表,其中有code(代码),pcode(上级代码),name(组织名称)等字段 2.构造数据(以下数据并不是组织机构数据,而纯属本人胡编乱造的数据) List<Tree<Test>> trees = new ArrayList<Tree<Test>>(); tests.add(new Test("0", "", "关于本人")); tests.add(new
-
详解JavaScript树结构
对于数据结构"树",想必大家都熟悉,今儿,我们就再来回顾一下数据结构中的二叉树与树,并用JavaScript实现它们. ps:树结构在前端中,很多地方体现得淋漓尽致,如Vue的虚拟DOM以及冒泡等等. 二叉树 --概念-- 二叉树是一种树形结构,它的特点是每个结点至多只有两棵子树(即二叉树中不存在度大于2的结点),并且,二叉树的子树有左右之分,其次序不能任意颠倒. 如下,就是一棵二叉树(注:下文二叉树相关例子,都以该二叉树为例): 且,遍历二叉树(traversing binary t
-
C++二叉树结构的建立与基本操作
准备数据定义二叉树结构操作中需要用到的变量及数据等. 复制代码 代码如下: #define MAXLEN 20 //最大长度typedef char DATA; //定义元素类型struct CBTType //定义二叉树结点类型 { DATA data; //元素数据 CBTType * left; //左子树结点指针 CBTType * right; //右子树结点指针 }; 定义二叉树结构数据元素的类型DA
-
Java实现简单树结构
简单的实现了一个树的结构,很不完善!后续参考一些其他代码的实现. 试图实现叶子存在可变的节点,能够用来解析xml文件. 叶子的代码: package com.app; import java.util.ArrayList; import java.util.List; public class treeNode<T> { public T t; private treeNode<T> parent; public List<treeNode<T>> node
-
JavaScript几种形式的树结构菜单
1.悬浮层树(Tree) 这种树结构实现类似面包屑导航功能,监听的是节点鼠标移动的事件,然后在节点下方或右方显示子节点,依此递归显示子节点的子节点. 用户首页博客设置文章相册留言评论系统 这里要注意几个小问题,其一这种树结构是悬浮层绝对定位的,在创建层的时候一定要直接放在body的下面,这样做的是确保在IE里面能遮掩住任何层,因为在IE里面是有stacking context这种东西的潜规则在里面的,另外当然还有一个select你能遮住我吗?老掉牙的问题,这里是采用在每个悬浮层后面加个ifram
随机推荐
- 用vba实现将记录集输出到Excel模板
- Android仿微信朋友圈图片查看器
- VMware中CentOS设置静态IP与外网互动设置的图文教程
- Zend Studio 实用快捷键一览表(精心整理)
- PHP基于闭包思想实现的BT(torrent)文件解析工具实例详解
- Python选择排序、冒泡排序、合并排序代码实例
- Python中的一些陷阱与技巧小结
- mysql 开发技巧之JOIN 更新和数据查重/去重
- CSS图文混排的几种方案
- JavaScript 脚本将当地时间转换成其它时区
- jQuery中ajax - get() 方法实例详解
- 微信小程序 限制1M的瘦身技巧与方法详解
- 让你彻底掌握es6 Promise的八段代码
- XML TO ArrayCollection 两种实现方式
- PHP rawurlencode与urlencode函数的深入分析
- 一个连接两个不同MYSQL数据库的PHP程序
- Android实现中国象棋附源码下载
- 如何利用NTFS加密文件及文件夹
- Vue单页面应用保证F5强刷不清空数据的解决方案
- python使用epoll实现服务端的方法
