当前位置: 首页 > 编程笔记 >

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

孔永年
2023-03-14
本文向大家介绍Python打印scrapy蜘蛛抓取树结构的方法,包括了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程序设计有所帮助。

 类似资料:
  • 我写一个Scrapy蜘蛛,每天一次爬行一组网址。然而,其中一些网站非常大,所以我不能每天抓取整个网站,也不想产生大量的流量。 一个老问题(这里)问了一些类似的问题。但是,向上投票的响应只是指向一个代码段(此处),它似乎需要请求实例的某些内容,尽管响应中以及包含代码段的页面上都没有对此进行解释。 我试图理解这一点,但发现中间件有点混乱。无论是否使用链接的中间件,一个完整的刮板机示例都非常有用,该刮板

  • 问题内容: 有没有一种方法可以在不使用Scrapy守护程序的情况下运行Scrapy项目中的所有蜘蛛程序?曾经有一种使用来运行多个Spider的方法,但是该语法已删除,Scrapy的代码也进行了很多更改。 我尝试创建自己的命令: 但是,一旦在上注册了蜘蛛,我就会得到所有其他蜘蛛的断言错误: 有什么办法吗?我不想开始子类化核心Scrapy组件,而只是为了运行所有我的蜘蛛。 问题答案: 这是一个不在自定

  • 蜘蛛记录分为两部分: 时间筛选 和 蜘蛛记录 (详情) 1.时间筛选 便捷按钮有今日、昨日、前日、上周 X、近七天,并且能自定义选择时间段来得出想要的结果报表 2.蜘蛛记录 (时间段详情) 1)蜘蛛记录便是搜索引擎通过蜘蛛爬行所留下的痕迹,蜘蛛记录中的细分做的非常的详细, 包含蜘蛛IP地址、访问URL、蜘蛛类型、来访时间 2)搜索引擎爬取网页时,只有触发js统计代码才能被统计,故数据仅供参考

  • 海蜘蛛EWP(Easy Webserver Platform)是专门针对服务器运营商/企业等为各类网站运营而设计的稳定易用Web服务平台。它兼有路由器的功能,集专业级防火墙于一体,能够精确控制内外网的访问和各个用户的权限,打造一个高稳定性、易维护、投资低的全新智能化Web应用平台。 EWP基于嵌入式架构,提供稳定高效的底层核心功能和应用接口。能够兼容绝大多数国内外常见的Web应用,提供主流的Web

  • 问题内容: 我在一个要刮擦多个站点(可能是数百个站点)的项目中使用了scrapy,并且我必须为每个站点编写特定的蜘蛛。我可以使用以下命令在部署要抓取的项目中安排 一只 蜘蛛: 但是,如何一次计划一个项目中的 所有 蜘蛛呢? 所有帮助非常感谢! 问题答案: 我一次运行200个以上Spider的解决方案是为该项目创建一个自定义命令。有关实现自定义命令的更多信息,请参见http://doc.scrapy

  • 问题内容: 有没有一种方法可以在Spider类终止之前触发它? 我可以自己终止蜘蛛,如下所示: 但是我找不到任何有关如何确定蜘蛛何时自然退出的信息。 问题答案: 看来您可以通过来注册信号监听器。 我会尝试类似的东西: 在较新版本的scrapy中已弃用。相反,您可以使用from 。