├── README.md ├── SaveResult.py ├── bd ├── PipeLine │ ├── BooksPipeLine.py │ ├── BooksPipeLine.pyc │ ├── __init__.py │ ├── __init__.pyc │ ├── exception.py │ ├── exception.pyc │ ├── redissave.py │ └── redissave.pyc ├── WMTest.py ├── WuManber │ ├── FindBooks.py │ ├── FindBooks.pyc │ ├── WM.py │ ├── WM.pyc │ ├── __init__.py │ ├── __init__.pyc │ ├── kmp.py │ └── kmp.pyc ├── __init__.py ├── __init__.pyc ├── items.py ├── items.pyc ├── pipelines.py ├── settings.py ├── settings.pyc └── spiders │ ├── __init__.py │ ├── __init__.pyc │ ├── bdspider.py │ └── bdspider.pyc ├── items.json ├── pattens.txt └── scrapy.cfg /README.md: -------------------------------------------------------------------------------- 1 | BaiduSpider 2 | =========== 3 | 4 | 爬取百度贴吧,从中获取所有提到的流行小说名字,根据出现次数判断小说流行度 5 | 6 | 7 | ​先说说需求:我想做的一个爬虫,它通过爬取百度“小说推荐吧”里面的所有帖子,从中找到被提到最多的小说,为什么会有这种需求呢,因为我书荒的时候就会去这个贴吧,看哪本小说被推荐的多,我就看哪本了。 8 | 9 | ​要实现这个功能,我碰到的问题主要有以下几个: 10 | 11 | ​ ​1)如果判断一个词组表示的是一本小说; 12 | 13 | ​ ​2)采用什么搜索算法; 14 | 15 | ​ ​3)百度贴吧浏览10页以后的内容需要登录,如何在爬虫里面登录贴吧; 16 | 17 | ​对于第一个问题,我是这样解决的,从一个包含很多流行小说的网站上爬取部分小说名字,我是在豆瓣读书上找的,找了几个标签总共2000~3000本小说的名字,然后将这些小说名字与网页中的文字进行比对,如果有匹配的就表示是一本小说了,虽说无法判断所有小说,但能提取出流行小说就够了。最后匹配了部分网页发现这种有些问题,比如有小说名叫《战士》或《毒》,这种词出现的太多了,而且大部分时候想表达的意思不是小说名,我最终的处理方案是这些匹配的词后必须跟特定的符号或词语,比如别人提到“毒写的不错”或“《毒》”,抑或是“毒,战士,活着 都可以”,我才认定别人提到的应该是小说名了,当然,这样判断不一定准确,但应该有80%左右是对的。 18 | 19 | ​对于第二个问题,我搜多模式匹配,有两种比较流行的算法,AC多模匹配和Wu-Manber算法,前一种似乎不太适合非ascii字符的情形,所有我最终主要采用的是Wu-Manber算法,这种算法的实现思路大概是这样的(因为这不是主要,所以写的比较简单,可以自行百度): 20 | 21 | ​比如有abcdef,ijkhlsd 这两个模式串需要在一段文字中进行匹配,我可以设定一个值k=4(该值应该小于最小模式串的长度),和block=2(该值应该小于k值),有两个表,ShiftTable和HashTable,在ShiftTable中放的是偏移值,对于串abcdef,分别计算ab,bc,cd,的Hash值,然后在ShiftTable中Hash值对应的地方放上偏移值,比如cd的偏移值是0,bd是1,ab是2,然后HashTable对应偏移为0的地方存放最开始block大小字符串的哈希值和相应模式串的索引。匹配过程是这样的:字符串从开头中每一个block长度求hash值,找到ShiftTable中相应地方的偏移值,如果不是0,则将指针前移偏移值个位置,如果是0,则和HashTable中相应地方存放的前缀Hash值进行比对,如果比对相等,再进行全字匹配。 22 | 23 | ​对于第三个问题,根据前人总结的,百度登陆有三个步骤: 24 | 25 | ​ ​1.Get方式连接https://passport.baidu.com/v2/api/?getapi&class=login&tpl=mn&tangram=false,得到cookie 26 | 27 | ​ ​2.Get方式连接https://passport.baidu.com/v2/api/?getapi&class=login&tpl=mn&tangram=false,得到的内容中包含一个tocken,解析出这个tocken的值 28 | 29 | ​ ​3.Post以下内容: 30 | 1 31 | 2 32 | 3 33 | 4 34 | 5 35 | 6 36 | 7 37 | 8 38 | 9 39 | 10 40 | 11 41 | 12 42 | 13 43 | 14 44 | 45 | post_data = {'username':self.usrname, 46 | 'password':self.passwd, 47 | 'token':self.token, 48 | 'charset':'UTF-8', 49 | 'callback':'parent.bd12Pass.api.login._postCallback', 50 | 'index':'0', 51 | 'isPhone':'false', 52 | 'mem_pass':'on', 53 | 'loginType':'1', 54 | 'safeflg':'0', 55 | 'staticpage':'https://passport.baidu.com/v2Jump.html', 56 | 'tpl':'mn', 57 | 'u':'http://www.baidu.com', 58 | 'verifycode':'',} 59 | 60 | ​可以通过在最终连接的页面中查找用户名来判断登陆是否成功。 61 | -------------------------------------------------------------------------------- /SaveResult.py: -------------------------------------------------------------------------------- 1 | from bd.PipeLine.redissave import Redis 2 | pattens_file="pattens.txt" 3 | class BookRef(object): 4 | def __init__(self,bookname): 5 | self.m_bookname=bookname 6 | self.m_refs={} 7 | 8 | def getallresult(): 9 | booksname=[] 10 | rconn=Redis() 11 | with open(pattens_file) as f: 12 | booksname=f.readlines() 13 | for book in booksname: 14 | book=book.strip(" \n") 15 | result=rconn.get_refs(book) 16 | if len(result)>0: 17 | print book.decode('utf-8').encode('gbk'),result 18 | if __name__=='__main__': 19 | getallresult() 20 | 21 | 22 | -------------------------------------------------------------------------------- /bd/PipeLine/BooksPipeLine.py: -------------------------------------------------------------------------------- 1 | import redissave 2 | import bd.WuManber.FindBooks 3 | from bd.items import BdItem 4 | class BooksPipeLine(object): 5 | def __init__(self): 6 | try: 7 | self.redis=redissave.Redis() 8 | except Exception,e: 9 | print "[user] error while connecting redis",e.message 10 | self.SearchBooks=bd.WuManber.FindBooks.FindBooks() 11 | 12 | def process_item(self,item,spider): 13 | string=item['tresponse'] 14 | for text in string: 15 | SearchResult=self.SearchBooks.SearchBooks(text) 16 | #print "[user] search result",SearchResult 17 | for book in SearchResult[0].keys():#WuManber 18 | self.redis.add_ref(book,item['turl'],SearchResult[0][book]) 19 | for book in SearchResult[1].keys():#Kmp 20 | self.redis.add_ref(book,item['turl'],SearchResult[1][book]) 21 | return item 22 | -------------------------------------------------------------------------------- /bd/PipeLine/BooksPipeLine.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chengxiayan/BaiduSpider/6c47275de6385787ce97aa69a2f65952eedba9b5/bd/PipeLine/BooksPipeLine.pyc -------------------------------------------------------------------------------- /bd/PipeLine/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chengxiayan/BaiduSpider/6c47275de6385787ce97aa69a2f65952eedba9b5/bd/PipeLine/__init__.py -------------------------------------------------------------------------------- /bd/PipeLine/__init__.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chengxiayan/BaiduSpider/6c47275de6385787ce97aa69a2f65952eedba9b5/bd/PipeLine/__init__.pyc -------------------------------------------------------------------------------- /bd/PipeLine/exception.py: -------------------------------------------------------------------------------- 1 | class MyException(Exception): 2 | pass -------------------------------------------------------------------------------- /bd/PipeLine/exception.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chengxiayan/BaiduSpider/6c47275de6385787ce97aa69a2f65952eedba9b5/bd/PipeLine/exception.pyc -------------------------------------------------------------------------------- /bd/PipeLine/redissave.py: -------------------------------------------------------------------------------- 1 | import redis 2 | import exception 3 | class Redis(object): 4 | host="172.20.250.251" 5 | port=9999 6 | db=1 7 | def __init__(self): 8 | self.rconn=redis.Redis(host=self.host,port=self.port,db=self.db) 9 | if self.rconn is None: 10 | raise exception.MyException("connect redis error") 11 | self.rconn.incr("refid",1) 12 | def add_ref(self,bookname,url,num): 13 | refid=self.rconn.get("refid") 14 | strref="ref:"+refid 15 | self.rconn.hmset(strref,{"url":url,"refnum":num}) 16 | self.rconn.rpush(bookname,strref) 17 | print "[user]push book",bookname 18 | self.rconn.incr("refid",1) 19 | 20 | def get_refs(self,bookname): 21 | result=[] 22 | refs=self.rconn.lrange(bookname,0,-1) 23 | for item in refs: 24 | url=self.rconn.hget(item,"url") 25 | num=self.rconn.hget(item,"refnum") 26 | result.append([url,num]) 27 | return result -------------------------------------------------------------------------------- /bd/PipeLine/redissave.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chengxiayan/BaiduSpider/6c47275de6385787ce97aa69a2f65952eedba9b5/bd/PipeLine/redissave.pyc -------------------------------------------------------------------------------- /bd/WMTest.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | #-*-coding:utf-8-*- 3 | from WuManber import WM 4 | import os 5 | pattens_file=open("p.txt").readlines() 6 | for i,item in enumerate(pattens_file): 7 | if item[-1]=='\n': 8 | pattens_file[i]=item[:-1] 9 | search_file=open("1.html").read() 10 | s=WM.WuManber() 11 | s.initPatten(pattens_file) 12 | r=s.Search(search_file) 13 | print r 14 | for p in pattens_file: 15 | cnt=0 16 | for item in r: 17 | if p==item[0]: 18 | cnt+=1 19 | print "%s,%d"%((p.decode("utf-8")).encode("gbk"),cnt) -------------------------------------------------------------------------------- /bd/WuManber/FindBooks.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | #-*- coding: utf-8 -*- 3 | import WM 4 | import kmp 5 | #针对书名的限制,书名后面必须接以下符号或文字 6 | def BookNameConstraint(text,index): 7 | MatchStart=index 8 | ListP=["\n"," ",",",",","。",";",";","》","(",".","好看","不错","_","挺好的","很好看"] 9 | #如果是文字的结尾, 10 | if index==len(text): 11 | return True 12 | #如果是ListP中的任意字符,由于有中文,所以只能匹配 13 | for item in ListP: 14 | for i in range(len(item)): 15 | if index>=len(text) or item[i]!=text[index]: 16 | break 17 | else: 18 | index+=1 19 | else: 20 | return True 21 | index=MatchStart 22 | return False 23 | 24 | class FindBooks(object): 25 | file_patten="pattens.txt" 26 | wu_pattens=[] 27 | kmp_pattens=[] 28 | Wu=WM.WuManber(BookNameConstraint) 29 | Kmp=kmp.KmpSearch(BookNameConstraint) 30 | def __init__(self): 31 | all_pattens=open(self.file_patten).readlines() 32 | for i,item in enumerate(all_pattens): 33 | item=item.strip(" \n") 34 | if len(item)<5: 35 | self.kmp_pattens.append(item) 36 | else: 37 | self.wu_pattens.append(item) 38 | self.Wu.InitPatten(self.wu_pattens) 39 | self.Kmp.InitPattens(self.kmp_pattens) 40 | 41 | def SearchBooks(self,string): 42 | rWu=self.Wu.Search(string) 43 | rKmp=self.Kmp.Search(string) 44 | return [rWu,rKmp] 45 | if __name__=='__main__': 46 | s=FindBooks() 47 | text=open("test.txt").read() 48 | r=s.SearchBooks(text) 49 | print r 50 | -------------------------------------------------------------------------------- /bd/WuManber/FindBooks.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chengxiayan/BaiduSpider/6c47275de6385787ce97aa69a2f65952eedba9b5/bd/WuManber/FindBooks.pyc -------------------------------------------------------------------------------- /bd/WuManber/WM.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | #-*-coding:utf-8-*- 3 | def DefConstraint(text,index): 4 | return True 5 | 6 | class WuManber(object): 7 | def __init__(self,ConstraintFunc=DefConstraint): 8 | self.m_MinLen=0 9 | self.m_TableSize=0 10 | self.m_BlockLen=3 11 | self.m_Pattens=[] 12 | self.m_ShiftTable=[] 13 | self.m_HashTable=[] 14 | self.m_ConstraintFunc=ConstraintFunc 15 | def Hash(self,string): 16 | if string is None: 17 | return -1 18 | hashValue=int(0) 19 | for item in string: 20 | try: 21 | hashValue=ord(item)+hashValue*(pow(2,6)+pow(2,16)-1) 22 | except Exception,e: 23 | print "[error]WM.Hash,string",string,item 24 | #hashValue=string.__hash__() 25 | return hashValue%0x7FFFFFFF 26 | 27 | def InitPatten(self,ListPatten): 28 | PattenSize=len(ListPatten) 29 | self.m_MinLen=len(ListPatten[0]) 30 | for item in ListPatten: 31 | if len(item)self.m_MinLen: 35 | self.m_BlockLen=self.m_MinLen 36 | primes=[1003,10007,100003,1000003,10000019,100000007] 37 | threshold=10*self.m_MinLen 38 | for item in primes: 39 | if item>PattenSize and item/PattenSize>threshold: 40 | self.m_TableSize=item 41 | break 42 | if self.m_TableSize is 0: 43 | self.m_TableSize=primes[-1] 44 | self.m_Pattens=ListPatten 45 | for i in range(self.m_TableSize): 46 | self.m_ShiftTable.append(self.m_MinLen-self.m_BlockLen+1) 47 | self.m_HashTable.append([]) 48 | for id in range(PattenSize): 49 | for index in range(self.m_MinLen,self.m_BlockLen-1,-1): 50 | s=ListPatten[id][index-self.m_BlockLen:index] 51 | h=self.Hash(s)%self.m_TableSize 52 | if self.m_ShiftTable[h]>self.m_MinLen-index: 53 | self.m_ShiftTable[h]=self.m_MinLen-index 54 | if index==self.m_MinLen: 55 | prefixhash=self.Hash(ListPatten[id][:self.m_BlockLen]) 56 | self.m_HashTable[h].append([prefixhash,id]) 57 | return True 58 | def Search(self,text): 59 | result={} 60 | textLen=len(text) 61 | index=self.m_MinLen 62 | while index<=textLen: 63 | tmp=text[index-self.m_BlockLen:index] 64 | if tmp is None: 65 | print "index-self.m_BlockLen:index",index-self.m_BlockLen,index,text 66 | h=self.Hash(text[index-self.m_BlockLen:index])%self.m_TableSize 67 | if self.m_ShiftTable[h]>0: 68 | index+=self.m_ShiftTable[h] 69 | else: 70 | prefixHash=self.Hash(text[index-self.m_MinLen:index-self.m_MinLen+self.m_BlockLen]) 71 | for item in self.m_HashTable[h]: 72 | if prefixHash==item[0]: 73 | lenP=len(self.m_Pattens[item[1]]) 74 | cmpindex=index-self.m_MinLen 75 | for i in range(lenP): 76 | if cmpindex>=textLen or (self.m_Pattens[item[1]][i] is not text[cmpindex]): 77 | break 78 | else: 79 | cmpindex+=1 80 | else: 81 | if self.m_ConstraintFunc(text,\ 82 | index-self.m_MinLen+len(self.m_Pattens[item[1]])): 83 | if self.m_Pattens[item[1]] in result.keys(): 84 | result[self.m_Pattens[item[1]]]+=1 85 | else: 86 | result[self.m_Pattens[item[1]]]=1 87 | break 88 | index+=1 89 | return result 90 | 91 | if __name__=='__main__': 92 | s= WuManber() 93 | patten=["程夏衍","李熠"] 94 | s.InitPatten(patten) 95 | r=s.Search("""你今天李熠还好吗,程夏衍程夏衍 96 | 是个大sb,好的,你觉得呢,程夏衍""") 97 | print r 98 | 99 | 100 | 101 | 102 | 103 | -------------------------------------------------------------------------------- /bd/WuManber/WM.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chengxiayan/BaiduSpider/6c47275de6385787ce97aa69a2f65952eedba9b5/bd/WuManber/WM.pyc -------------------------------------------------------------------------------- /bd/WuManber/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chengxiayan/BaiduSpider/6c47275de6385787ce97aa69a2f65952eedba9b5/bd/WuManber/__init__.py -------------------------------------------------------------------------------- /bd/WuManber/__init__.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chengxiayan/BaiduSpider/6c47275de6385787ce97aa69a2f65952eedba9b5/bd/WuManber/__init__.pyc -------------------------------------------------------------------------------- /bd/WuManber/kmp.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | #-*-coding:utf-8-*- 3 | def DefConstraint(text,index): 4 | return True 5 | 6 | class KmpSearch(object): 7 | def __init__(self,ConstraintFunc=DefConstraint): 8 | self.m_ConstraintFunc=ConstraintFunc 9 | def InitPattens(self,pattens): 10 | self.m_pattens=pattens 11 | self.m_nexts=[] 12 | for item in pattens: 13 | self.m_nexts.append(self.GetNext(item)) 14 | #print self.m_nexts 15 | def GetNext(self,p): 16 | PattensLen=len(p) 17 | next=[0]*(PattensLen+1) 18 | next[0]=-1 19 | for i in range(1,PattensLen+1): 20 | n=next[i-1] 21 | while n>=0 and p[n]!=p[i-1]: 22 | n=next[n] 23 | if n<0: 24 | next[i]=0 25 | elif p[n]==p[i-1]: 26 | next[i]=n+1 27 | return next 28 | 29 | def SearchSingle(self,string,PattenIndex): 30 | LenString=len(string) 31 | j=0 32 | i=0 33 | result=0 34 | PattenNext=self.m_nexts[PattenIndex] 35 | PattenStr=self.m_pattens[PattenIndex] 36 | while i=0: 40 | j+=1 41 | if j==len(PattenStr): 42 | if self.m_ConstraintFunc(string,i): 43 | result+=1 44 | j=PattenNext[j] 45 | else: 46 | j=0 47 | else: 48 | j=PattenNext[j] 49 | return result 50 | 51 | def Search(self,string): 52 | result={} 53 | for i,item in enumerate(self.m_pattens): 54 | r=self.SearchSingle(string,i) 55 | if r>0: 56 | result[item]=r 57 | return result 58 | if __name__=='__main__': 59 | s="""中国程夏衍程夏衍程,中国中程夏衍程""" 60 | p=["程夏衍程","中国中"] 61 | k=KmpSearch() 62 | k.InitPattens(p) 63 | r=k.Search(s) 64 | print r 65 | 66 | -------------------------------------------------------------------------------- /bd/WuManber/kmp.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chengxiayan/BaiduSpider/6c47275de6385787ce97aa69a2f65952eedba9b5/bd/WuManber/kmp.pyc -------------------------------------------------------------------------------- /bd/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chengxiayan/BaiduSpider/6c47275de6385787ce97aa69a2f65952eedba9b5/bd/__init__.py -------------------------------------------------------------------------------- /bd/__init__.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chengxiayan/BaiduSpider/6c47275de6385787ce97aa69a2f65952eedba9b5/bd/__init__.pyc -------------------------------------------------------------------------------- /bd/items.py: -------------------------------------------------------------------------------- 1 | # Define here the models for your scraped items 2 | # 3 | # See documentation in: 4 | # http://doc.scrapy.org/en/latest/topics/items.html 5 | 6 | from scrapy.item import Item, Field 7 | 8 | class BdItem(Item): 9 | # define the fields for your item here like: 10 | # name = Field() 11 | ttitle=Field() 12 | turl=Field() 13 | tresponse=Field() 14 | 15 | 16 | -------------------------------------------------------------------------------- /bd/items.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chengxiayan/BaiduSpider/6c47275de6385787ce97aa69a2f65952eedba9b5/bd/items.pyc -------------------------------------------------------------------------------- /bd/pipelines.py: -------------------------------------------------------------------------------- 1 | # Define your item pipelines here 2 | # 3 | # Don't forget to add your pipeline to the ITEM_PIPELINES setting 4 | # See: http://doc.scrapy.org/en/latest/topics/item-pipeline.html 5 | 6 | class BdPipeline(object): 7 | def process_item(self, item, spider): 8 | return item 9 | -------------------------------------------------------------------------------- /bd/settings.py: -------------------------------------------------------------------------------- 1 | # Scrapy settings for bd project 2 | # 3 | # For simplicity, this file contains only the most important settings by 4 | # default. All the other settings are documented here: 5 | # 6 | # http://doc.scrapy.org/en/latest/topics/settings.html 7 | # 8 | #from scrapy.dupefilter import BaseDupeFilter as bfilter 9 | import bd.PipeLine.BooksPipeLine 10 | BOT_NAME = 'bd' 11 | 12 | SPIDER_MODULES = ['bd.spiders'] 13 | NEWSPIDER_MODULE = 'bd.spiders' 14 | 15 | ITEM_PIPELINES={ 16 | 'bd.PipeLine.BooksPipeLine.BooksPipeLine':300 17 | } 18 | # Crawl responsibly by identifying yourself (and your website) on the user-agent 19 | #USER_AGENT = 'bd (+http://www.yourdomain.com)' 20 | COOKIES_ENABLED= True 21 | #DUPEFILTER_CLASS= bfilter -------------------------------------------------------------------------------- /bd/settings.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chengxiayan/BaiduSpider/6c47275de6385787ce97aa69a2f65952eedba9b5/bd/settings.pyc -------------------------------------------------------------------------------- /bd/spiders/__init__.py: -------------------------------------------------------------------------------- 1 | # This package will contain the spiders of your Scrapy project 2 | # 3 | # Please refer to the documentation for information on how to create and manage 4 | # your spiders. 5 | -------------------------------------------------------------------------------- /bd/spiders/__init__.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chengxiayan/BaiduSpider/6c47275de6385787ce97aa69a2f65952eedba9b5/bd/spiders/__init__.pyc -------------------------------------------------------------------------------- /bd/spiders/bdspider.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | #-*- coding: utf-8 -*- 3 | from scrapy.spider import BaseSpider 4 | from scrapy.selector import HtmlXPathSelector 5 | from scrapy.contrib.spiders import CrawlSpider, Rule 6 | from scrapy.http import Request 7 | from scrapy.http import FormRequest 8 | from bd.items import BdItem 9 | import cookielib 10 | import os,re 11 | import urllib 12 | #http://tieba.baidu.com/f/user/passport?jumpUrl=http://tieba.baidu.com/f?kw=%D0%A1%CB%B5%CD%C6%BC%F6&pn=0&statsInfo=frs_pager#login_anchor 13 | class BdSpider(BaseSpider): 14 | name="baidu" 15 | usrname="395318621@qq.com" 16 | passwd="cxy*****" 17 | usrnick="c395318621" 18 | allowed_domains = ['baidu.com'] 19 | logined=False 20 | token='' 21 | curpage=0 22 | def __init__(self,keywords,startpage,endpage): 23 | #self.testurl="http://tieba.baidu.com/f?kw=%s&pn=%d"%(keywords,(startpage-1)*50) 24 | UrlCode=urllib.quote(keywords) 25 | self.testurl="http://tieba.baidu.com/f?kw=%s&pn=%d"%(UrlCode,(int(startpage)-1)*50) 26 | print "[user]",self.testurl 27 | self.startpage=int(startpage) 28 | self.endpage=int(endpage) 29 | 30 | def start_requests(self): 31 | cookiename='baidu%s.cookie'%(self.usrname) 32 | cj=cookielib.LWPCookieJar() 33 | try: 34 | cj.revert(cookiename) 35 | self.logined=True 36 | print "Has logined before" 37 | except Exception,e: 38 | print e 39 | if self.logined: 40 | return [Request(url=testurl,callback=self.check_page)] 41 | else: 42 | qurl="https://passport.baidu.com/v2/api/?getapi&class=login&tpl=mn&tangram=false" 43 | return [Request(url=qurl,callback=self.get_cookie,dont_filter=True)] 44 | def get_cookie(self,response): 45 | print "int get_cookie" 46 | qurl="https://passport.baidu.com/v2/api/?getapi&class=login&tpl=mn&tangram=false" 47 | return [Request(url=qurl,callback=self.get_tocken,dont_filter=True)] 48 | 49 | def get_tocken(self,response): 50 | print "in get_tocken" 51 | login_tokenStr = """bdPass.api.params.login_token='(.*?)';""" 52 | login_tokenObj = re.compile(login_tokenStr,re.DOTALL) 53 | matched_objs=login_tokenObj.findall(response.body) 54 | print response 55 | if matched_objs: 56 | self.token=matched_objs[0] 57 | print "token:",self.token 58 | post_data = {'username':self.usrname, 59 | 'password':self.passwd, 60 | 'token':self.token, 61 | 'charset':'UTF-8', 62 | 'callback':'parent.bd12Pass.api.login._postCallback', 63 | 'index':'0', 64 | 'isPhone':'false', 65 | 'mem_pass':'on', 66 | 'loginType':'1', 67 | 'safeflg':'0', 68 | 'staticpage':'https://passport.baidu.com/v2Jump.html', 69 | 'tpl':'mn', 70 | 'u':self.testurl, 71 | 'verifycode':'',} 72 | #path = 'http://passport.baidu.com/?login' 73 | path = 'http://passport.baidu.com/v2/api/?login' 74 | headers = { 75 | "Accept": "image/gif, */*", 76 | "Referer": "https://passport.baidu.com/v2/?login&tpl=mn&u=%s"%(self.testurl), 77 | "Accept-Language": "zh-cn", 78 | "Content-Type": "application/x-www-form-urlencoded", 79 | "Accept-Encoding": "gzip, deflate", 80 | "User-Agent": "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)", 81 | "Host": "passport.baidu.com", 82 | "Connection": "Keep-Alive", 83 | "Cache-Control": "no-cache"} 84 | return [FormRequest(url=path,formdata=post_data,headers=headers,callback=self.check_page) ] 85 | 86 | def check_page(self,response): 87 | print "[user]in check_page" 88 | #self.start_urls.append(self.testurl) 89 | return [Request(url=self.testurl,callback=self.parse,dont_filter=True)] 90 | 91 | def checkLogin(self,response): 92 | reUser=re.compile(self.usrnick) 93 | matched=reUser.findall(response.body) 94 | if matched is not None: 95 | print "[user] login baidu ok" 96 | return True 97 | else: 98 | print "[user] login failed" 99 | return False 100 | def parse(self,response): 101 | baseurl="http://tieba.baidu.com" 102 | if self.checkLogin(response): 103 | response_selector=HtmlXPathSelector(response) 104 | next_link=response_selector.select('//div[@id="frs_list_pager"]/a[@class="next"]/@href') 105 | if next_link: 106 | print "[user]next_link:",next_link.extract()[0] 107 | link=baseurl+next_link.extract()[0] 108 | rePage=re.compile(r'pn=(\d+)') 109 | print "[user]link",link 110 | p=rePage.findall(link) 111 | print "rePage",p 112 | if p: 113 | page=int(p[0])/50+1 114 | print "dealing with page:%d"%(page) 115 | #test 116 | if page<=self.endpage and page>=self.startpage: 117 | yield Request(url=link,callback=self.parse) 118 | tie=response_selector.select(u'//div[contains(@class,"threadlist_text threadlist_title j_th_tit notStarList")]/a[contains(@class,"j_th_tit")]/@href') 119 | #print "ite",tie 120 | for item in tie.extract(): 121 | print "[user]tie",item 122 | yield Request(url=baseurl+item,callback=self.parse_tie) 123 | else: 124 | print "[user]checklogin failed" 125 | 126 | def parse_tie(self,response): 127 | print "[user] in parse_tie" 128 | response_selector=HtmlXPathSelector(response) 129 | yield self.get_it(response) 130 | 131 | szPage=response_selector.select(u'//li[@class="l_reply_num"]/span[@class="red"]/text()') 132 | if not szPage: 133 | print "[user] get page num failed" 134 | else: 135 | pages=int(szPage.extract()[1]) 136 | #test 137 | if pages>10: 138 | pages=10 139 | for i in range(2,pages+1): 140 | yield Request(url=response.url+"?pn=%d"%(i),callback=self.parse_others) 141 | 142 | def parse_others(self,response): 143 | print "[user] in parse_others" 144 | yield self.get_it(response) 145 | 146 | def get_it(self,response): 147 | print "[user] in get_item" 148 | item=BdItem() 149 | response_selector=HtmlXPathSelector(response) 150 | title=response_selector.select(u'//div[@id="j_core_title_wrap"]\ 151 | /div[contains(@class,"core_title")]/h1/text()').extract()[0] 152 | if len(title)>1: 153 | print "[user] parse tie title failed" 154 | item['turl']=response.url 155 | item['ttitle']=title[0] 156 | """ 157 | dirRe=re.compile(r"/p/(\d+)") 158 | pageRe=re.compile(r"pn=(\d+)") 159 | dirname=dirRe.findall(response.url)[0] 160 | page=pageRe.findall(response.url) 161 | if len(page) is 0: 162 | page=['1'] 163 | try: 164 | os.mkdir(dirname) 165 | except Exception as e: 166 | pass 167 | """ 168 | content=response_selector.select(u'//div[contains(@class,"d_post_content_main")]/div[contains(@class,"p_content_nameplate")]/cc/div/text()').extract() 169 | if len(content)==0: 170 | print "[user] get content failed." 171 | item['tresponse']=[] 172 | for text in content: 173 | item['tresponse'].append(text.encode("utf8")) 174 | return item 175 | -------------------------------------------------------------------------------- /bd/spiders/bdspider.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chengxiayan/BaiduSpider/6c47275de6385787ce97aa69a2f65952eedba9b5/bd/spiders/bdspider.pyc -------------------------------------------------------------------------------- /items.json: -------------------------------------------------------------------------------- 1 | [[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[, 2 | , 3 | , 4 | , 5 | , 6 | , 7 | , 8 | , 9 | , 10 | , 11 | , 12 | , 13 | , 14 | , 15 | , 16 | , 17 | , 18 | , 19 | , 20 | , 21 | , 22 | , 23 | , 24 | , 25 | , 26 | , 27 | , 28 | , 29 | , 30 | , 31 | , 32 | , 33 | , 34 | , 35 | , 36 | , 37 | , 38 | , 39 | , 40 | , 41 | , 42 | , 43 | , 44 | , 45 | , 46 | , 47 | , 48 | , 49 | , 50 | , 51 | , 52 | , 53 | , 54 | , 55 | , 56 | , 57 | , 58 | , 59 | , 60 | , 61 | , 62 | , 63 | , 64 | , 65 | , 66 | , 67 | , 68 | , 69 | , 70 | , 71 | [[[[[[[[{"ttitle": "\u5199", "tresponse": "E:\\C++\\file\\python\\bd\\3113171894\\1.html", "turl": "http://tieba.baidu.com/p/3113171894"}, 72 | {"ttitle": "\u3010", "tresponse": "E:\\C++\\file\\python\\bd\\3109993462\\1.html", "turl": "http://tieba.baidu.com/p/3109993462"}, 73 | {"ttitle": "\u3010", "tresponse": "E:\\C++\\file\\python\\bd\\2897621957\\1.html", "turl": "http://tieba.baidu.com/p/2897621957"}, 74 | {"ttitle": "\u3010", "tresponse": "E:\\C++\\file\\python\\bd\\3078991012\\1.html", "turl": "http://tieba.baidu.com/p/3078991012"}, 75 | {"ttitle": "\u3010", "tresponse": "E:\\C++\\file\\python\\bd\\3099447741\\1.html", "turl": "http://tieba.baidu.com/p/3099447741"}, 76 | {"ttitle": "\u3010", "tresponse": "E:\\C++\\file\\python\\bd\\1730333142\\1.html", "turl": "http://tieba.baidu.com/p/1730333142"}, 77 | {"ttitle": "\u3010", "tresponse": "E:\\C++\\file\\python\\bd\\3113169395\\1.html", "turl": "http://tieba.baidu.com/p/3113169395"}, 78 | {"ttitle": "\u3010", "tresponse": "E:\\C++\\file\\python\\bd\\3107459061\\1.html", "turl": "http://tieba.baidu.com/p/3107459061"}, 79 | {"ttitle": "\u3010", "tresponse": "E:\\C++\\file\\python\\bd\\2903219225\\1.html", "turl": "http://tieba.baidu.com/p/2903219225"}, 80 | {"ttitle": "\u3010", "tresponse": "E:\\C++\\file\\python\\bd\\3104657760\\1.html", "turl": "http://tieba.baidu.com/p/3104657760"}, 81 | {"ttitle": "=", "tresponse": "E:\\C++\\file\\python\\bd\\2993975348\\1.html", "turl": "http://tieba.baidu.com/p/2993975348"}, 82 | {"ttitle": "\u3010", "tresponse": "E:\\C++\\file\\python\\bd\\3109993462\\3.html", "turl": "http://tieba.baidu.com/p/3109993462?pn=3"}, 83 | {"ttitle": "\u3010", "tresponse": "E:\\C++\\file\\python\\bd\\3109993462\\2.html", "turl": "http://tieba.baidu.com/p/3109993462?pn=2"}, 84 | {"ttitle": "\u3010", "tresponse": "E:\\C++\\file\\python\\bd\\3107563042\\1.html", "turl": "http://tieba.baidu.com/p/3107563042"}, 85 | {"ttitle": "\u3010", "tresponse": "E:\\C++\\file\\python\\bd\\2897621957\\3.html", "turl": "http://tieba.baidu.com/p/2897621957?pn=3"}, 86 | {"ttitle": "\u3010", "tresponse": "E:\\C++\\file\\python\\bd\\2897621957\\2.html", "turl": "http://tieba.baidu.com/p/2897621957?pn=2"}, 87 | {"ttitle": "\u3010", "tresponse": "E:\\C++\\file\\python\\bd\\3099447741\\2.html", "turl": "http://tieba.baidu.com/p/3099447741?pn=2"}, 88 | {"ttitle": "\u3010", "tresponse": "E:\\C++\\file\\python\\bd\\3099447741\\3.html", "turl": "http://tieba.baidu.com/p/3099447741?pn=3"}, 89 | {"ttitle": "\u3010", "tresponse": "E:\\C++\\file\\python\\bd\\1730333142\\3.html", "turl": "http://tieba.baidu.com/p/1730333142?pn=3"}, 90 | {"ttitle": "\u3010", "tresponse": "E:\\C++\\file\\python\\bd\\1730333142\\2.html", "turl": "http://tieba.baidu.com/p/1730333142?pn=2"}, 91 | {"ttitle": "\u3010", "tresponse": "E:\\C++\\file\\python\\bd\\3078991012\\3.html", "turl": "http://tieba.baidu.com/p/3078991012?pn=3"}, 92 | {"ttitle": "0", "tresponse": "E:\\C++\\file\\python\\bd\\3046502147\\1.html", "turl": "http://tieba.baidu.com/p/3046502147"}, 93 | {"ttitle": "\u3010", "tresponse": "E:\\C++\\file\\python\\bd\\3097770573\\1.html", "turl": "http://tieba.baidu.com/p/3097770573"}, 94 | {"ttitle": "\u3010", "tresponse": "E:\\C++\\file\\python\\bd\\2903219225\\3.html", "turl": "http://tieba.baidu.com/p/2903219225?pn=3"}, 95 | {"ttitle": "\u3010", "tresponse": "E:\\C++\\file\\python\\bd\\2903219225\\2.html", "turl": "http://tieba.baidu.com/p/2903219225?pn=2"}, 96 | {"ttitle": "=", "tresponse": "E:\\C++\\file\\python\\bd\\2993975348\\3.html", "turl": "http://tieba.baidu.com/p/2993975348?pn=3"}, 97 | {"ttitle": "\u3010", "tresponse": "E:\\C++\\file\\python\\bd\\3107563042\\2.html", "turl": "http://tieba.baidu.com/p/3107563042?pn=2"}, 98 | {"ttitle": "=", "tresponse": "E:\\C++\\file\\python\\bd\\2993975348\\2.html", "turl": "http://tieba.baidu.com/p/2993975348?pn=2"}, 99 | {"ttitle": "\u3010", "tresponse": "E:\\C++\\file\\python\\bd\\3107459061\\3.html", "turl": "http://tieba.baidu.com/p/3107459061?pn=3"}, 100 | {"ttitle": "\u3010", "tresponse": "E:\\C++\\file\\python\\bd\\3107459061\\2.html", "turl": "http://tieba.baidu.com/p/3107459061?pn=2"}, 101 | {"ttitle": "\u3010", "tresponse": "E:\\C++\\file\\python\\bd\\3078991012\\2.html", "turl": "http://tieba.baidu.com/p/3078991012?pn=2"}, 102 | {"ttitle": "\u6c42", "tresponse": "E:\\C++\\file\\python\\bd\\3113088232\\1.html", "turl": "http://tieba.baidu.com/p/3113088232"}, 103 | {"ttitle": "\u6c42", "tresponse": "E:\\C++\\file\\python\\bd\\3112949765\\1.html", "turl": "http://tieba.baidu.com/p/3112949765"}, 104 | {"ttitle": "\u3010", "tresponse": "E:\\C++\\file\\python\\bd\\1908241808\\1.html", "turl": "http://tieba.baidu.com/p/1908241808"}, 105 | {"ttitle": "\u3010", "tresponse": "E:\\C++\\file\\python\\bd\\3105180548\\1.html", "turl": "http://tieba.baidu.com/p/3105180548"}, 106 | {"ttitle": "\u3010", "tresponse": "E:\\C++\\file\\python\\bd\\2569963501\\1.html", "turl": "http://tieba.baidu.com/p/2569963501"}, 107 | {"ttitle": "\u3010", "tresponse": "E:\\C++\\file\\python\\bd\\2585974407\\1.html", "turl": "http://tieba.baidu.com/p/2585974407"}, 108 | {"ttitle": "0", "tresponse": "E:\\C++\\file\\python\\bd\\3046502147\\3.html", "turl": "http://tieba.baidu.com/p/3046502147?pn=3"}, 109 | {"ttitle": "\u3010", "tresponse": "E:\\C++\\file\\python\\bd\\3097770573\\3.html", "turl": "http://tieba.baidu.com/p/3097770573?pn=3"}, 110 | {"ttitle": "\u3010", "tresponse": "E:\\C++\\file\\python\\bd\\3097770573\\2.html", "turl": "http://tieba.baidu.com/p/3097770573?pn=2"}, 111 | {"ttitle": "0", "tresponse": "E:\\C++\\file\\python\\bd\\3046502147\\2.html", "turl": "http://tieba.baidu.com/p/3046502147?pn=2"}, 112 | {"ttitle": "\u3010", "tresponse": "E:\\C++\\file\\python\\bd\\3103833248\\1.html", "turl": "http://tieba.baidu.com/p/3103833248"}, 113 | {"ttitle": "\u63a8", "tresponse": "E:\\C++\\file\\python\\bd\\2797778894\\1.html", "turl": "http://tieba.baidu.com/p/2797778894"}, 114 | {"ttitle": "\u3010", "tresponse": "E:\\C++\\file\\python\\bd\\3105657346\\1.html", "turl": "http://tieba.baidu.com/p/3105657346"}, 115 | {"ttitle": "\u8c01", "tresponse": "E:\\C++\\file\\python\\bd\\1795608648\\1.html", "turl": "http://tieba.baidu.com/p/1795608648"}, 116 | {"ttitle": "\u3010", "tresponse": "E:\\C++\\file\\python\\bd\\3028974400\\1.html", "turl": "http://tieba.baidu.com/p/3028974400"}, 117 | {"ttitle": "\u3010", "tresponse": "E:\\C++\\file\\python\\bd\\3075397007\\1.html", "turl": "http://tieba.baidu.com/p/3075397007"}, 118 | {"ttitle": "\u6c42", "tresponse": "E:\\C++\\file\\python\\bd\\2827949794\\1.html", "turl": "http://tieba.baidu.com/p/2827949794"}, 119 | {"ttitle": "\u3010", "tresponse": "E:\\C++\\file\\python\\bd\\1908241808\\3.html", "turl": "http://tieba.baidu.com/p/1908241808?pn=3"}, 120 | {"ttitle": "\u3010", "tresponse": "E:\\C++\\file\\python\\bd\\3105180548\\3.html", "turl": "http://tieba.baidu.com/p/3105180548?pn=3"}, 121 | {"ttitle": "\u3010", "tresponse": "E:\\C++\\file\\python\\bd\\3105180548\\2.html", "turl": "http://tieba.baidu.com/p/3105180548?pn=2"}, 122 | {"ttitle": "\u3010", "tresponse": "E:\\C++\\file\\python\\bd\\2585974407\\3.html", "turl": "http://tieba.baidu.com/p/2585974407?pn=3"}, 123 | {"ttitle": "\u7f51", "tresponse": "E:\\C++\\file\\python\\bd\\3084070413\\1.html", "turl": "http://tieba.baidu.com/p/3084070413"}, 124 | {"ttitle": "\u3010", "tresponse": "E:\\C++\\file\\python\\bd\\2585974407\\2.html", "turl": "http://tieba.baidu.com/p/2585974407?pn=2"}, 125 | {"ttitle": "\u7f51", "tresponse": "E:\\C++\\file\\python\\bd\\2777262547\\1.html", "turl": "http://tieba.baidu.com/p/2777262547"}, 126 | {"ttitle": "\u3010", "tresponse": "E:\\C++\\file\\python\\bd\\3103833248\\2.html", "turl": "http://tieba.baidu.com/p/3103833248?pn=2"}, 127 | {"ttitle": "\u3010", "tresponse": "E:\\C++\\file\\python\\bd\\1908241808\\2.html", "turl": "http://tieba.baidu.com/p/1908241808?pn=2"}, 128 | {"ttitle": "\u3010", "tresponse": "E:\\C++\\file\\python\\bd\\2569963501\\2.html", "turl": "http://tieba.baidu.com/p/2569963501?pn=2"}, 129 | {"ttitle": "\u3010", "tresponse": "E:\\C++\\file\\python\\bd\\1796724285\\1.html", "turl": "http://tieba.baidu.com/p/1796724285"}, 130 | {"ttitle": "\u63a8", "tresponse": "E:\\C++\\file\\python\\bd\\2797778894\\3.html", "turl": "http://tieba.baidu.com/p/2797778894?pn=3"}, 131 | {"ttitle": "\u3010", "tresponse": "E:\\C++\\file\\python\\bd\\2569963501\\3.html", "turl": "http://tieba.baidu.com/p/2569963501?pn=3"}, 132 | {"ttitle": "\u8c01", "tresponse": "E:\\C++\\file\\python\\bd\\1795608648\\3.html", "turl": "http://tieba.baidu.com/p/1795608648?pn=3"}, 133 | {"ttitle": "\u3010", "tresponse": "E:\\C++\\file\\python\\bd\\3028974400\\3.html", "turl": "http://tieba.baidu.com/p/3028974400?pn=3"}, 134 | {"ttitle": "\u3010", "tresponse": "E:\\C++\\file\\python\\bd\\3075397007\\3.html", "turl": "http://tieba.baidu.com/p/3075397007?pn=3"}, 135 | {"ttitle": "\u6c42", "tresponse": "E:\\C++\\file\\python\\bd\\2827949794\\3.html", "turl": "http://tieba.baidu.com/p/2827949794?pn=3"}, 136 | {"ttitle": "\u6c42", "tresponse": "E:\\C++\\file\\python\\bd\\2827949794\\2.html", "turl": "http://tieba.baidu.com/p/2827949794?pn=2"}, 137 | {"ttitle": "\u3010", "tresponse": "E:\\C++\\file\\python\\bd\\3075397007\\2.html", "turl": "http://tieba.baidu.com/p/3075397007?pn=2"}, 138 | {"ttitle": "\u3010", "tresponse": "E:\\C++\\file\\python\\bd\\3028974400\\2.html", "turl": "http://tieba.baidu.com/p/3028974400?pn=2"}, 139 | {"ttitle": "\u8c01", "tresponse": "E:\\C++\\file\\python\\bd\\1795608648\\2.html", "turl": "http://tieba.baidu.com/p/1795608648?pn=2"}, 140 | {"ttitle": "\u7f51", "tresponse": "E:\\C++\\file\\python\\bd\\2777262547\\2.html", "turl": "http://tieba.baidu.com/p/2777262547?pn=2"}, 141 | {"ttitle": "\u63a8", "tresponse": "E:\\C++\\file\\python\\bd\\2797778894\\2.html", "turl": "http://tieba.baidu.com/p/2797778894?pn=2"}, 142 | {"ttitle": "\u7f51", "tresponse": "E:\\C++\\file\\python\\bd\\3084070413\\2.html", "turl": "http://tieba.baidu.com/p/3084070413?pn=2"}, 143 | {"ttitle": "\u7f51", "tresponse": "E:\\C++\\file\\python\\bd\\3084070413\\3.html", "turl": "http://tieba.baidu.com/p/3084070413?pn=3"}, 144 | {"ttitle": "\u3010", "tresponse": "E:\\C++\\file\\python\\bd\\1796724285\\3.html", "turl": "http://tieba.baidu.com/p/1796724285?pn=3"}, 145 | {"ttitle": "\u3010", "tresponse": "E:\\C++\\file\\python\\bd\\3009463458\\1.html", "turl": "http://tieba.baidu.com/p/3009463458"}, 146 | {"ttitle": "\u54ea", "tresponse": "E:\\C++\\file\\python\\bd\\2727926912\\1.html", "turl": "http://tieba.baidu.com/p/2727926912"}, 147 | {"ttitle": "\u3010", "tresponse": "E:\\C++\\file\\python\\bd\\1796724285\\2.html", "turl": "http://tieba.baidu.com/p/1796724285?pn=2"}, 148 | {"ttitle": "\u3010", "tresponse": "E:\\C++\\file\\python\\bd\\3009463458\\2.html", "turl": "http://tieba.baidu.com/p/3009463458?pn=2"}, 149 | {"ttitle": "\u3010", "tresponse": "E:\\C++\\file\\python\\bd\\3009463458\\3.html", "turl": "http://tieba.baidu.com/p/3009463458?pn=3"}, 150 | {"ttitle": "\u54ea", "tresponse": "E:\\C++\\file\\python\\bd\\2727926912\\3.html", "turl": "http://tieba.baidu.com/p/2727926912?pn=3"}, 151 | {"ttitle": "\u54ea", "tresponse": "E:\\C++\\file\\python\\bd\\2727926912\\2.html", "turl": "http://tieba.baidu.com/p/2727926912?pn=2"}] -------------------------------------------------------------------------------- /pattens.txt: -------------------------------------------------------------------------------- 1 | 0000年的母系氏族 2 | 11处特工皇妃 3 | 18岁给我一个姑娘 4 | 1980年代的爱情 5 | 1988:我想和这个世界谈谈 6 | 1995-2005夏至未至 7 | 1Q84 8 | 2012·末夜 9 | 2050年的母系氏族 10 | 7-ELEVEN之恋 11 | 7王圣钥系列 12 | A Game of Thrones 13 | A Gateway to Sindarin 14 | ABC谋杀案 15 | At the Mountains of Madness 16 | Atlas of Middle-earth 17 | Blood X Blood 18 | Codex Seraphinianus 19 | Coraline 20 | Fate/Zero Vol.1 [第四次圣杯战争秘话] 21 | Gardens of the Moon 22 | George R. R. Martin's A Game of Thrones 4-Book Boxed Set 23 | G小调进行曲 24 | Harry Potter Hardcover Box Set 25 | Hiccup: How to Train Your Dragon 26 | Hunger Games Boxed Set 27 | Jolies ténèbres 28 | KAO,被潜了! 29 | Last Argument of Kings 30 | Mouse Guard Belly of the Beast 31 | NO GAME NO LIFE 游戏人生 32 | RDG1 濒危物种少女 33 | River of Stars 34 | Song of Ice and Fire Series 5Copy Boxed Set UK Edition 35 | Stardust 36 | THE LORD OF THE RINGS 37 | The Book of Lost Things 38 | The Chronicles of Narnia Boxed Set 39 | The City and the City 40 | The Dream Hunters 41 | The Earthsea Quartet 42 | The Fellowship of the Ring 43 | The George R.R. Martin Song Of Ice and Fire Hardcover Box Set featuring A Game of Thrones, A Clash of Kings, A Storm of Swords, and A Feast for Crows 44 | The Hedge Knight 45 | The Hobbit: An Unexpected Journey - Annual 46 | The Last Wish 47 | The Lord of the Rings 48 | The Mists of Avalon 49 | The Mortal Instruments 50 | The Night Circus 51 | The Ocean at the End of the Lane 52 | The Once and Future King 53 | The Sandman Vol 54 | The Two Towers 55 | The Winds of Winter 56 | The Witcher 57 | Tree and Leaf 58 | Unfinished Tales 59 | Wicked 60 | Wolves In The Walls 61 | X的悲剧 62 | ZOO 63 | ab日记 64 | 阿Q正传 65 | 阿巴拉岛 66 | 阿布霍森 67 | 阿尔萨斯:巫妖王的崛起 68 | 阿飞幻想 69 | 阿拉桑雄狮 70 | 阿麦从军 71 | 阿努比斯之门 72 | 阿特拉斯耸耸肩 73 | 阿瓦隆之枪 74 | 阿修罗 75 | 阿宅的奇幻事务所 76 | 爱尔兰咖啡 77 | 爱就这么简单 78 | 爱伦.坡暗黑故事全集 79 | 爱莫能弃 80 | 爱你,就算全世界与我为敌 81 | 爱你,是我做过最好的事 82 | 爱情笔记 83 | 爱情来了你就上 84 | 爱情没那么美好 85 | 爱如指间沙 86 | 爱上明晓溪 87 | 爱与乐的彼岸 88 | 爱与痛的边缘 89 | 安德的游戏 90 | 安吉拉·卡特的精怪故事集 91 | 安珀九王子 92 | 暗黑童话 93 | 傲风 94 | 傲风1·光芒大陆Ⅱ 95 | 傲风2·北境放逐之地Ⅱ 96 | 傲慢与偏见 97 | 傲世九重天 98 | 奥伯龙之手 99 | 奥术神座 100 | 奥汀的祝福 101 | 八百万种死法 102 | 八月未央 103 | 巴别塔之犬 104 | 巴黎没有摩天轮 105 | 巴黎圣母院 106 | 霸王别姬 107 | 白痴 108 | 白发皇妃 109 | 白鹿原 110 | 白马啸西风 111 | 白色城堡 112 | 白色群像 113 | 白羊与狮子 114 | 白夜灵异事件簿 115 | 白夜行 116 | 白银时代 117 | 白云苍狗 118 | 白昼的星光 119 | 百鬼夜行 120 | 百年孤独 121 | 半生缘 122 | 扮鬼脸 123 | 包法利夫人 124 | 薄荷的诱惑 125 | 薄荷荼靡梨花白 126 | 薄暮晨光 127 | 宝珠诡话 128 | 宝珠诡话之翡翠小人 129 | 宝珠鬼话之锁麒麟 130 | 暴君,我来自军情9处 131 | 悲惨世界 132 | 悲观主义的花朵 133 | 悲伤逆流成河 134 | 北京法源寺 135 | 北京小兽 136 | 北京,北京 137 | 被时光掩埋的秘密 138 | 被窝是青春的坟墓 139 | 被遗忘的时光 140 | 被置换的孩子 141 | 彼爱无岸 142 | 彼岸花 143 | 彼得潘 144 | 彼方之旅 145 | 笔灵 146 | 笔冢随录 147 | 笔冢随录·生事如转蓬 148 | 毕业八年,我重逢了高中的校花 149 | 毕业后,我们裸婚 150 | 毕业那天我们一起失恋 151 | 闭起双眼你会挂念谁 152 | 碧奴 153 | 碧血剑 154 | 碧甃沉 155 | 边城 156 | 边缘少年 157 | 变化的位面 158 | 变身 159 | 变形记 160 | 别的声音,别的房间 161 | 别离歌 162 | 别拿穿越不当工作 163 | 别相信任何人 164 | 别样的江湖 165 | 宾克的魔法 166 | 濒死的地球 167 | 冰风谷 168 | 冰火魔厨 169 | 冰与火之歌 170 | 波多里诺 171 | 波斯少年 172 | 波西.杰克逊 173 | 玻璃球游戏 174 | 博尔赫斯小说集 175 | 搏击俱乐部 176 | 不辞冰雪为卿热 177 | 不存在的女儿 178 | 不存在的骑士 179 | 不负如来不负卿 180 | 不羁的风 181 | 不能承受的生命之轻 182 | 不能没有你 183 | 不怕狼心如铁 184 | 不如去死 185 | 不如,我们重新来过 186 | 不死灵咒-驭灵主-上卷 187 | 不朽 188 | 卜案 189 | 布拉格魔像 190 | 布莱克伍德庄园 191 | 布鲁克林有棵树 192 | 步步惊心 193 | 步步生莲 194 | 步天歌 195 | 部落的暗影:沃金 196 | 猜火车 197 | 彩虹的重力 198 | 残影 199 | 灿烂千阳 200 | 沧海 201 | 沧浪之水 202 | 藏獒 203 | 藏地密码 204 | 藏海花 205 | 草祭 206 | 草样年华 207 | 曾许诺 208 | 曾许诺·殇 209 | 曾有一个人,爱我如生命 210 | 茶花女 211 | 查布克夫人的画像 212 | 查理九世 213 | 查令十字街84号 214 | 查特莱夫人的情人 215 | 缠绵 216 | 长安汉月 217 | 长安幻夜 218 | 长安乱 219 | 长大 220 | 长恨歌 221 | 长老 222 | 长裙过踝半厘米 223 | 长生 224 | 长生界 225 | 长相思 226 | 肠子 227 | 超级教师 228 | 尘埃落定 229 | 尘埃星球 230 | 尘缘 231 | 沉寂的星球 232 | 沉落的黄昏 233 | 沉默的羔羊 234 | 沉香如屑 235 | 沉香豌 236 | 陈二狗的妖孽人生 237 | 宸宫 238 | 晨曦之雾 239 | 成都,今夜请将我遗忘 240 | 成全了自己的碧海蓝天 241 | 城邦暴力团 242 | 城堡 243 | 城南旧事 244 | 城外的月光 245 | 橙红年代 246 | 吃南瓜的人 247 | 池袋西口公园 248 | 赤色黎明 249 | 炽恋物语 250 | 仇恨之轮 251 | 丑人 252 | 初夏荷花时期的爱情 253 | 除了我你还能爱谁 254 | 厨房 255 | 楚留香传奇 256 | 处女座:完美年华初相见 257 | 穿过锁孔的风 258 | 穿条纹衣服的男孩 259 | 穿越时空之错爱唐朝 260 | 穿越时空之绝色神偷 261 | 穿越时空之生死恋 262 | 穿越夜空的疯狂旅行 263 | 穿越与反穿越 264 | 穿越之天雷一部 265 | 穿越之武林怪传 266 | 传奇 267 | 船到桥头自然直 268 | 窗边的小豆豆 269 | 窗灯 270 | 吹不散眉弯 271 | 春秋大梦 272 | 春宴 273 | 春莺啭 274 | 纯净 275 | 纯真博物馆 276 | 慈悲城 277 | 此间的少年 278 | 此心无垠 279 | 刺客后传 280 | 刺客奇爱历险 281 | 刺客正传 282 | 刺猬的优雅 283 | 匆匆那年 284 | 从零开始 285 | 从你的全世界路过 286 | 篡清 287 | 寸芒 288 | 错嫁良缘之后宫疑云 289 | 错嫁良缘之洗冤录 290 | 错嫁良缘之一代军师 291 | 达摩流浪者 292 | 达·芬奇密码 293 | 打喷嚏 294 | 打拼:六兄弟的血色往事 295 | 大爱晚成 296 | 大地之灯 297 | 大法 298 | 大教堂 299 | 大猫儿的TT奋斗史 300 | 大魔法师 301 | 大漠苍狼 302 | 大漠荒颜 303 | 大漠情殇 304 | 大漠谣 305 | 大秦帝国 306 | 大师和玛格丽特 307 | 大唐后妃传 308 | 大唐明月 309 | 大唐女法医·帝京卷 310 | 大唐女法医·江南卷 311 | 大象的眼泪 312 | 大雪满刀弓 313 | 大约是爱 314 | 单恋 315 | 弹痕 316 | 蛋白质女孩 317 | 当尼采哭泣 318 | 当时明月在 319 | 当我们谈论爱情时我们在谈论什么 320 | 当与子归 321 | 刀锋 322 | 岛 323 | 到开封府混个差事 324 | 盗妃天下 325 | 盗墓笔记 326 | 盗情 327 | 道可道 328 | 道连·葛雷的画像 329 | 道者无心 330 | 德伯家的苔丝 331 | 德川家康 332 | 德古拉家族日记 333 | 德米安 334 | 灯火阑珊处 335 | 登云 336 | 等风来 337 | 等一个人咖啡 338 | 地疤 339 | 地海彼岸 340 | 地海传奇 341 | 地海孤雏 342 | 地海古墓 343 | 地海故事集 344 | 地海六部曲 345 | 地海奇风 346 | 地火明夷 347 | 地师 348 | 地下城主指南 349 | 地下室 350 | 地狱 351 | 地狱的第19层 352 | 地狱公寓 353 | 地狱笑星:暴牙小鬼讲冷笑话 354 | 帝都赋 355 | 帝国 356 | 帝国的誓言:亚拉腊山的阴影. 357 | 帝皇书 358 | 帝凰 359 | 帝台娇 360 | 帝王妻 361 | 帝王业 362 | 第八日的蝉 363 | 第二十二条军规 364 | 第九个寡妇 365 | 第七天 366 | 第三谎言 367 | 第三种爱情 368 | 第十三个故事 369 | 第一次的亲密接触 370 | 第一法则 371 | 第一皇妃 372 | 第一炉香 373 | 蒂凡尼的早餐 374 | 踮脚张望的时光 375 | 殿上欢 376 | 殿堂壁画-中国美术全集 377 | 顶级红娘 378 | 东方快车谋杀案 379 | 东方云梦谭 380 | 东宫 381 | 东晋妖异谭 382 | 东京奇谭集 383 | 东京异闻 384 | 东霓 385 | 东倾记·神启 386 | 东倾记·啸世 387 | 动物农场 388 | 动物凶猛 389 | 动物庄园 390 | 都怪时光太动听 391 | 都市风水师 392 | 都市妖奇谈 393 | 斗罗大陆 394 | 斗破苍穹 395 | 毒 396 | 毒笑小说 397 | 独步天下 398 | 独闯天涯 399 | 独角兽之兆 400 | 杜拉拉 401 | 多情剑客无情剑 402 | 多田便利屋 403 | 堕落天使 404 | 娥媚 405 | 额尔古纳河右岸 406 | 恶魔法则 407 | 恶魔呼唤 408 | 恶魔事典 409 | 恶魔之魂 410 | 恶童日记 411 | 恶意 412 | 耳洞 413 | 二鬼子李富贵 414 | 二号首长 415 | 二人证据 416 | 二三事 417 | 发条橙 418 | 法老的宠妃 419 | 法老的诅咒 420 | 翻译官 421 | 凡人修仙传 422 | 繁花 423 | 反西游记 424 | 梵歌引.世间月 425 | 梵事进化札记 426 | 房客别这样 427 | 放弃你,是我做过最勇敢的事 428 | 放弃你,下辈子吧 429 | 放学后 430 | 飞狐外传 431 | 飞升之后 432 | 飞天 433 | 步步惊心 434 | 妃子血 435 | 非我倾城 436 | 非仙勿扰 437 | 废柴兔神养成法 438 | 废都 439 | 废物们 440 | 分身 441 | 分手清单 442 | 分手信 443 | 坟场之书 444 | 焚舟纪 445 | 粉红四年 446 | 丰臣公主 447 | 丰乳肥臀 448 | 风港 449 | 风虎北望 450 | 风槿如画 451 | 风玫瑰 452 | 风声 453 | 风烟引 454 | 风之影 455 | 风住尘香 456 | 风姿物语 457 | 封神演义 458 | 疯狂植物园 459 | 凤霸九天 460 | 凤囚凰 461 | 凤求凰 462 | 凤血 463 | 凤影空来 464 | 凤再上 465 | 佛本是道 466 | 扶摇皇后 467 | 芙蓉镇 468 | 浮沉 469 | 浮珑世界 470 | 浮生物语 471 | 浮生物语外传 472 | 浮世浮城 473 | 浮世织香录 474 | 福尔摩斯探案全集 475 | 付丧神古道具店 476 | 复活 477 | 改尽江山旧 478 | 柑橘与柠檬啊 479 | 钢铁是怎样炼成的 480 | 钢铁心 481 | 高老头 482 | 搞鬼 483 | 告白 484 | 告别天堂 485 | 告别薇安 486 | 告别圆舞曲 487 | 告诉大雄我爱她 488 | 歌尽桃花 489 | 歌门鬼城 490 | 革命之路 491 | 格列佛游记 492 | 给我一支烟 493 | 公主贵性 494 | 公子无耻 495 | 功夫 496 | 宫 497 | 宫略 498 | 孤城闭 499 | 孤独及其所创造的 500 | 孤芳不自赏 501 | 姑获鸟之夏 502 | 古堡里的月亮公主 503 | 古村妖物志 504 | 古董局中局 505 | 古董衣情缘 506 | 骨力·风神:张旺白描作品集 507 | 顾十八娘 508 | 寡人有疾 509 | 乖宠 510 | 怪你过分美丽 511 | 怪谈精选集 512 | 怪屋女孩 513 | 怪物 514 | 怪物大全 515 | 怪笑小说 516 | 关于莉莉周的一切 517 | 官居一品 518 | 光明皇帝 519 | 光明王 520 | 光明与磊落 521 | 光明之子 522 | 光年 523 | 光荣日 524 | 光逝 525 | 光与专属少年 526 | 光之子 527 | 广岛之恋 528 | 归离 529 | 诡异档案 530 | 鬼差 531 | 鬼吹灯 532 | 鬼叫魂之阴阳先生 533 | 鬼妈妈 534 | 鬼趣图 535 | 鬼谭草纸 536 | 贵族 537 | 国境以南 太阳以西 538 | 过把瘾就死 539 | 过客,匆匆 540 | 过于喧嚣的孤独 541 | 哈利·波特 542 | 哈扎尔辞典 543 | 骸骨之城 544 | 海边的卡夫卡 545 | 海伯利安 546 | 海底两万里 547 | 海上牧云记 548 | 海棠依旧: 知否? 知否? 应是绿肥红瘦 549 | 海妖 550 | 寒武再临 551 | 汗血宝马 552 | 憾生 553 | 豪门绝恋 554 | 好笑的爱 555 | 好兆头 556 | 何处再有终南山 557 | 何须浅碧轻红色 558 | 何以笙箫默 559 | 和空姐同居的日子 560 | 和你一起住下去 561 | 河童 562 | 河图洛书 563 | 荷包里的单人床 564 | 赫拉迪姆 565 | 鹤唳华亭 566 | 黑暗的祝福 567 | 黑暗精灵三部曲 568 | 黑暗学徒 569 | 黑暗之劫 570 | 黑暗之塔 571 | 黑道悲情 572 | 黑道学生 573 | 黑公主Ⅴ·圣安息日 574 | 黑色佣兵团 575 | 黑铁时代 576 | 黑笑小说 577 | 黑夜给了我黑色的眼睛 578 | 黑夜鸟之黑夜陨歌 579 | 黑质三部曲 580 | 嗨,我的男人 581 | 很纯很暧昧 582 | 红尘有幸识丹青 583 | 红拂夜奔 584 | 红了樱桃,绿了芭蕉 585 | 红楼梦 586 | 红玫瑰与白玫瑰 587 | 红色天空红色海 588 | 红鞋 589 | 红颜乱 590 | 红与黑 591 | 洪荒孤女 592 | 侯卫东官场笔记 593 | 后宫·如懿传 594 | 后宫·甄嬛传 595 | 呼兰河传 596 | 呼啸山庄 597 | 忽而今夏 598 | 忽然七日 599 | 狐说 600 | 狐者异 601 | 胡林的儿女 602 | 湖边凶杀案 603 | 蝴蝶风暴 604 | 蝴蝶梦 605 | 护花铃 606 | 花季雨季 607 | 花间 608 | 花间提壶方大厨 609 | 花镜 610 | 花千骨 611 | 花弦月·妖裹行天 612 | 花雨青春酷语 613 | 华莱士人鱼 614 | 华丽诱惑·穿越到后宫做妃子 615 | 华胥引 616 | 坏事多磨 617 | 欢乐颂 618 | 欢乐英雄 619 | 欢天喜帝 620 | 幻城 621 | 幻兽物语 622 | 幻兽·龙事典 623 | 幻味奇缘 624 | 幻夜 625 | 幻影书 626 | 荒村公寓 627 | 荒人手记 628 | 荒原 629 | 荒原狼 630 | 荒原雪 631 | 皇帝魂 632 | 皇后策 633 | 皇后出墙记 634 | 皇后刘黑胖 635 | 皇家幼儿园 636 | 黄河鬼棺全集 637 | 黄昏使者 638 | 黄金时代 639 | 黄金之王 640 | 黄袍魔王 641 | 凰权 642 | 晃晃悠悠 643 | 回到明朝当王爷 644 | 回国驯火记 645 | 回声 646 | 回忆、悲伤与荆棘 647 | 会说话的骷髅 648 | 会有天使替我爱你 649 | 昏前婚后 650 | 混沌宫廷 651 | 活不明白 652 | 活着 653 | 祸国 654 | 霍比特人 655 | 霍比特人官方年历 656 | 霍格沃茨的中国留学生-哈利波特 657 | 霍乱时期的爱情 658 | 饥饿游戏 659 | 基地 660 | 基督山伯爵 661 | 吉祥纹莲花楼·玄武 662 | 吉祥纹莲花楼·朱雀 663 | 极地恶灵 664 | 极乐世界的下水道 665 | 极品家丁 666 | 计数器少年 667 | 记录的地平线 668 | 记忆之岛 669 | 寄住在你眼里的烟火 670 | 寂静流年遍开花 671 | 寂寞空庭春欲晚 672 | 佳期如梦 673 | 家 674 | 家电人生 675 | 家守绮谭 676 | 家有妖狐 677 | 假如明天来临 678 | 嫁给林安深 679 | 间客 680 | 简爱 681 | 剑歌 682 | 剑桥倚天屠龙史 683 | 江湖遍地卖装备 684 | 江湖不挨刀 685 | 江湖路弯弯 686 | 江湖美男谱 687 | 江湖天很晴 688 | 江湖异闻录 689 | 江南恨 690 | 江南外传 691 | 江山不夜 692 | 江山美人谋 693 | 江山如画 694 | 江山为聘 695 | 将嫁 696 | 将军在上 697 | 将夜 698 | 降灵家族 699 | 骄阳似我 700 | 教父 701 | 结爱·异客逢欢 702 | 结缘 703 | 姐姐的守护者 704 | 檞寄生 705 | 芥子 706 | 金阁寺 707 | 金陵女子 708 | 金陵十三钗 709 | 金色梦乡 710 | 金锁记 711 | 金屋恨 712 | 金字塔 713 | 金樽幽月 714 | 锦瑟江山之九重春色 715 | 锦绣未央 716 | 锦绣缘 717 | 锦衣夜行 718 | 瑾年绝恋.醉流苏 719 | 尽在不言中 720 | 禁忌之地 721 | 京华烟云 722 | 荆棘鸟 723 | 荆棘王 724 | 荆棘之城 725 | 精灵宝钻 726 | 精灵守护者 727 | 景年知几时 728 | 静候佳音 729 | 镜中女孩 730 | 镜·归虚 731 | 镜·龙战 732 | 镜·辟天 733 | 镜·破军 734 | 镜·神寂 735 | 镜·双城 736 | 镜·织梦者 737 | 九鼎记 738 | 九歌.绿衣 739 | 九故事 740 | 九国夜雪·寻梦人 741 | 九州幻想·贲书铁券 742 | 九州幻想·风与花的秋天 743 | 九州幻想·四年 744 | 九州幻想·铁甲依然 745 | 九州志 746 | 九州志·葵花 747 | 九州志·葵花·碧之孤戾 748 | 九州志·葵花·玄之殇陨 749 | 九州志·葵花·紫之苦寂 750 | 九州志·龙渊绘卷 VOL. 751 | 九州志·王朝启示录·白虎的崛起 752 | 九州志·王朝启示录·豹与狼 753 | 九州志·王朝启示录·复仇的姬武神 754 | 九州志·王朝启示录·狮子咆哮 755 | 九州志Ⅱ 756 | 九州志Ⅲ 757 | 九州·暗月将临 758 | 九州·白雀神龟 759 | 九州·创造古卷 760 | 九州·刺客王朝·葵 761 | 九州·海潮三十年 762 | 九州·黑暗之子 763 | 九州·斛珠夫人 764 | 九州·澜州战争 765 | 九州·龙痕 766 | 九州·龙渊 767 | 九州·轮回之悸 768 | 九州·逆旅 769 | 九州·缥缈录 770 | 九州·缥缈录VI·豹魂 771 | 九州·缥缈录V·一生之盟 772 | 九州·缥缈录Ⅱ·苍云古齿 773 | 九州·缥缈录Ⅲ·天下名将 774 | 九州·缥缈录Ⅳ·辰月之征 775 | 九州·秋林箭 776 | 九州·丧乱之瞳 777 | 九州·殇翼 778 | 九州·死者夜谈 779 | 九州·天光云影·风云会 780 | 九州·铁浮图 781 | 九州·无尽长门 782 | 九州·戏中人 783 | 九州·星痕 784 | 九州·雪焚城 785 | 九州·英雄 786 | 九州·羽传说 787 | 九州·云之彼岸 788 | 九州·朱颜记 789 | 酒神 790 | 狙魔手记 791 | 局外人 792 | 菊花香 793 | 橘生淮南·暗恋 794 | 橘子不是唯一的水果 795 | 巨龙的黄昏 796 | 巨龙的颂歌 797 | 巨龙时代 798 | 飓光志第一卷:王者之路 799 | 决战在即 800 | 绝代双骄 801 | 绝色赌妃 802 | 绝世唐门 803 | 爵迹•燃魂书 804 | 军火皇后 805 | 君生我已老 806 | 卡尔维诺文集 807 | 卡夫卡小说全集 808 | 卡拉马佐夫兄弟 809 | 卡拉之狼 810 | 卡徒 811 | 开到荼縻 812 | 开到荼蘼 813 | 看不见的城市 814 | 看上去很美 815 | 可爱的骨头 816 | 可不可以不嫁人 817 | 可惜不是你 818 | 克苏鲁神话 819 | 坑你三生三世 820 | 空暗女王 821 | 空速星痕 822 | 空之境界 823 | 孔雀森林 824 | 孔雀王 825 | 恐怖王子 826 | 恐怖无距离 827 | 枯枝败叶 828 | 跨过千年来爱你 829 | 狂人日记 830 | 狂神 831 | 葵花走失在 832 | 魁拔 833 | 魁拔之书 834 | 昆仑 835 | 鲲与虫 836 | 来不及说我爱你 837 | 来来往往 838 | 兰陵皇妃 839 | 兰陵缭乱 840 | 蓝另一种蓝 841 | 蓝色翠鸟倒计时 842 | 蓝宇 843 | 澜本嫁衣 844 | 狼的诱惑 845 | 狼群 846 | 狼图腾 847 | 琅琊榜 848 | 朗读者 849 | 老人与海 850 | 老师放开阿Sir! 851 | 烙印 852 | 烙印勇士 853 | 了不起的盖茨比 854 | 雷蒙德·卡佛短篇小说自选集 855 | 冷宫 856 | 冷月如霜 857 | 离魂 858 | 黎明枭歌 859 | 李可乐抗拆记 860 | 李逵日记 861 | 理工大风流往事 862 | 历史的尘埃 863 | 历史学家 864 | 利维坦号战记 865 | 沥川往事 866 | 莉芮尔 867 | 连城诀 868 | 怜香惜玉 869 | 莲花 870 | 炼金术士 871 | 恋人 872 | 良辰讵可待 873 | 良言写意 874 | 两只前夫一台戏 875 | 亮剑 876 | 烈火魔尘 877 | 烈火如歌 878 | 猎命师传奇 879 | 猎魔士 880 | 猎人行 881 | 猎物者 882 | 裂锦 883 | 临界·爵迹 884 | 灵魂骑士 885 | 零下一度 886 | 刘氏女 887 | 流枫川志 888 | 流光夜雪 889 | 流金岁月 890 | 流浪的面包树 891 | 流浪地球 892 | 流木 893 | 流年明媚·相思谋 894 | 流水迢迢 895 | 流星之绊 896 | 流星族休闲花园丛书第十五辑 897 | 流星·蝴蝶·剑 898 | 流血的仕途 899 | 流云尼玛 900 | 琉璃美人煞 901 | 六弄咖啡馆 902 | 龙凤 903 | 龙谷探秘-狂神 904 | 龙龙龙 905 | 龙枪编年史 906 | 龙枪传承 907 | 龙枪传奇 908 | 龙日 909 | 龙文身的女孩 910 | 龙与地下城 911 | 龙缘 912 | 龙族 913 | 楼下的房客 914 | 鲁滨逊漂流记 915 | 鲁格纳城堡 916 | 陆犯焉识 917 | 陆小凤传奇 918 | 鹿鼎记 919 | 鹿男 920 | 路鸟 921 | 鸾,我的前半生,我的后半生 922 | 乱世铜炉 923 | 罗德斯岛战记 924 | 罗佛兰登 925 | 罗杰疑案 926 | 罗生门 927 | 萝铃的魔力 928 | 洛丽塔 929 | 洛神红茶 930 | 骆驼祥子 931 | 落花时节又逢君 932 | 落落清欢 933 | 旅人之忆 934 | 绿红妆之军营穿越 935 | 绿林记 936 | 绿毛水怪 937 | 绿物语 938 | 马克思的社会形态理论与当代社会主义 939 | 玛莉的音乐盒 940 | 麦琪的礼物 941 | 麦田里的守望者 942 | 蛮荒记 943 | 蛮王柯南 944 | 满朝文武爱上我 945 | 满身风雨你从海上来 946 | 曼珠沙华 947 | 蔓蔓青萝 948 | 漫长的告别 949 | 慢 950 | 芒果街上的小屋 951 | 莽荒纪 952 | 猫和少年魔笛手 953 | 猫婆婆 954 | 猫头鹰王国 955 | 猫武士 956 | 猫武士二部曲之 957 | 茅山后裔 958 | 冒牌大英雄 959 | 冒死记录 960 | 帽子里的天空 961 | 没有人给他写信的上校 962 | 没有色彩的多崎作和他的巡礼之年 963 | 没有烟总有花 964 | 玫瑰的故事 965 | 玫瑰的名字 966 | 玫瑰帝国 967 | 眉姐 968 | 湄澜池 969 | 每晚一个离奇故事之惊悚夜 970 | 美国众神 971 | 美丽新世界 972 | 美人天下之囚宫 973 | 美人凶猛 974 | 美人在侧花满堂 975 | 美食狩猎人 976 | 媚公卿 977 | 媚心计 978 | 魅灵之书 979 | 魅生 980 | 梦回大清 981 | 梦里花落知多少 982 | 梦落芳华 983 | 梦三生·永劫之花 984 | 梦色十夜 985 | 梦书之城 986 | 迷宫街物语 987 | 迷宫之屋 988 | 迷神记 989 | 迷雾围城 990 | 迷雾之子 991 | 迷侠记 992 | 迷行记 993 | 米 994 | 米娅,快跑 995 | 秘境之匣 996 | 秘密 997 | 眠 998 | 面包树出走了 999 | 面包树上的女人 1000 | 面纱 1001 | 喵.就是选定你 1002 | 苗疆蛊事 1003 | 妙不可言 1004 | 名草有主 1005 | 名侦探的守则 1006 | 明朝那些事儿 1007 | 明朝五好家庭 1008 | 明日歌 1009 | 明月照人来 1010 | 明:1扬帆,2大风 1011 | 摩合罗传 1012 | 魔法的颜色 1013 | 魔法帝国 1014 | 魔法灰姑娘 1015 | 魔法活船 1016 | 魔法生活 1017 | 魔法师 1018 | 魔法之源 1019 | 魔符 1020 | 魔幻家族 1021 | 魔戒 1022 | 魔戒电影设定圣典 1023 | 魔戒前传 1024 | 魔是魔法的魔 1025 | 魔兽剑圣异界纵横 1026 | 魔兽领主 1027 | 魔兽世界 第一部 1028 | 魔兽世界:黑暗之门 1029 | 魔印人 1030 | 末路相逢 1031 | 末日发动机 1032 | 陌上君如玉 1033 | 莫雷尔的发明 1034 | 莫失莫忘 1035 | 墨水死 1036 | 墨水心 1037 | 墨水血 1038 | 眸倾天下 1039 | 木槿花西月锦绣 1040 | 木子美性爱日记 1041 | 牧羊少年奇幻之旅 1042 | 暮光之城-豪华珍藏版 1043 | 暮光之城·新月 1044 | 暮色 1045 | 穆斯林的葬礼 1046 | 哪瓣洋葱不流泪 1047 | 哪一年让一生改变 1048 | 那村那人那傻瓜 上 1049 | 那么,爱呢? 1050 | 那小子真帅 1051 | 那些爱情教我的事 1052 | 那些过去的和将要到来的 1053 | 那些回不去的年少时光 1054 | 那些年,我们一起追的女孩 1055 | 那些牛人,那些糗事 1056 | 那些生命中温暖而美好的事情 1057 | 那些忧伤的年轻人 1058 | 那些有钱的年轻人 1059 | 那一杯咖啡的爱情 1060 | 那一场呼啸而过的青春 1061 | 呐喊 1062 | 纳尼亚传奇 1063 | 纳尼亚王国传奇 1064 | 奈何萌徒是大神 1065 | 南音 1066 | 南总里见八犬传 1067 | 尼罗河上的惨案 1068 | 你的天涯我的海角 1069 | 你好,旧时光 1070 | 你好,忧愁 1071 | 你若不来我怎敢老去 1072 | 你是我最好的遇见 1073 | 你是我左上角的心跳 1074 | 你一生的故事 1075 | 你在天堂里遇见的5个人 1076 | 你在天堂里遇见的五个人 1077 | 你在我的左手边 1078 | 妳是我学生又怎样 1079 | 逆流河 1080 | 逆流河,托梅克 1081 | 逆流千年,一世倾城 1082 | 年华是无效信 1083 | 鸟,看见我了 1084 | 孽子 1085 | 宁非 1086 | 牛顿加农炮 1087 | 牛虻 1088 | 纽约客 1089 | 纽约三部曲 1090 | 侬本多情 1091 | 暖暖 1092 | 挪威的森林 1093 | 女皇神慧 1094 | 女人现实男人疯狂 1095 | 女王·再见黑天鹅 1096 | 女心理师 1097 | 女子无殇 1098 | 欧赫贝奇幻地志学 1099 | 欧也妮·葛朗台 1100 | 欧·亨利短篇小说选 1101 | 偶发空缺 1102 | 帕迪多街车站 1103 | 拍翻御史大夫 1104 | 潘宫的秘密 1105 | 潘金莲之前世今生 诱僧 1106 | 盘龙 1107 | 叛逆的小精灵 1108 | 彷徨 1109 | 跑跑江湖打打酱油 1110 | 泡沫之夏 1111 | 陪安东尼度过漫长岁月 1112 | 砰!我的神秘老师 1113 | 皮尔兰德拉星 1114 | 骗局 1115 | 漂亮朋友 1116 | 缥缈·鬼面卷 1117 | 缥缈·提灯卷 1118 | 飘 1119 | 飘渺神之旅- 1120 | 飘渺之旅 1121 | 票房毒药 1122 | 平安夜行抄 1123 | 平等权利 1124 | 平凡的清穿日子 1125 | 平凡的世界 1126 | 平面狗 1127 | 平生欢 1128 | 婆婆来了 1129 | 破事儿 1130 | 破晓 1131 | 破阵子·龙吟 1132 | 蒲生邸事件 1133 | 七界传说 1134 | 七王国的骑士 1135 | 七夜谈 1136 | 七夜雪 1137 | 七月与安生 1138 | 妻妾成群 1139 | 漆原友纪作品集 1140 | 奇风岁月 1141 | 奇幻文学写作的十堂课《The Writer's Complete Fantasy Reference》 1142 | 奇幻艺术大师 1143 | 奇梦录:梦枕貘奇幻杰作选 1144 | 奇妙糖果屋 1145 | 奇鸟行状录 1146 | 奇书·新聊斋 1147 | 骑士幻想夜 1148 | 骑士幻想夜Ⅱ 1149 | 骑誓 1150 | 棋王 1151 | 千江有水千江月 1152 | 千面之城 1153 | 千茗列传 1154 | 千年 1155 | 千秋 1156 | 千秋素光同 1157 | 千山暮雪 1158 | 千妖百魅 1159 | 千帐灯 1160 | 钱多多嫁人记 1161 | 潜水钟与蝴蝶 1162 | 枪侠 1163 | 蔷薇岛屿 1164 | 蔷薇的第七夜 1165 | 蔷薇吸血族 1166 | 且试天下 1167 | 且听风吟 1168 | 窃明 1169 | 窃明第二部·虎狼 1170 | 衾何以堪 1171 | 秦腔 1172 | 琴帝 1173 | 青春咖啡馆 1174 | 青春酷语 1175 | 青春奇妙物语 1176 | 青囊尸衣 1177 | 青山接流水 1178 | 青蛇 1179 | 青铜时代 1180 | 轻功是怎样炼成的 1181 | 倾城乱 1182 | 倾城雪 1183 | 倾城之恋 1184 | 倾尽天下之乱世繁华 1185 | 倾世皇妃 1186 | 倾诉 1187 | 卿本风流 1188 | 清风入梦 1189 | 清宫花美男 1190 | 清宫·红尘尽处 1191 | 清空万里 1192 | 清醒纪 1193 | 情何以堪 1194 | 情迷北宋之北落师门 1195 | 情人 1196 | 情人书 1197 | 情书 1198 | 晴天旅行团 1199 | 请从门缝中看我 1200 | 请继续,爱我到时光尽头 1201 | 庆熹纪事 1202 | 庆余年 1203 | 囚狐 1204 | 球状闪电 1205 | 驱魔人 1206 | 圈里圈外 1207 | 圈子圈套 1208 | 全世爱 1209 | 全世界都知道我爱你 1210 | 全职高手 1211 | 缺月梧桐 1212 | 群山回唱 1213 | 燃犀奇谈 1214 | 燃犀奇谈·雪之下 1215 | 让我们将悲伤流放 1216 | 惹我你就死定了 1217 | 热夜之梦 1218 | 人淡如菊 1219 | 人间失格 1220 | 人生 1221 | 人生的枷锁 1222 | 人生何处不尴尬 1223 | 人生若只初相见 1224 | 人生若只如初贱 1225 | 人性禁岛 1226 | 人字旁 1227 | 人·兽·鬼 1228 | 日瓦戈医生 1229 | 日月当空 1230 | 柔福帝姬 1231 | 如果可以这样爱 1232 | 如果可以这样爱·续 1233 | 如果梦醒时还在一起 1234 | 如果墙会说话 1235 | 如果蜗牛有爱情 1236 | 如果我变成回忆 1237 | 如果在冬夜,一个旅人 1238 | 如果这一秒,我没遇见你 1239 | 如果·宅 1240 | 如果, 1241 | 如何当一只好狗 1242 | 如何在网上聊天 1243 | 如梦令·三窃 1244 | 如失如来 1245 | 如意蛋 1246 | 若爱只是擦肩而过 1247 | 若星汉天空 1248 | 撒哈拉的故事 1249 | 撒玛坎护身符 1250 | 萨布莉尔 1251 | 萨满桥 1252 | 三杯茶 1253 | 三个A Cup的女人 1254 | 三个火枪手 1255 | 三国机密 1256 | 三国演义 1257 | 三界宅急送 1258 | 三救姻缘 1259 | 三鹿人成功之路 1260 | 三千界 1261 | 三千鸦杀 1262 | 三生酒 神仙醋 1263 | 三生三世 十里桃花 1264 | 三生三世 枕上书 1265 | 三体 1266 | 三张牌 1267 | 三重门 1268 | 色已成空 1269 | 色,戒 1270 | 森林魔法师 1271 | 杀手 1272 | 杀死一只反舌鸟 1273 | 沙漏 1274 | 沙门空海 1275 | 沙僧日记 1276 | 山海经 1277 | 山海经密码 1278 | 山海师 1279 | 山月不知心底事 1280 | 山楂树之恋 1281 | 杉杉来吃 1282 | 善良的死神 1283 | 伤心咖啡店之歌 1284 | 伤心咖啡馆之歌 1285 | 殇璃 1286 | 上帝的左手 1287 | 上帝掷骰子 1288 | 上古 1289 | 上海宝贝 1290 | 上海堡垒 1291 | 上穷碧落 1292 | 少林八绝之风云暗藏 1293 | 少林寺第八铜人 1294 | 少年Pi的奇幻漂流 1295 | 少年巴比伦 1296 | 少年残像 1297 | 少年丞相世外客 1298 | 少年维特的烦恼 1299 | 少年吸血鬼阿曼德 1300 | 蛇城 1301 | 射雕英雄传 1302 | 身份 1303 | 绅士盗贼拉莫瑞 1304 | 深夜复活 1305 | 神的孩子全跳舞 1306 | 神的平衡器 1307 | 神雕侠侣 1308 | 神经漫游者 1309 | 神秘岛/潘宫的秘密 1310 | 神秘的魔法石 1311 | 神秘的陌生人 1312 | 神墓 1313 | 神奇的魁地奇球 1314 | 神奇的玛丽阿姨 1315 | 神奇动物在哪里 1316 | 神殇·赤地 1317 | 神仙也有江湖 1318 | 神隐的雷季 1319 | 神印王座 1320 | 神游 1321 | 神谕之夜 1322 | 神渊古纪·烽烟绘卷 1323 | 神之右手 1324 | 升龙道 1325 | 生存者 1326 | 生活在别处 1327 | 生命的游行 1328 | 生命之书 1329 | 生命中不能承受之轻 1330 | 生死疲劳 1331 | 生肖守护神 1332 | 圣诞忆旧集 1333 | 圣光风暴 1334 | 圣女的救济 1335 | 盛开 1336 | 盛世 1337 | 盛夏的方程式 1338 | 盛夏光年 1339 | 剩者为王 1340 | 失乐园 1341 | 失恋33天 1342 | 失恋排行榜 1343 | 失落的秘符 1344 | 失落的英雄 1345 | 失窃的孩子 1346 | 失物之书 1347 | 师士传说2命运之痕 1348 | 十爱 1349 | 十八春 1350 | 十八岁给我一个姑娘 1351 | 十二国记 1352 | 十二金剪 1353 | 十号酒馆·判官 1354 | 十年懵懂百年心 1355 | 十年一品温如言 1356 | 十三绣衣使 1357 | 十五年等待候鸟 1358 | 十一种孤独 1359 | 石中剑 1360 | 时光之城 1361 | 时光之轮 1362 | 时间的针脚 1363 | 时间箭 1364 | 时间旅行者的妻子 1365 | 时生 1366 | 食荤者 1367 | 史上第一混乱 1368 | 士兵突击 1369 | 士为知己 1370 | 氏族之王 1371 | 世婚 1372 | 世纪末的华丽 1373 | 世界尽头与冷酷仙境 1374 | 世界上所有的夜晚 1375 | 世界微尘里 1376 | 世界妖怪事典 1377 | 世界之灰 1378 | 世上另一个我 1379 | 是以见放 1380 | 逝雪 1381 | 弑君者传奇风之名 1382 | 弑君者传奇智者之惧 1383 | 誓不为妃 1384 | 誓鸟 1385 | 守日人 1386 | 守夜人 1387 | 狩猎魔兽 1388 | 兽王-雪原狼王 1389 | 兽血沸腾 1390 | 兽之奏者 1391 | 书剑恩仇录 1392 | 淑女本色 1393 | 输赢 1394 | 赎罪 1395 | 蜀山剑侠传 1396 | 鼠王 1397 | 鼠疫 1398 | 树上的男爵 1399 | 庶女攻略 1400 | 数字城堡 1401 | 双城记 1402 | 双面催眠师 1403 | 双面胶 1404 | 双阙 1405 | 双生水莽 1406 | 谁的等待,恰逢花开 1407 | 谁是谁的谁 1408 | 水浒传 1409 | 水墨山河 1410 | 水仙已乘鲤鱼去 1411 | 水银虫 1412 | 瞬间收藏家 1413 | 朔风飞扬 1414 | 斯普特尼克恋人 1415 | 死灵法师 1416 | 死神的精确度 1417 | 死神学徒 1418 | 四季城邦·卷 1419 | 四世同堂 1420 | 四喜忧国 1421 | 搜神记 1422 | 苏菲的世界 1423 | 苏旷传奇 1424 | 苏珊娜之歌 1425 | 酥油 1426 | 素年锦时 1427 | 宿命 1428 | 隋乱 1429 | 随风而来的玛丽阿姨 1430 | 岁月的泡沫 1431 | 岁月是朵两生花 1432 | 碎片 1433 | 娑婆气 1434 | 所罗门之戒 1435 | 所以 1436 | 他的国 1437 | 他方世界 1438 | 他来了,请闭眼 1439 | 他,来自火星 1440 | 她比烟花寂寞 1441 | 她的二三事 1442 | 她是女子,我也是女子 1443 | 塔希里亚故事集 1444 | 台北人 1445 | 太平 1446 | 太阳之塔 1447 | 太子妃升职记 1448 | 谈情斗爱 1449 | 檀香刑 1450 | 汤姆的午夜花园 1451 | 唐朝诡事录 1452 | 唐僧情史 1453 | 唐砖 1454 | 堂吉诃德 1455 | 饕餮娘子 1456 | 饕餮娘子之岁寒记 1457 | 饕餮西施 1458 | 逃离 1459 | 桃花一朵请笑纳 1460 | 桃花依旧笑春风 1461 | 桃花源里的魔头 1462 | 桃花债 1463 | 桃之夭夭 1464 | 特别的猫 1465 | 特别的一天 1466 | 提嘉娜 1467 | 天崩地裂 1468 | 天才教育从早期抓起 1469 | 天才魔妃 1470 | 天才相师 1471 | 天长地久 1472 | 天帝妖狐 1473 | 天定风华 1474 | 天定风流 1475 | 天鹅·永夜 1476 | 天鹅·馀辉 1477 | 天黑前的夏天 1478 | 天黑以后 1479 | 天蓝色的彼岸 1480 | 天龙八部 1481 | 天命 1482 | 天启薄暮 1483 | 天使的私心 1484 | 天使微积分 1485 | 天使学 1486 | 天使与魔鬼 1487 | 天霜河白 1488 | 天堂向左,深圳往右 1489 | 天庭内幕 1490 | 天舞·失落帝都的记忆 1491 | 天下倾歌 1492 | 天行健 1493 | 天眼 1494 | 天意 1495 | 天众龙众 1496 | 天子谋 1497 | 铁皮鼓 1498 | 听说爱会来 1499 | 听雪楼系列典藏版 1500 | 停车暂借问 1501 | 通俗爱情 1502 | 同学少年都不贱 1503 | 童年 1504 | 在人间 1505 | 我的大学 1506 | 偷书贼 1507 | 偷影子的人 1508 | 图解克苏鲁神话 1509 | 图解山海经 1510 | 徒然王子 1511 | 兔子共和国 1512 | 吞噬星空 1513 | 托尔金与世界大战 1514 | 托勒密门扉 1515 | 脱骨香 1516 | 蛙 1517 | 外公的13号古宅 1518 | 纨裤子弟 1519 | 完美替身恋人:终结篇 1520 | 玩火的女孩 1521 | 玩具修理者 1522 | 玩笑 1523 | 玩转王子学院 1524 | 顽主 1525 | 晚来寂静 1526 | 绾青丝 1527 | 万火归一 1528 | 万寿寺 1529 | 万物生长 1530 | 万物有灵且美 1531 | 王都烈焰 1532 | 王贵与安娜 1533 | 网游混迹在美女工作室 1534 | 网游之公子连城 1535 | 网游之近战法师1·一战成名 1536 | 网游之没事找找虐 1537 | 网游之破晓神归来 1538 | 网游之盛世蔷薇 1539 | 网游之我一见你就笑 1540 | 网游之一贱钟情 1541 | 魍魉之匣 1542 | 忘川堂夜话 1543 | 危险关系 1544 | 威尼斯之石 1545 | 微光 1546 | 微微一笑很倾城 1547 | 微物之神 1548 | 微雨红尘 1549 | 韦帅望的江湖 1550 | 韦帅望的江湖之大刃无锋 1551 | 围城 1552 | 唯我独仙 1553 | 维罗妮卡决定去死 1554 | 伟大的咻啦啦砰 1555 | 伪伦敦 1556 | 卫兵!卫兵! 1557 | 未央歌 1558 | 未央·沉浮 1559 | 温故一九四二 1560 | 温暖的弦 1561 | 温暖躯壳 1562 | 温柔的杀死龙的方法 1563 | 温柔的叹息 1564 | 温莎墓园日记 1565 | 闻香榭 1566 | 蜗居 1567 | 我把爱情煲成汤 1568 | 我不是精英 1569 | 我不是潘金莲 1570 | 我不是一个怪物 1571 | 我的波塞冬 1572 | 我的帝王生涯 1573 | 我的房东叫别扭 1574 | 我的古怪高中 1575 | 我的灵魂在古代 1576 | 我的美女老板 1577 | 我的名字叫红 1578 | 我的名字,你的姓氏 1579 | 我的朋友陈白露小姐 1580 | 我的千岁寒 1581 | 我的前半生 1582 | 我的青春从爱你开始 1583 | 我的征途是星辰大海 1584 | 我的住院日记之羊肉炉不是故意的 1585 | 我读书少,你可别骗我 1586 | 我叫刘跃进 1587 | 我们 1588 | 我们不结婚,好吗 1589 | 我们的祖先 1590 | 我们家 1591 | 我们历经伤痛,只为爱得更好 1592 | 我们为何欢庆失眠 1593 | 我们无处安放的青春 1594 | 我们在此相遇 1595 | 我是传奇 1596 | 我是个大师 1597 | 我是个年轻人 我心情不太好 1598 | 我是个算命先生 1599 | 我是猫 1600 | 我为歌狂 1601 | 我相信,幸福是会重生的 1602 | 我想陪你去麦加 1603 | 我心中尚未崩坏的部分 1604 | 我要逆风去 1605 | 我在回忆里等你 1606 | 我在美国当特种兵. 1607 | 我在新郑当守陵人 1608 | 我在雨中等你 1609 | 我只是遗憾不能陪你一起老 1610 | 我终究是爱你的 1611 | 卧底 1612 | 乌克兰拖拉机简史 1613 | 乌有王子1·前度的黑暗 1614 | 乌有乡 1615 | 巫城记 1616 | 巫魔师 1617 | 巫师神探1·血魔法之罪 1618 | 巫师与玻璃球 1619 | 巫术族的预言-萝铃的魔力-上下册 1620 | 巫言 1621 | 无处安放的婚姻 1622 | 无方少年游 1623 | 无极 1624 | 无人区 1625 | 无人生还 1626 | 无限恐怖 1627 | 无限学园祭 1628 | 无盐妖娆 1629 | 无知 1630 | 五大贼王1:落马青云 1631 | 五大贼王五-身世谜图 1632 | 五蠹 1633 | 午后四点 1634 | 午门囧事 1635 | 妩媚航班 1636 | 武动乾坤 1637 | 武林外史 1638 | 武器屋 1639 | 武神 1640 | 舞!舞!舞! 1641 | 勿忘 1642 | 悟空传 1643 | 悟空前传--斗佛 1644 | 雾都孤儿 1645 | 西岸三部曲 1646 | 西决 1647 | 西天 1648 | 西夏旅馆 1649 | 西游记 1650 | 西游日记 1651 | 吸血鬼莱斯特 1652 | 吸血鬼猎人 1653 | 吸血鬼猎人/猎命师传奇 1654 | 吸血鬼猎人林肯 1655 | 吸血鬼学院 1656 | 吸血侠传奇 1657 | 吸血侠达伦 1658 | 悉达多 1659 | 洗澡 1660 | 喜宝 1661 | 戏龙记之非常穿越 1662 | 侠客行 1663 | 下面,我该干些什么 1664 | 下堂妻的悠哉日子 1665 | 下一次爱情来的时候 1666 | 夏洛的网 1667 | 夏梦狂诗曲 1668 | 夏天·烟火·我的尸体 1669 | 夏焰巨龙 1670 | 夏至未至 1671 | 仙楚 1672 | 仙剑奇侠传 1673 | 仙剑前传之臣心似水 1674 | 仙剑神曲 1675 | 仙剑问情 1676 | 弦歌南望 1677 | 嫌疑人X的献身 1678 | 献给阿尔吉侬的花束 1679 | 相看两相知 1680 | 相亲以后 1681 | 相思门 1682 | 相约星期二 1683 | 香初上舞 1684 | 香寒 1685 | 香蜜沉沉烬如霜 1686 | 香水 1687 | 想入非非 1688 | 向日葵不开的夏天 1689 | 项链 1690 | 项塔兰 1691 | 巷说百物语 1692 | 象棋的故事 1693 | 像少年啦飞驰 1694 | 肖申克的救赎 1695 | 消失的爱人 1696 | 宵山万华镜 1697 | 萧十一郎 1698 | 销魂殿 1699 | 潇然梦 1700 | 潇然梦之无游天下录 1701 | 小妇人 1702 | 小凰不是仙 1703 | 小径分岔的花园 1704 | 小楼传奇 1705 | 小女花不弃 1706 | 小时代 1707 | 小时候 1708 | 小团圆 1709 | 小王子 1710 | 小姨多鹤 1711 | 校服的裙摆 1712 | 校园大魔咒 1713 | 笑傲江湖 1714 | 笑倾三国 1715 | 笑忘录 1716 | 邪气凛然 1717 | 邪神传说 1718 | 写在身体上 1719 | 写字楼妖物志 1720 | 亵渎1·轮回·月陨 1721 | 谢谢你,赠我空欢喜 1722 | 心肝 1723 | 心是孤独的猎手 1724 | 心术 1725 | 心素如简 1726 | 新白话聊斋志异 1727 | 新参者 1728 | 新幻界壹周年精选集 1729 | 新结婚时代 1730 | 新宋 1731 | 新月 1732 | 信 1733 | 星尘 1734 | 星辰变 1735 | 星际迷航:联邦星舰进取号完全图解 1736 | 星空 1737 | 幸得相逢未嫁时 1738 | 凶宅笔记 1739 | 兄弟 1740 | 秀丽江山 1741 | 许你再见钟情 1742 | 许三观卖血记 1743 | 许我向你看 1744 | 轩辕剑之天之痕 1745 | 玄武纪·革 1746 | 学习蒲松龄 1747 | 雪国 1748 | 雪国 古都 1749 | 雪山飞狐 1750 | 雪中悍刀行 1751 | 血嫁 1752 | 血脉 1753 | 血色浪漫 1754 | 血色童话 1755 | 血薇 1756 | 血腥骑士 1757 | 血族新娘 1758 | 血族·邪瞳 1759 | 寻龙记 1760 | 寻秦记 1761 | 寻羊冒险记 1762 | 寻找杰克 1763 | 寻找前世之流年转 1764 | 寻找前世之旅 1765 | 寻找前世之旅续集 1766 | 寻找无双·东宫西宫 1767 | 询君意 1768 | 巽离络 1769 | 鸭川小鬼 1770 | 哑舍 1771 | 哑舍大画集 1772 | 雅典娜之印 1773 | 亚波娜之歌 1774 | 亚尔斯兰战记 1775 | 胭脂扣 1776 | 烟波江南 1777 | 烟水遥 1778 | 烟味,至爱 1779 | 烟雾和骨头的女儿 1780 | 烟与镜: 尼尔.盖曼短篇选 1781 | 阎魔 1782 | 偃师 1783 | 砚城志 卷二 公子 1784 | 艳骨 1785 | 燕归来熙 1786 | 燕倾天下 1787 | 燕尾蝶 1788 | 羊脂球 1789 | 阳光下的罪恶 1790 | 阳具森林 1791 | 阳神 1792 | 仰望来年炙烈的阳光 1793 | 妖刀记 1794 | 妖怪公寓 1795 | 妖怪记事簿 1796 | 妖楼 1797 | 妖孽速成手册 1798 | 妖物 1799 | 妖言惑众 1800 | 遥远的救世主 1801 | 咬时代 1802 | 窈窕庶女 1803 | 药师寺凉子之怪奇事件簿 1804 | 野性的呼唤 1805 | 夜玫瑰 1806 | 夜凝夕 1807 | 夜色玛奇莲 1808 | 夜上海 1809 | 夜市 1810 | 夜谈蓬莱店 1811 | 夜行 1812 | 夜行歌 1813 | 夜夜春梦 1814 | 夜之琴女与耶稣之笛 1815 | 一把雨伞给这天用 1816 | 一半是海水一半是火焰 1817 | 一杯热奶茶的等待 1818 | 一辈子暖暖的好 1819 | 一代军师 1820 | 一地鸡毛 1821 | 一点旧一点新 1822 | 一个陌生女人的来信 1823 | 一个陌生女子的来信 1824 | 一个女人的史诗 1825 | 一个人的朝圣 1826 | 一个人的好天气 1827 | 一光年的距离有多远 1828 | 一鬼夜行 1829 | 一九八四 1830 | 一九七三年的弹子球 1831 | 一句顶一万句 1832 | 一路繁花相送 1833 | 一年天下 1834 | 一念执着,一念相思 1835 | 一片冰心在玉壶 1836 | 一日重生 1837 | 一霎风雨我爱过你 1838 | 一生一世美人骨 1839 | 一天 1840 | 一夜成名 1841 | 一只特立独行的猪 1842 | 一桩事先张扬的凶杀案 1843 | 一座城池 1844 | 伊甸樱桃 1845 | 伊豆的舞女 1846 | 伊拉龙 1847 | 伊岚翠 1848 | 伊斯坦布尔 1849 | 遗失的姆大陆之谜 1850 | 遗忘在光阴之外 1851 | 以王之名 1852 | 倚天屠龙记 1853 | 亿万老婆买一送一 1854 | 亦恕与珂雪 1855 | 异光 1856 | 异海 1857 | 异人傲世录 1858 | 异事录 1859 | 异兽志 1860 | 异侠 1861 | 异现场调查科 1862 | 异行诡闻录1:南疆谜蛊 1863 | 易碎品 1864 | 阴阳师 1865 | 殷商舰队玛雅征服史 1866 | 银河系搭车客指南 1867 | 银河系漫游指南 1868 | 银河英雄传说 1869 | 银色十字梦 1870 | 隐身 1871 | 隐之书 1872 | 樱桃之远 1873 | 樱之恋系列 1874 | 鹦鹉 1875 | 蝇王 1876 | 佣兵天下 1877 | 永不言弃 1878 | 永恒之井 1879 | 永恒之王: 亚瑟王传奇 1880 | 永夜 1881 | 勇者互助组合 交流型掲示板 1882 | 勇者物语 1883 | 幽冥仙途 1884 | 尤利西斯 1885 | 邮差总按两遍铃 1886 | 犹记惊鸿照影 1887 | 有多少爱可以重来 1888 | 有你我不怕 1889 | 有生的瞬间遇见你 1890 | 有生之年/狭路相逢 1891 | 有一种爱情叫兄弟 1892 | 有一种爱谁敢言说 1893 | 有种你丫别跑 1894 | 有座香粉宅 1895 | 又一春 1896 | 鱼馆幽话 1897 | 鱼在金融海啸中 1898 | 馀欢 1899 | 与大神JQ的日子 1900 | 与帅弟同居的日子 1901 | 宇宙尽头的餐馆 1902 | 宇宙奇趣全集 1903 | 羽翼·深蓝 1904 | 羽·黯月之翼 1905 | 羽·苍穹之烬 1906 | 羽·赤炎之曈 1907 | 羽·青空之蓝 1908 | 雨必将落下 1909 | 雨柳堂梦语 1910 | 雨衣 1911 | 驭灵主 1912 | 驭兽斋 1913 | 郁金香 1914 | 预视力量-猫武士三部曲之 1915 | 遇到百分之百的女孩 1916 | 遇见你是我最美丽的意外 1917 | 御剑士传奇 1918 | 原来 1919 | 原来你还在这里 1920 | 原谅我红尘颠倒 1921 | 圆舞 1922 | 源泉 1923 | 源氏物语 1924 | 远歌 1925 | 远古伊甸 1926 | 约翰·克利斯朵夫 1927 | 月沉吟 1928 | 月亮和六便士 1929 | 月满霜河 1930 | 月上重火 1931 | 月上重火之水落石出 1932 | 月食 1933 | 玥影横斜 1934 | 云荒纪年·隔云端·苍平卷 1935 | 云荒往世书·云散高唐 1936 | 云荒·天华界 1937 | 云荒·云泥变 1938 | 云图 1939 | 云中歌 1940 | 云中兰若 1941 | 云中人 1942 | 宰执天下 1943 | 再不相爱就老了 1944 | 再生勇士 1945 | 再生缘 1946 | 再袭面包店 1947 | 在寂与寞的川流上 1948 | 在路上 1949 | 在世界中心呼唤爱 1950 | 在细雨中呼喊 1951 | 咱俩不熟 1952 | 早安,卧底小姐 1953 | 贼猫 1954 | 怎样才算情深 1955 | 宅女在古代后宫的幸福生活 1956 | 窄门 1957 | 詹姆斯与大仙桃 1958 | 斩春 1959 | 斩龙 1960 | 斩情丝 1961 | 占星术杀人魔法 1962 | 战斗司书与恋爱爆弹 1963 | 战士 1964 | 战争之潮 1965 | 战争罪行 1966 | 张爱玲文集 1967 | 张三丰异界游 1968 | 仗剑一笑踩蘑菇 1969 | 这么远,那么近 1970 | 这世上我最爱你 1971 | 这些都是你给我的爱 1972 | 贞观幽明谭 1973 | 侦探伽利略 1974 | 真理之剑 1975 | 震旦 1976 | 镇魂调 1977 | 拯救者 1978 | 正安嘉话 1979 | 知北游 1980 | 蜘蛛男孩 1981 | 执手千年 1982 | 执子之手,将子拖走 1983 | 直捣蜂窝的女孩 1984 | 直到春天过去 1985 | 植物园的巢穴 1986 | 只爱陌生人 1987 | 只道是年少 1988 | 只为爱 1989 | 只为那一刻与你相见 1990 | 只有海豚知道 1991 | 只有你听得到CALLING YOU 1992 | 纸婚 1993 | 指环王与哲学 1994 | 至高荣誉-弹痕 1995 | 至尊无赖 1996 | 质数的孤独 1997 | 致我们终将逝去的青春 1998 | 智斗 1999 | 中国古代神异图说 2000 | 中国狐文化 2001 | 中国奇幻十人选——捕梦天王·骑桶人 2002 | 中国奇幻文学十年精选 2003 | 中国式青春 2004 | 中国妖怪事典 2005 | 中性 2006 | 终结的感觉 2007 | 重生于康熙末年 2008 | 重紫 2009 | 周天·狩偃 2010 | 朱雀记 2011 | 诛仙 2012 | 逐风流 2013 | 主治医生 2014 | 追风筝的人 2015 | 追随她的旅程 2016 | 追忆似水年华 2017 | 涿鹿 2018 | 资本剑客 2019 | 紫川 2020 | 紫阳花日记 2021 | 自杀俱乐部 2022 | 自由 2023 | 走过青春爱过你 2024 | 最初的爱情 最后的仪式 2025 | 最初的爱,最后的爱 2026 | 最后的独角兽 2027 | 最后的女神 2028 | 最后的守护人 2029 | 最后的守护者 2030 | 最后一个道士 2031 | 最后一束米迦勒雏菊 2032 | 最美的时光 2033 | 最美的夏天 2034 | 最美遇见你 2035 | 罪与罚 2036 | 醉玲珑 2037 | 昨日之旅 2038 | 左岸纯情,右岸媚色 2039 | 左耳 2040 | 左手倒影,右手年华。 2041 | 佐贺的超级阿嬷 2042 | 作茧自缚 2043 | 做单 -------------------------------------------------------------------------------- /scrapy.cfg: -------------------------------------------------------------------------------- 1 | # Automatically created by: scrapy startproject 2 | # 3 | # For more information about the [deploy] section see: 4 | # http://doc.scrapy.org/en/latest/topics/scrapyd.html 5 | 6 | [settings] 7 | default = bd.settings 8 | 9 | [deploy] 10 | #url = http://localhost:6800/ 11 | project = bd 12 | --------------------------------------------------------------------------------