SYMBOL INDEX (109 symbols across 12 files) FILE: docker/mysql/douban.sql type `books` (line 14) | CREATE TABLE `books` ( type `comments` (line 46) | CREATE TABLE `comments` ( type `movies` (line 64) | CREATE TABLE `movies` ( type `subjects` (line 102) | CREATE TABLE `subjects` ( FILE: scrapy/douban/items.py class Subject (line 4) | class Subject(Item): class MovieMeta (line 9) | class MovieMeta(Item): class BookMeta (line 34) | class BookMeta(Item): class Comment (line 58) | class Comment(Item): FILE: scrapy/douban/middlewares.py class ProxyMiddleware (line 11) | class ProxyMiddleware(object): method process_request (line 12) | def process_request(self, request, spider): class DoubanSpiderMiddleware (line 17) | class DoubanSpiderMiddleware: method from_crawler (line 23) | def from_crawler(cls, crawler): method process_spider_input (line 29) | def process_spider_input(self, response, spider): method process_spider_output (line 36) | def process_spider_output(self, response, result, spider): method process_spider_exception (line 44) | def process_spider_exception(self, response, exception, spider): method process_start_requests (line 51) | def process_start_requests(self, start_requests, spider): method spider_opened (line 60) | def spider_opened(self, spider): class DoubanDownloaderMiddleware (line 64) | class DoubanDownloaderMiddleware: method from_crawler (line 70) | def from_crawler(cls, crawler): method process_request (line 76) | def process_request(self, request, spider): method process_response (line 88) | def process_response(self, request, response, spider): method process_exception (line 97) | def process_exception(self, request, exception, spider): method spider_opened (line 107) | def spider_opened(self, spider): FILE: scrapy/douban/pipelines.py class DoubanPipeline (line 16) | class DoubanPipeline(object): method get_subject (line 17) | def get_subject(self, item): method save_subject (line 22) | def save_subject(self, item): method get_movie_meta (line 31) | def get_movie_meta(self, item): method save_movie_meta (line 36) | def save_movie_meta(self, item): method update_movie_meta (line 45) | def update_movie_meta(self, item): method get_book_meta (line 55) | def get_book_meta(self, item): method save_book_meta (line 60) | def save_book_meta(self, item): method update_book_meta (line 69) | def update_book_meta(self, item): method get_comment (line 79) | def get_comment(self, item): method save_comment (line 84) | def save_comment(self, item): method process_item (line 93) | def process_item(self, item, spider): class CoverPipeline (line 133) | class CoverPipeline(ImagesPipeline): method process_item (line 134) | def process_item(self, item, spider): method file_path (line 143) | def file_path(self, request, response=None, info=None, *, item=None): method get_media_requests (line 147) | def get_media_requests(self, item, info): method item_completed (line 151) | def item_completed(self, results, item, info): FILE: scrapy/douban/spiders/book_comment.py class BookCommentSpider (line 10) | class BookCommentSpider(Spider): method start_requests (line 14) | def start_requests(self): method parse (line 26) | def parse(self, response): FILE: scrapy/douban/spiders/book_meta.py class BookMetaSpider (line 9) | class BookMetaSpider(Spider): method set_douban_id (line 20) | def set_douban_id(self, meta, response): method set_cover (line 24) | def set_cover(self, meta, response): method set_slug (line 34) | def set_slug(self, meta, response): method set_name (line 38) | def set_name(self, meta, response): method set_alt_name (line 45) | def set_alt_name(self, meta, response): method set_sub_name (line 53) | def set_sub_name(self, meta, response): method set_author (line 61) | def set_author(self, meta, response): method set_summary (line 68) | def set_summary(self, meta, response): method set_author_intro (line 76) | def set_author_intro(self, meta, response): method set_translator (line 84) | def set_translator(self, meta, response): method set_series (line 91) | def set_series(self, meta, response): method set_publisher (line 99) | def set_publisher(self, meta, response): method set_publish_date (line 107) | def set_publish_date(self, meta, response): method set_pages (line 115) | def set_pages(self, meta, response): method set_price (line 123) | def set_price(self, meta, response): method set_binding (line 131) | def set_binding(self, meta, response): method set_isbn (line 139) | def set_isbn(self, meta, response): method set_score (line 147) | def set_score(self, meta, response): method set_votes (line 156) | def set_votes(self, meta, response): method set_tags (line 165) | def set_tags(self, meta, response): method parse (line 172) | def parse(self, response): FILE: scrapy/douban/spiders/book_subject.py class BookSubjectSpider (line 9) | class BookSubjectSpider(CrawlSpider): method cookie (line 23) | def cookie(self, request, response): method start_requests (line 29) | def start_requests(self): method set_douban_id (line 34) | def set_douban_id(self, subject, response): method parse_item (line 38) | def parse_item(self, response): FILE: scrapy/douban/spiders/movie_comment.py class MovieCommentSpider (line 10) | class MovieCommentSpider(Spider): method start_requests (line 14) | def start_requests(self): method parse (line 26) | def parse(self, response): FILE: scrapy/douban/spiders/movie_meta.py class MovieMetaSpider (line 10) | class MovieMetaSpider(Spider): method set_douban_id (line 20) | def set_douban_id(self, meta, response): method set_type (line 24) | def set_type(self, meta, response): method set_cover (line 34) | def set_cover(self, meta, response): method set_name (line 43) | def set_name(self, meta, response): method set_slug (line 50) | def set_slug(self, meta, response): method set_year (line 54) | def set_year(self, meta, response): method set_directors (line 61) | def set_directors(self, meta, response): method set_writers (line 67) | def set_writers(self, meta, response): method set_actors (line 73) | def set_actors(self, meta, response): method set_genres (line 79) | def set_genres(self, meta, response): method set_official_site (line 85) | def set_official_site(self, meta, response): method set_regions (line 93) | def set_regions(self, meta, response): method set_languages (line 101) | def set_languages(self, meta, response): method set_release_date (line 109) | def set_release_date(self, meta, response): method set_runtime (line 118) | def set_runtime(self, meta, response): method set_alias (line 125) | def set_alias(self, meta, response): method set_imdb_id (line 133) | def set_imdb_id(self, meta, response): method set_score (line 141) | def set_score(self, meta, response): method set_votes (line 148) | def set_votes(self, meta, response): method set_tags (line 155) | def set_tags(self, meta, response): method set_storyline (line 161) | def set_storyline(self, meta, response): method set_comments (line 173) | def set_comments(self, meta, response): method parse (line 179) | def parse(self, response): FILE: scrapy/douban/spiders/movie_subject.py class MovieSubjectSpider (line 9) | class MovieSubjectSpider(CrawlSpider): method cookie (line 22) | def cookie(self, request, response): method start_requests (line 28) | def start_requests(self): method set_douban_id (line 33) | def set_douban_id(self, subject, response): method parse_item (line 37) | def parse_item(self, response): FILE: scrapy/douban/util.py function shorturl (line 4) | def shorturl(url): FILE: scrapy/douban/validator.py function match_year (line 6) | def match_year(s): function match_date (line 14) | def match_date(s): function str_to_date (line 22) | def str_to_date(s): function is_match_chinese (line 29) | def is_match_chinese(s): function process_slash_str (line 37) | def process_slash_str(s): function process_url (line 46) | def process_url(s):