Spider basebase在北京是什么意思思

scrapy 的basespider 如何用函数来构建starturl? - 知乎3被浏览371分享邀请回答
for url in self.start_urls:
yield self.make_requests_from_url(url)
#返回一个request的生成器
15 条评论分享收藏感谢收起Python爬虫框架Scrapy爬虫文件之spider介绍(四)
背景简介python的scrapy中Spider类定义了如何爬取某个(或某些)网站。包括了爬取的动作(例如:是否跟进链接)以及如何从网页的内容中提取结构化数据(爬取item)。 换句话说,Spider就是您定义爬取的动作及分析某个网页(或者是有些网页)的地方。对spider来说,爬取的循环类似下文:(1)以初始的URL初始化Request,并设置回调函数。 当该request下载完毕并返回时,将生成response,并作为参数传给该回调函数。spider中初始的request是通过调用 start_requests() 来获取的。 start_requests() 读取 start_urls 中的URL, 并以 parse 为回调函数生成 Request 。(2)在回调函数内分析返回的(网页)内容,返回 Item 对象、dict、 Request 或者一个包括三者的可迭代容器。 返回的Request对象之后会经过Scrapy处理,下载相应的内容,并调用设置的callback函数(函数可相同)。(3)在回调函数内,您可以使用 选择器(Selectors) (您也可以使用BeautifulSoup, lxml 或者您想用的任何解析器) 来分析网页内容,并根据分析的数据生成item。(4)最后,由spider返回的item将被存到数据库(由某些 Item Pipeline 处理)或使用 Feed exports 存入到文件中。虽然该循环对任何类型的spider都(多少)适用,但Scrapy仍然为了不同的需求提供了多种默认spider。 之后将讨论这些spider。spider源码参考class&Spider(object_ref):
&&&&&&&Base&class&for&scrapy&spiders.&All&spiders&must&inherit&from&this
&&&&class.
&&&&name&=&None
&&&&custom_settings&=&None
&&&&def&__init__(self,&name=None,&**kwargs):
&&&&&&&&if&name&is&not&None:
&&&&&&&&&&&&self.name&=&name
&&&&&&&&elif&not&getattr(self,&'name',&None):
&&&&&&&&&&&&raise&ValueError(&%s&must&have&a&name&&%&type(self).__name__)
&&&&&&&&self.__dict__.update(kwargs)
&&&&&&&&if&not&hasattr(self,&'start_urls'):
&&&&&&&&&&&&self.start_urls&=&[]
&&&&@property
&&&&def&logger(self):
&&&&&&&&logger&=&logging.getLogger(self.name)
&&&&&&&&return&logging.LoggerAdapter(logger,&{'spider':&self})
&&&&def&log(self,&message,&level=logging.DEBUG,&**kw):
&&&&&&&&&&&Log&the&given&message&at&the&given&log&level
&&&&&&&&This&helper&wraps&a&log&call&to&the&logger&within&the&spider,&but&you
&&&&&&&&can&use&it&directly&(e.g.&Spider.logger.info('msg'))&or&use&any&other
&&&&&&&&Python&logger&too.
&&&&&&&&&&&
&&&&&&&&self.logger.log(level,&message,&**kw)
&&&&@classmethod
&&&&def&from_crawler(cls,&crawler,&*args,&**kwargs):
&&&&&&&&spider&=&cls(*args,&**kwargs)
&&&&&&&&spider._set_crawler(crawler)
&&&&&&&&return&spider
&&&&def&set_crawler(self,&crawler):
&&&&&&&&warnings.warn(&set_crawler&is&deprecated,&instantiate&and&bound&the&&
&&&&&&&&&&&&&&&&&&&&&&&spider&to&this&crawler&with&from_crawler&method&&
&&&&&&&&&&&&&&&&&&&&&&&instead.&,
&&&&&&&&&&&&&&&&&&&&&&category=ScrapyDeprecationWarning,&stacklevel=2)
&&&&&&&&assert&not&hasattr(self,&'crawler'),&&Spider&already&bounded&to&a&&&\
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&crawler&
&&&&&&&&self._set_crawler(crawler)
&&&&def&_set_crawler(self,&crawler):
&&&&&&&&self.crawler&=&crawler
&&&&&&&&self.settings&=&crawler.settings
&&&&&&&&crawler.signals.connect(self.close,&signals.spider_closed)
&&&&def&start_requests(self):
&&&&&&&&for&url&in&self.start_urls:
&&&&&&&&&&&&yield&self.make_requests_from_url(url)
&&&&def&make_requests_from_url(self,&url):
&&&&&&&&return&Request(url,&dont_filter=True)
&&&&def&parse(self,&response):
&&&&&&&&raise&NotImplementedError
&&&&@classmethod
&&&&def&update_settings(cls,&settings):
&&&&&&&&settings.setdict(cls.custom_settings&or&{},&priority='spider')
&&&&@classmethod
&&&&def&handles_request(cls,&request):
&&&&&&&&return&url_is_from_spider(request.url,&cls)
&&&&@staticmethod
&&&&def&close(spider,&reason):
&&&&&&&&closed&=&getattr(spider,&'closed',&None)
&&&&&&&&if&callable(closed):
&&&&&&&&&&&&return&closed(reason)
&&&&def&__str__(self):
&&&&&&&&return&&&%s&%r&at&0x%0x&&&%&(type(self).__name__,&self.name,&id(self))
&&&&__repr__&=&__str__主要属性和方法1、name定义了sipder名字的字符串例如,如果spider爬取lybbn.cn,该spider通常会被命名为lybbn,此方法为必选方法2、allowed_domains包含了spider允许爬取的域名(domain)的列表,此方法为可选方法3、start_urls初始url元组/列表,当没有指定特定的url时,spider将从该列表中开始进行爬取4、parse(self,response)parse 负责处理response并返回处理的数据以及(/或)跟进的URL。 Spider 对其他的Request的回调函数也有相同的要求。该方法及其他的Request回调函数必须返回一个包含 Request、dict 或 Item 的可迭代的对象。5、log(self,message[, level, component])使用 scrapy.log.msg() 方法记录(log)message。 log中自动带上该spider的 name 属性。 更多数据请参见 Logging 。 封装了通过Spiders的 logger 来发送log消息的方法,并且保持了向后兼容性爬虫spider建立方法一:你可以直接使用命令的方式建立genspider命令用于创建爬虫文件,后面需要跟两个参数,一个是爬虫名称,一个是允许爬行的域名如果爬虫文件中有包含爬虫名称,会提示,已存在该名称的spider文件scrapy&genspider&lybbn&&lybbn.cn&Spider 'lybbn' already exists in module:& lybbnspider.spiders.lybbn_spiderscrapy &lybbn01 &lybbn01.cn&Spider 'lybbn' already exists in module:& lybbnspider.spiders.lybbn_spider命令创建的爬虫文件#&-*-&coding:&utf-8&-*-
import&scrapy
class&Lybbn01Spider(scrapy.Spider):
&&&&name&=&'lybbn01'
&&&&allowed_domains&=&['lybbn.cn']
&&&&start_urls&=&['http://www.lybbn.cn/']
&&&&def&parse(self,&response):
&&&&&&&&pass方法二:你可以自己建立sipder文件不需要命令spider爬虫实例自动翻页方法一:拼接URL的方式来实现翻页(该场景弊端在于网站数据有变化或者url地址变化的话,拼接URL就不适用了)#coding=utf-8
from&scrapy.spiders&import&Spider
from&scrapy.selector&import&Selector
from&scrapy.http&import&Request
from&lybbnspider.items&import&LybbnspiderItem
class&LybbnSpider(Spider):
&&&&name=&lybbn&
&&&&allowed_domains=[&lybbn.cn&]
&&&&baseURL=&http://www.lybbn.cn/index.php?page=&
&&&&offset=1
&&&&start_urls=[baseURL+str(offset)]
&&&&def&parse(self,response):
&&&&&&&&sel=Selector(response)
&&&&&&&&mylis=sel.xpath('//*[@id=&excerpt&]/li')
&&&&&&&&for&myli&in&mylis:
&&&&&&&&&&&&item=LybbnspiderItem()
&&&&&&&&&&&&item['title']=myli.xpath('h2/a/text()').extract()
&&&&&&&&&&&&item['link']=myli.xpath('h2/a/@href').extract()
&&&&&&&&&&&&yield&item
&&&&&&&&if&self.offset&17:#判断offset是分页的末尾页的情况下
&&&&&&&&&&&&self.offset+=1
&&&&&&&&&&&&url=self.baseURL+str(self.offset)
&&&&&&&&&&&&yield&Request(url,callback=self.parse)方法二:通过网页中找到下一页的链接的方式实现自动翻页#coding=utf-8
from&scrapy.spiders&import&Spider
from&scrapy.selector&import&Selector
from&scrapy.http&import&Request
from&lybbnspider.items&import&LybbnspiderItem
class&LybbnSpider(Spider):
&&&&name=&lybbn&
&&&&allowed_domains=[&lybbn.cn&]
&&&&start_urls=[&http://www.lybbn.cn/index.php?page=1&]
&&&&def&parse(self,response):
&&&&&&&&sel=Selector(response)
&&&&&&&&mylis=sel.xpath('//*[@id=&excerpt&]/li')
&&&&&&&&for&myli&in&mylis:
&&&&&&&&&&&&item=LybbnspiderItem()
&&&&&&&&&&&&item['title']=myli.xpath('h2/a/text()').extract()
&&&&&&&&&&&&item['link']=myli.xpath('h2/a/@href').extract()
&&&&&&&&&&&&yield&item
&&&&&&&&if&len(response.css(u'#page&:contains(&下一页&)::attr(href)').extract())!=0:#判断下一页是否灰色不可点
&&&&&&&&&&&&url=response.css(u'#page&:contains(&下一页&)::attr(href)').extract()[0].encode('utf-8')#由于本网站下一页的xpath不规则,因此使用css提取含有下一页的标签的href值。
&&&&&&&&&&&&yield&Request(&http://www.lybbn.cn/index.php&+url,callback=self.parse)spider爬虫实例跟踪链接获取文章内容#coding=utf-8
from&scrapy.spiders&import&Spider
from&scrapy.selector&import&Selector
from&scrapy.http&import&Request
from&lybbnspider.items&import&LybbnspiderItem
class&LybbnSpider(Spider):
&&&&name=&lybbn&
&&&&allowed_domains=[&lybbn.cn&]
&&&&start_urls=[&http://www.lybbn.cn/index.php?page=1&]
&&&&def&parse(self,response):
&&&&&&&&sel=Selector(response)
&&&&&&&&mylis=sel.xpath('//*[@id=&excerpt&]/li')
&&&&&&&&for&myli&in&mylis:
&&&&&&&&&&&&content_url=myli.xpath('h2/a/@href').extract()[0]
&&&&&&&&&&&&yield&Request(content_url,callback=self.parse_content)
&&&&&&&&if&len(response.css(u'#page&:contains(&下一页&)::attr(href)').extract())!=0:#判断下一页是否灰色不可点
&&&&&&&&&&&&url=response.css(u'#page&:contains(&下一页&)::attr(href)').extract()[0].encode('utf-8')#由于本网站下一页的xpath不规则,因此使用css提取含有下一页的标签的href值。
&&&&&&&&&&&&yield&Request(&http://www.lybbn.cn/index.php&+url,callback=self.parse)
&&&&def&parse_content(self,response):
&&&&&&&&item=LybbnspiderItem()
&&&&&&&&item['title']=response.xpath('//*[@id=&hg1&]/div[1]/div[1]/text()').extract()[0].strip()
&&&&&&&&item['content']=response.xpath('//*[@id=&article&]').extract()[0]
&&&&&&&&item['link']=response.url
&&&&&&&&yield&item传送门Python爬虫框架Scrapy介绍(一)http://www.lybbn.cn/data/datas.php?yw=260Python爬虫框架Scrapy之爬取下一页网页的方法(二)http://www.lybbn.cn/data/datas.php?yw=261Python爬虫框架Scrapy之管道文件pipeline介绍(三)http://www.lybbn.cn/data/datas.php?yw=266相关连接官方网站:http://scrapy.org/
开源地址:https://github.com/scrapy/scrapy
中文文档:http://scrapy-chs.readthedocs.io/zh_CN/latest/intro/overview.html转载请注明来自Lybbn(lybbn.cn)
感谢您的支持,我会继续努力的!
扫码打赏,你说多少就多少Scrapy学习笔记(5)-CrawlSpider+sqlalchemy实战 | 金笔头博客 欢迎访问金笔头博客,这是一个菜鸟(伪)程序员的自留地,欢迎访问我的github:
在之前的文章中有提到在使用scrapy genspider命令生成spider的时候可以使用-t参数来指定生成spider的模板,前面几篇文章中我们没有指定模板,所以都是使用最基本的Spider类来爬取数据。Spider其实能做很多事情了,但是如果你想对某个网站进行全站爬取的话,你可能需要一个更强大的武器—CrawlSpider。另外之前的文章中我们如果要把爬取的数据保存到数据库,那我们就得提前在库中执行DDL语句将表建好,有时候觉得设计表并写SQL是个很麻烦的事情,就想着能不能省掉写SQL的过程,查了下资料还真有,那就是使用sqlalchemy,本文记录实战过程。
class scrapy.spiders.CrawlSpider
这是抓取一般网页最常用的类,除了从Spider继承过来的属性外,其提供了一个新的属性rules,它提供了一种简单的机制,能够为将要爬取的链接定义一组提取规则。
这是一个Rule对象列表,每条规则定义了爬取网站链接的行为,如果一条链接命中多条规则,以第一条规则进行匹配,顺序由属性中定义的顺序决定。
Link Extractors
Link Extractors 是用于从网页( )中抽取会被follow链接的对象。 Scrapy 自带的Link Extractors类由scrapy.linkextractors模块提供,你可以这样直接导入from scrapy.linkextractors import LinkExtractor,也可以通过实现一个简单的接口来创建自己个性化的Link Extractor来满足需求。每个LinkExtractor都有唯一的公共方法是 extract_links ,其接收 一个
对象, 并返回scrapy.link.Link 对象? Link Extractors只实例化一次,其 extract_links 方法会根据不同的response被调用多次来提取链接?默认的link extractor 是 LinkExtractor ,其实就是 LxmlLinkExtractor,在以前版本的Scrapy版本中还提供了其他的link extractor,不过都已经被废弃了。
LxmlLinkExtractor
classscrapy.linkextractors.lxmlhtml.LxmlLinkExtractor(
allow_domains=(),
deny_domains=(),
deny_extensions=None,
restrict_xpaths=(),
restrict_css=(),
tags=(‘a’, ‘area’),
attrs=(‘href’, ),
canonicalize=True,
unique=True,
process_value=None
参数解释:
allow 只有匹配这个正则表达式(或正则表达式列表)的URL才会被提取?如果没有给出(或None) ,它会匹配所有的链接?
deny 匹配这个正则表达式(或正则表达式列表)的URL将会被排除在外(即不提取)?它的优先级高于allow参数,如果没有给出(或None) ,将不排除任何链接?
allow_domains 包含特定域名的字符串或字符串列表,表示允许从这里面提取链接
deny_domains 包含特定域名的字符串或字符串列表, 表示不允许从这里面提取链接
deny_extensions 提取链接时,忽略扩展名的列表?如果没有给出,默认为scrapy.linkextractor模块中定义的ignored_extensions列表?
restrict_xpaths 单个xpath表达式或xpath表达式列表,若不为空,则只使用该参数去提取URL,和allow共同作用过滤链接。
restrict_css 单个css选择器或者选择器列表,作用和restrict_xpaths一样
tags 提取链接时要考虑的标签或标签列表?默认为 ( ‘a’ , ‘area’)
attrs 提取链接时应该寻找的attrbitues列表(仅在 tags 参数中指定的标签)?默认为 (‘href’)?
canonicalize 是否标准化每个提取的URL,使用w3lib.url.canonicalize_url。默认为True。
unique 是否过滤提取过的URL,布尔类型
process_value 处理tags和attrs提取到的URL的函数,它能修改并返回一个新值。如果为空则默认是lambda x: x
classscrapy.spiders.Rule(
link_extractor,
callback=None,
cb_kwargs=None,
follow=None,
process_links=None,
process_request=None
参数解释:
link_extractor 是一个Link Extractor对象,定义怎样提取每个需要爬取的页面中的链接。
callback 是一个可调用方法或者一个字符串(spider类中用这个字符串命名的方法)会被每个指定的link_extractor 调用,这个方法的第一个参数是response必须返回一个item或者Request的list。
cb_kwargs 是一个包含关键字参数的字典,可以传递给callback函数。
follow 是一个布尔值,指定这些通过规则匹配出来的链接是否需要继续,如果callback是None,follow默认为False,否则follow是True。
process_links 是一个可调用方法或者一个字符串(spider类中用这个字符串命名的方法)会被每个指定的link_extractor调用,这个主要作用是过滤。
process_request 是一个可调用方法或者一个字符串(spider类中用这个字符串命名的方法)会被这个规则的每个request调用,必须返回一个request或者None。
SQLAlchemy
是python的一款开源软件,提供了SQL工具包及对象关系映射(ORM)工具(需要安装第三方库)。它的优点用一句话概括就是可以避免写繁复的sql语句.(隐藏数据库,良好的数据接口,动态的数据映射,引入缓存)具体请参考
scrapy支持使用xpath表达式来提取数据。XPath即为路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言。 XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力。起初XPath的提出的初衷是将其作为一个通用的、介于XPointer与XSL间的语法模型。但是XPath很快的被开发者采用来当作小型查询语言。具体可参考
有了前面的知识和基本概念之后,下面就是写代码了,本文目标是使用CrawlSpider和sqlalchemy实现如下网站中的高匿代理IP采集入库,新建项目和spider的过程我就不写了,不会的可以参考之前的文章,本次项目名称为”ip_proxy_pool”,顾名思义就是IP代理池,学习爬虫的应该都知道,不过本文仅仅是采集特定网站公开的代理IP,维护一个IP代理池那是后话,OK,Talk is cheap,Show you the code!
项目结构如上图所示,model目录存放数据库表的映射文件,proxy.py是目标表的映射文件,rules.py以及和model目录同级的__init__.py文件本文中暂时用不到先不管,其他文件都是本次实践需要用到的。
1.items.py
# -*- coding: utf-8 -*-
# Define here the models for your scraped items
# See documentation in:
# http://doc.scrapy.org/en/latest/topics/items.html
import scrapy
class IpProxyPoolItem(scrapy.Item):
ip_port = scrapy.Field()
type = scrapy.Field()
level = scrapy.Field()
country = scrapy.Field()
location = scrapy.Field()
speed = scrapy.Field()
source = scrapy.Field()
2.model目录下的__init__.py
# -*- coding: utf-8 -*-
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
# 创建对象的基类:
Base = declarative_base()
# 初始化数据库连接:
engine = create_engine('mysql+mysqldb://root:123456@localhost:3306/scrapy?charset=utf8')
#返回数据库会话
def loadSession():
Session = sessionmaker(bind=engine)
session = Session()
return session
3.proxy.py(数据库表proxies的映射文件)
# -*- coding: utf-8 -*-
from sqlalchemy import Column,String,Integer,DateTime
from . import Base
import datetime
class Proxy(Base):
__tablename__ = 'proxies'
ip_port=Column(String(30),primary_key=True,nullable=False)
type=Column(String(20),nullable=True)
level=Column(String(20),nullable=True)
location=Column(String(100),nullable=True)
speed=Column(Integer,nullable=True)
source = Column(String(500), nullable=False)
indate=Column(DateTime,nullable=False)
def __init__(self,ip_port,source,type=None,level=None,location=None,speed=None):
self.ip_port=ip_port
self.type=type
self.level=level
self.location=location
self.speed=speed
self.source=source
self.indate=datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
4.pipelines.py
# -*- coding: utf-8 -*-
# Define your item pipelines here
from model import Base,engine,loadSession
from model import proxy
class IpProxyPoolPipeline(object):
#搜索Base的所有子类,并在数据库中生成表
Base.metadata.create_all(engine)
def process_item(self, item, spider):
a = proxy.Proxy(
ip_port=item['ip_port'],
type=item['type'],
level=item['level'],
location=item['location'],
speed=item['speed'],
source=item['source']
session = loadSession()
session.add(a)
session.commit()
return item
5.proxy_spider.py
# -*- coding: utf-8 -*-
import scrapy
from scrapy.linkextractors import LinkExtractor
from scrapy.spiders import CrawlSpider, Rule
from ..items import IpProxyPoolItem
class ProxySpiderSpider(CrawlSpider):
name = 'proxy_spider'
allowed_domains = ['ip84.com']
start_urls = ['http://ip84.com/gn']
#跟随下一页链接
Rule(LinkExtractor(restrict_xpaths="//a[@class='next_page']"),follow=True),
#对所有链接中含有"/gn/数字"的链接调用parse_item函数进行数据提取并过滤重复链接
Rule(LinkExtractor(allow=r'/gn/\d+',unique=True), callback='parse_item'),
def parse_item(self, response):
print 'Hi, this is an item page! %s' % response.url
item=IpProxyPoolItem()
for proxy in response.xpath("//table[@class='list']/tr[position()&1]"):
ip=proxy.xpath("td[1]/text()").extract_first()
port=proxy.xpath("td[2]/text()").extract_first()
location1=proxy.xpath("td[3]/a[1]/text()").extract_first()
location2=proxy.xpath("td[3]/a[2]/text()").extract_first()
level=proxy.xpath("td[4]/text()").extract_first()
type = proxy.xpath("td[5]/text()").extract_first()
speed=proxy.xpath("td[6]/text()").extract_first()
item['ip_port']=(ip if ip else "")+":"+(port if port else "")
item['type']=(type if type else "")
item['level']=(level if level else "")
item['location']=(location1 if location1 else "")+" "+(location2 if location2 else "")
item['speed']=(speed if speed else "")
item['source']=response.url
return item
6.settings.py
# -*- coding: utf-8 -*-
# Scrapy settings for ip_proxy_pool project
BOT_NAME = 'ip_proxy_pool'
SPIDER_MODULES = ['ip_proxy_pool.spiders']
NEWSPIDER_MODULE = 'ip_proxy_pool.spiders'
# Obey robots.txt rules
ROBOTSTXT_OBEY = True
ITEM_PIPELINES = {
'ip_proxy_pool.pipelines.IpProxyPoolPipeline': 300,
DOWNLOAD_DELAY = 2
7.运行spider,查看结果
shell中执行scrapy crawl proxy_spider,发现数据库中已经自动生成了表proxies并且数据已经入库,Done!
金笔头博客, 版权所有丨如未注明 , 均为原创, 转载请注明!说明:&&网络收索引擎
基于lucene的文本搜索(search
文件列表:
Spider\.classpath
Spider\.project
Spider\.settings
Spider\.settings\org.eclipse.jdt.core.prefs
Spider\.settings\org.eclipse.ltk.core.refactoring.prefs
Spider\bin
Spider\bin\frame
Spider\bin\frame\LinkLabel$1.class
Spider\bin\frame\LinkLabel.class
Spider\bin\frame\SearchFrame$SearchListener.class
Spider\bin\frame\SearchFrame.class
Spider\bin\index
Spider\bin\index\CreateIndex.class
Spider\bin\index\Searcher.class
Spider\bin\index\Test.class
Spider\bin\parse
Spider\bin\parse\ScriptFilter.class
Spider\bin\parse\Spider$Processer.class
Spider\bin\parse\Spider.class
Spider\bin\parse\Test.class
Spider\dic
Spider\dic\.svn
Spider\dic\.svn\all-wcprops
Spider\dic\.svn\entries
Spider\dic\.svn\format
Spider\dic\.svn\prop-base
Spider\dic\.svn\props
Spider\dic\.svn\text-base
Spider\dic\.svn\text-base\administrative.dic.svn-base
Spider\dic\.svn\text-base\appellation.dic.svn-base
Spider\dic\.svn\text-base\company.dic.svn-base
Spider\dic\.svn\text-base\comupter-science.dic.svn-base
Spider\dic\.svn\text-base\contemporary-words.dic.svn-base
Spider\dic\.svn\text-base\festival.dic.svn-base
Spider\dic\.svn\text-base\language.dic.svn-base
Spider\dic\.svn\text-base\name-foreign.dic.svn-base
Spider\dic\.svn\text-base\nation.dic.svn-base
Spider\dic\.svn\text-base\org-domestic.dic.svn-base
Spider\dic\.svn\text-base\org-foreign.dic.svn-base
Spider\dic\.svn\text-base\paoding-dic-names.properties.svn-base
Spider\dic\.svn\text-base\star-domestic.dic.svn-base
Spider\dic\.svn\text-base\star-foreign.dic.svn-base
Spider\dic\.svn\text-base\t-base.dic.svn-base
Spider\dic\.svn\text-base\x-confucian-family-name.dic.svn-base
Spider\dic\.svn\text-base\x-for-combinatorics.dic.svn-base
Spider\dic\.svn\text-base\x-noise-charactor.dic.svn-base
Spider\dic\.svn\text-base\x-noise-word.dic.svn-base
Spider\dic\.svn\text-base\x-unit.dic.svn-base
Spider\dic\.svn\tmp
Spider\dic\.svn\tmp\prop-base
Spider\dic\.svn\tmp\props
Spider\dic\.svn\tmp\text-base
Spider\dic\administrative.dic
Spider\dic\appellation.dic
Spider\dic\company.dic
Spider\dic\comupter-science.dic
Spider\dic\contemporary-words.dic
Spider\dic\division
Spider\dic\division\.svn
Spider\dic\division\.svn\all-wcprops
Spider\dic\division\.svn\entries
Spider\dic\division\.svn\format
Spider\dic\division\.svn\prop-base
Spider\dic\division\.svn\prop-base\readme.txt.svn-base
Spider\dic\division\.svn\props
Spider\dic\division\.svn\text-base
Spider\dic\division\.svn\text-base\africa.dic.svn-base
Spider\dic\division\.svn\text-base\america.dic.svn-base
Spider\dic\division\.svn\text-base\china.dic.svn-base
Spider\dic\division\.svn\text-base\europe.dic.svn-base
Spider\dic\division\.svn\text-base\japan.dic.svn-base
Spider\dic\division\.svn\text-base\korea.dic.svn-base
Spider\dic\division\.svn\text-base\oceania.dic.svn-base
Spider\dic\division\.svn\text-base\readme.txt.svn-base
Spider\dic\division\.svn\text-base\taiwan.dic.svn-base
Spider\dic\division\.svn\tmp
Spider\dic\division\.svn\tmp\prop-base
Spider\dic\division\.svn\tmp\props
Spider\dic\division\.svn\tmp\text-base
Spider\dic\division\africa.dic
Spider\dic\division\america.dic
Spider\dic\division\china.dic
Spider\dic\division\europe.dic
Spider\dic\division\japan.dic
Spider\dic\division\korea.dic
Spider\dic\division\oceania.dic
Spider\dic\division\readme.txt
Spider\dic\division\taiwan.dic
Spider\dic\festival.dic
Spider\dic\language.dic
Spider\dic\locale
Spider\dic\locale\.svn
Spider\dic\locale\.svn\all-wcprops
Spider\dic\locale\.svn\entries
Spider\dic\locale\.svn\format
Spider\dic\locale\.svn\prop-base
Spider\dic\locale\.svn\prop-base\readme.txt.svn-base
Spider\dic\locale\.svn\prop-base\xiamen.dic.svn-base
Spider\dic\locale\.svn\props
近期下载者:
相关文件:

我要回帖

更多关于 工作base地是什么意思 的文章

 

随机推荐