├── README.md ├── ThreadPool.py ├── database.py ├── fortune.py ├── learn_ansible └── deploy-blog-simple.yml ├── learn_celery ├── tasks.py └── tasks.pyc ├── learn_epoll └── server.py ├── learn_eventsource └── eventsource_django │ ├── eventsource_django │ ├── __init__.py │ ├── settings.py │ ├── templates │ │ └── index.html │ ├── urls.py │ ├── views.py │ └── wsgi.py │ └── manage.py ├── learn_falcon └── server.py ├── learn_setup ├── demopro │ ├── MANIFEST.in │ ├── djangodemo │ │ ├── .idea │ │ │ ├── .name │ │ │ ├── djangodemo.iml │ │ │ ├── encodings.xml │ │ │ ├── inspectionProfiles │ │ │ │ └── profiles_settings.xml │ │ │ ├── misc.xml │ │ │ ├── modules.xml │ │ │ ├── scopes │ │ │ │ └── scope_settings.xml │ │ │ ├── vcs.xml │ │ │ └── workspace.xml │ │ ├── __init__.py │ │ ├── __init__.pyc │ │ ├── manage.py │ │ ├── settings.py │ │ ├── settings.pyc │ │ └── urls.py │ └── setup.py └── singledemo │ ├── MANIFEST.in │ ├── demo │ ├── __init__.py │ ├── hello.py │ ├── model │ │ ├── __init__.py │ │ └── entity.py │ ├── static │ │ └── test.txt │ └── testdd.txt │ └── setup.py ├── learn_tornado ├── helloworld │ └── helloworld.py └── mvc_hello │ ├── __init__.py │ ├── handlers │ ├── __init__.py │ ├── __init__.pyc │ ├── index.py │ └── index.pyc │ ├── server.py │ ├── static │ └── css │ │ └── index.css │ ├── templates │ └── index.html │ ├── urls.py │ └── urls.pyc ├── numberlines.py ├── pytail.py ├── rulewrite.py ├── sohupy ├── 1 │ ├── README │ ├── fetcher.py │ └── main.py └── 3 │ ├── README │ ├── checker.py │ ├── config.ini │ └── workermanager.py └── tools ├── jsonreader.py ├── timeparse.py └── urllib_proxy.py /README.md: -------------------------------------------------------------------------------- 1 | practice_demo 2 | ============= 3 | 4 | many demo for me -------------------------------------------------------------------------------- /ThreadPool.py: -------------------------------------------------------------------------------- 1 | #coding=utf-8 2 | 3 | import threading, Queue, time, sys 4 | 5 | Qin = Queue.Queue() 6 | Qout = Queue.Queue() 7 | Qerr = Queue.Queue() 8 | Pool = [] 9 | 10 | def report_error(): 11 | Qerr.put(sys.exc_info()[:2]) 12 | 13 | def get_all_from_queue(Q): 14 | try: 15 | while True: 16 | yield Q.get_nowait() 17 | except Queue.Empty: 18 | raise StopIteration 19 | 20 | def do_work_from_queue(): 21 | while True: 22 | command, item = Qin.get() 23 | if command == 'stop': 24 | break 25 | try: 26 | if command == 'process': 27 | result = 'new' + item 28 | else: 29 | raise Value, 'Unknown command %r' % command 30 | except: 31 | report_error() 32 | else: 33 | Qout.put(result) 34 | 35 | def make_and_start_thread_pool(number_of_threads_in_pool=5, daemons=True): 36 | for i in range(number_of_threads_in_pool): 37 | new_thread = threading.Thread(target=do_work_from_queue) 38 | new_thread.setDaemon(daemons) 39 | Pool.append(new_thread) 40 | new_thread.start() 41 | 42 | def request_work(data, command='process'): 43 | Qin.put((command, data)) 44 | 45 | def get_result(): 46 | return Qout.get() 47 | 48 | def show_all_results(): 49 | for result in get_all_from_queue(Qout): 50 | print 'Result:', result 51 | 52 | def show_all_errors(): 53 | for etyp, err in get_all_from_queue(Qerr): 54 | print 'Error:', etyp, err 55 | 56 | def stop_and_free_thread_pool(): 57 | for i in range(len(Pool)): 58 | request_work(None, 'stop') 59 | 60 | for existing_thread in Pool: 61 | existing_thread.join() 62 | 63 | del Pool[:] 64 | 65 | if __name__ == '__main__': 66 | for i in ('_ba',7,'_bo'): request_work(i) 67 | 68 | make_and_start_thread_pool() 69 | stop_and_free_thread_pool() 70 | show_all_results() 71 | show_all_errors() 72 | -------------------------------------------------------------------------------- /database.py: -------------------------------------------------------------------------------- 1 | #coding=utf-8 2 | import sys, shelve 3 | 4 | def store_person(db): 5 | pid = raw_input('Enter unique ID number:') 6 | person = {} 7 | person['name'] = raw_input('Enter namme:') 8 | person['age'] = raw_input('Enter age:') 9 | person['phone'] = raw_input('Enter phone number:') 10 | 11 | db[pid] = person 12 | 13 | def lookup_person(db): 14 | pid = raw_input('Enter ID number:') 15 | field = raw_input('What would you like to know?(name, age, phone)') 16 | field = field.strip().lower() 17 | print field.capitalize() + ':', \ 18 | db[pid][field] 19 | 20 | def print_help(): 21 | print 'The available commands are:' 22 | print 'store : Stores information about a person' 23 | print 'lookup : Looks up a person from ID number' 24 | print 'quit : Save changes and exit' 25 | print '? : Prints this message' 26 | 27 | def enter_command(): 28 | cmd = raw_input('Enter command (? for help): ') 29 | cmd = cmd.strip().lower() 30 | return cmd 31 | 32 | def main(): 33 | database = shelve.open('database.dat') 34 | try: 35 | while True: 36 | cmd = enter_command() 37 | if cmd == 'store': 38 | store_person(database) 39 | elif cmd == 'lookup': 40 | lookup_person(database) 41 | elif cmd == '?': 42 | print_help() 43 | elif cmd == 'quit': 44 | return 45 | finally: 46 | database.close() 47 | 48 | if __name__ == '__main__':main() 49 | 50 | -------------------------------------------------------------------------------- /fortune.py: -------------------------------------------------------------------------------- 1 | #coding=utf-8 2 | 3 | import fileinput, random 4 | 5 | fortunes = list(fileinput.input()) 6 | print random.choice(fortunes) 7 | -------------------------------------------------------------------------------- /learn_ansible/deploy-blog-simple.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: local # hosts中指定 3 | remote_user: the5fire # 如果和当前用户一样,则无需指定 4 | tasks: 5 | - name: check out django_blog 6 | git: dest=~/demos/django_selfblog repo=https://github.com/the5fire/django_selfblog 7 | update=yes 8 | - name: make virtualenv 9 | shell: 'virtualenv ~/demos' 10 | - name: install requirements 11 | pip: requirements=~/demos/django_selfblog/requirements.txt 12 | virtualenv=~/demos 13 | - name: init database 14 | shell: . ./bin/activate && cd django_selfblog/selfblog && ./init_database.sh chdir=~/demos 15 | - name: run manage.py 16 | shell: . ./bin/activate && cd django_selfblog/selfblog && ./run.sh chdir=~/demos 17 | -------------------------------------------------------------------------------- /learn_celery/tasks.py: -------------------------------------------------------------------------------- 1 | import subprocess 2 | from time import sleep 3 | 4 | from celery import Celery 5 | 6 | backend = 'db+mysql://root:@localhost/celery' 7 | broker = 'amqp://guest@localhost//' 8 | 9 | app = Celery('tasks', backend=backend, broker=broker) 10 | 11 | 12 | @app.task 13 | def add(x, y): 14 | sleep(10) 15 | return x + y 16 | 17 | 18 | @app.task 19 | def hostname(): 20 | return subprocess.check_output(['hostname']) 21 | -------------------------------------------------------------------------------- /learn_celery/tasks.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the5fire/practice_demo/5a70bae8405fbc78bbc63029dfb56f1ded01ec54/learn_celery/tasks.pyc -------------------------------------------------------------------------------- /learn_epoll/server.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # coding:utf-8 3 | 4 | import socket 5 | 6 | from handler import handle_connection 7 | 8 | serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 9 | serversocket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) 10 | serversocket.bind(('0.0.0.0', 8080)) 11 | serversocket.listen(1) 12 | 13 | try: 14 | while True: 15 | conn, address = serversocket.accept() 16 | handle_connection(conn, address) 17 | finally: 18 | serversocket.close() 19 | -------------------------------------------------------------------------------- /learn_eventsource/eventsource_django/eventsource_django/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the5fire/practice_demo/5a70bae8405fbc78bbc63029dfb56f1ded01ec54/learn_eventsource/eventsource_django/eventsource_django/__init__.py -------------------------------------------------------------------------------- /learn_eventsource/eventsource_django/eventsource_django/settings.py: -------------------------------------------------------------------------------- 1 | """ 2 | Django settings for eventsource_django project. 3 | 4 | For more information on this file, see 5 | https://docs.djangoproject.com/en/1.6/topics/settings/ 6 | 7 | For the full list of settings and their values, see 8 | https://docs.djangoproject.com/en/1.6/ref/settings/ 9 | """ 10 | 11 | # Build paths inside the project like this: os.path.join(BASE_DIR, ...) 12 | import os 13 | BASE_DIR = os.path.dirname(os.path.dirname(__file__)) 14 | 15 | 16 | # Quick-start development settings - unsuitable for production 17 | # See https://docs.djangoproject.com/en/1.6/howto/deployment/checklist/ 18 | 19 | # SECURITY WARNING: keep the secret key used in production secret! 20 | SECRET_KEY = 't=d(2866vthd0v6$qf*^qvww+*$$%r4&9nwng2w9--7s)-jx25' 21 | 22 | # SECURITY WARNING: don't run with debug turned on in production! 23 | DEBUG = True 24 | 25 | TEMPLATE_DEBUG = True 26 | 27 | ALLOWED_HOSTS = [] 28 | 29 | 30 | # Application definition 31 | 32 | INSTALLED_APPS = ( 33 | 'eventsource_django', 34 | 35 | 'django.contrib.admin', 36 | 'django.contrib.auth', 37 | 'django.contrib.contenttypes', 38 | 'django.contrib.sessions', 39 | 'django.contrib.messages', 40 | 'django.contrib.staticfiles', 41 | ) 42 | 43 | MIDDLEWARE_CLASSES = ( 44 | 'django.contrib.sessions.middleware.SessionMiddleware', 45 | 'django.middleware.common.CommonMiddleware', 46 | 'django.middleware.csrf.CsrfViewMiddleware', 47 | 'django.contrib.auth.middleware.AuthenticationMiddleware', 48 | 'django.contrib.messages.middleware.MessageMiddleware', 49 | 'django.middleware.clickjacking.XFrameOptionsMiddleware', 50 | ) 51 | 52 | ROOT_URLCONF = 'eventsource_django.urls' 53 | 54 | WSGI_APPLICATION = 'eventsource_django.wsgi.application' 55 | 56 | 57 | # Database 58 | # https://docs.djangoproject.com/en/1.6/ref/settings/#databases 59 | 60 | DATABASES = { 61 | 'default': { 62 | 'ENGINE': 'django.db.backends.sqlite3', 63 | 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), 64 | } 65 | } 66 | 67 | # Internationalization 68 | # https://docs.djangoproject.com/en/1.6/topics/i18n/ 69 | 70 | LANGUAGE_CODE = 'en-us' 71 | 72 | TIME_ZONE = 'UTC' 73 | 74 | USE_I18N = True 75 | 76 | USE_L10N = True 77 | 78 | USE_TZ = True 79 | 80 | 81 | # Static files (CSS, JavaScript, Images) 82 | # https://docs.djangoproject.com/en/1.6/howto/static-files/ 83 | 84 | STATIC_URL = '/static/' 85 | -------------------------------------------------------------------------------- /learn_eventsource/eventsource_django/eventsource_django/templates/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | EventSource-Dango-Demo by the5fire 4 | 5 | 25 | 26 | 27 |
28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /learn_eventsource/eventsource_django/eventsource_django/urls.py: -------------------------------------------------------------------------------- 1 | from django.conf.urls import patterns 2 | 3 | from django.views.generic import TemplateView 4 | 5 | from .views import eventsource, ajax 6 | 7 | 8 | urlpatterns = patterns( 9 | '', 10 | (r'^eventsource/$', eventsource), 11 | (r'^ajax/$', ajax), 12 | (r'^$', TemplateView.as_view(template_name="index.html")), 13 | ) 14 | -------------------------------------------------------------------------------- /learn_eventsource/eventsource_django/eventsource_django/views.py: -------------------------------------------------------------------------------- 1 | # coding:utf-8 2 | 3 | import time 4 | 5 | from django.http import HttpResponse, StreamingHttpResponse 6 | from django.utils.timezone import now 7 | 8 | 9 | def eventsource(request): 10 | time.sleep(10) 11 | response = StreamingHttpResponse(stream_generator(), content_type="text/event-stream") 12 | response['Cache-Control'] = 'no-cache' 13 | return response 14 | 15 | 16 | def stream_generator(): 17 | while True: 18 | # 发送事件数据 19 | # yield 'event: date\ndata: %s\n\n' % str(now()) 20 | 21 | # 发送数据 22 | yield u'data: %s\n\n' % str(now()) 23 | time.sleep(4) 24 | 25 | 26 | def ajax(request): 27 | time.sleep(2) 28 | return HttpResponse('ajax') 29 | -------------------------------------------------------------------------------- /learn_eventsource/eventsource_django/eventsource_django/wsgi.py: -------------------------------------------------------------------------------- 1 | """ 2 | WSGI config for eventsource_django project. 3 | 4 | It exposes the WSGI callable as a module-level variable named ``application``. 5 | 6 | For more information on this file, see 7 | https://docs.djangoproject.com/en/1.6/howto/deployment/wsgi/ 8 | """ 9 | 10 | import os 11 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "eventsource_django.settings") 12 | 13 | from django.core.wsgi import get_wsgi_application 14 | application = get_wsgi_application() 15 | -------------------------------------------------------------------------------- /learn_eventsource/eventsource_django/manage.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | import os 3 | import sys 4 | 5 | if __name__ == "__main__": 6 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "eventsource_django.settings") 7 | 8 | from django.core.management import execute_from_command_line 9 | 10 | execute_from_command_line(sys.argv) 11 | -------------------------------------------------------------------------------- /learn_falcon/server.py: -------------------------------------------------------------------------------- 1 | # things.py 2 | 3 | # Let's get this party started 4 | import falcon 5 | 6 | 7 | # Falcon follows the REST architectural style, meaning (among 8 | # other things) that you think in terms of resources and state 9 | # transitions, which map to HTTP verbs. 10 | class ThingsResource: 11 | def on_get(self, req, resp): 12 | """Handles GET requests""" 13 | resp.status = falcon.HTTP_200 # This is the default status 14 | resp.body = ('\nTwo things awe me most, the starry sky ' 15 | 'above me and the moral law within me.\n' 16 | '\n' 17 | ' ~ Immanuel Kant\n\n') 18 | 19 | # falcon.API instances are callable WSGI apps 20 | app = falcon.API() 21 | 22 | # Resources are represented by long-lived class instances 23 | things = ThingsResource() 24 | 25 | # things will handle all requests to the '/things' URL path 26 | app.add_route('/things', things) 27 | -------------------------------------------------------------------------------- /learn_setup/demopro/MANIFEST.in: -------------------------------------------------------------------------------- 1 | recursive-include djangodemo *.html *.js *.css 2 | -------------------------------------------------------------------------------- /learn_setup/demopro/djangodemo/.idea/.name: -------------------------------------------------------------------------------- 1 | djangodemo -------------------------------------------------------------------------------- /learn_setup/demopro/djangodemo/.idea/djangodemo.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /learn_setup/demopro/djangodemo/.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /learn_setup/demopro/djangodemo/.idea/inspectionProfiles/profiles_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | -------------------------------------------------------------------------------- /learn_setup/demopro/djangodemo/.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /learn_setup/demopro/djangodemo/.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /learn_setup/demopro/djangodemo/.idea/scopes/scope_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | -------------------------------------------------------------------------------- /learn_setup/demopro/djangodemo/.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /learn_setup/demopro/djangodemo/.idea/workspace.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 29 | 30 | 31 | 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 | 69 | 70 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 108 | 109 | 110 | 111 | 114 | 115 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 136 | 139 | 140 | 141 | 142 | 162 | 163 | 180 | 181 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 224 | 225 | 226 | 1344526127424 227 | 1344526127424 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 | 257 | 258 | 269 | 305 | 306 | 307 | 308 | 309 | 310 | 311 | 312 | 313 | 314 | 315 | 316 | 317 | 318 | 319 | 320 | 321 | 322 | 323 | 324 | 325 | 326 | -------------------------------------------------------------------------------- /learn_setup/demopro/djangodemo/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the5fire/practice_demo/5a70bae8405fbc78bbc63029dfb56f1ded01ec54/learn_setup/demopro/djangodemo/__init__.py -------------------------------------------------------------------------------- /learn_setup/demopro/djangodemo/__init__.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the5fire/practice_demo/5a70bae8405fbc78bbc63029dfb56f1ded01ec54/learn_setup/demopro/djangodemo/__init__.pyc -------------------------------------------------------------------------------- /learn_setup/demopro/djangodemo/manage.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | from django.core.management import execute_manager 3 | import imp 4 | try: 5 | imp.find_module('settings') # Assumed to be in the same directory. 6 | except ImportError: 7 | import sys 8 | sys.stderr.write("Error: Can't find the file 'settings.py' in the directory containing %r. It appears you've customized things.\nYou'll have to run django-admin.py, passing it your settings module.\n" % __file__) 9 | sys.exit(1) 10 | 11 | import settings 12 | 13 | if __name__ == "__main__": 14 | execute_manager(settings) 15 | -------------------------------------------------------------------------------- /learn_setup/demopro/djangodemo/settings.py: -------------------------------------------------------------------------------- 1 | # Django settings for djangodemo project. 2 | 3 | DEBUG = True 4 | TEMPLATE_DEBUG = DEBUG 5 | 6 | ADMINS = ( 7 | # ('Your Name', 'your_email@example.com'), 8 | ) 9 | 10 | MANAGERS = ADMINS 11 | 12 | DATABASES = { 13 | 'default': { 14 | 'ENGINE': 'django.db.backends.', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'. 15 | 'NAME': '', # Or path to database file if using sqlite3. 16 | 'USER': '', # Not used with sqlite3. 17 | 'PASSWORD': '', # Not used with sqlite3. 18 | 'HOST': '', # Set to empty string for localhost. Not used with sqlite3. 19 | 'PORT': '', # Set to empty string for default. Not used with sqlite3. 20 | } 21 | } 22 | 23 | # Local time zone for this installation. Choices can be found here: 24 | # http://en.wikipedia.org/wiki/List_of_tz_zones_by_name 25 | # although not all choices may be available on all operating systems. 26 | # On Unix systems, a value of None will cause Django to use the same 27 | # timezone as the operating system. 28 | # If running in a Windows environment this must be set to the same as your 29 | # system time zone. 30 | TIME_ZONE = 'America/Chicago' 31 | 32 | # Language code for this installation. All choices can be found here: 33 | # http://www.i18nguy.com/unicode/language-identifiers.html 34 | LANGUAGE_CODE = 'en-us' 35 | 36 | SITE_ID = 1 37 | 38 | # If you set this to False, Django will make some optimizations so as not 39 | # to load the internationalization machinery. 40 | USE_I18N = True 41 | 42 | # If you set this to False, Django will not format dates, numbers and 43 | # calendars according to the current locale 44 | USE_L10N = True 45 | 46 | # Absolute filesystem path to the directory that will hold user-uploaded files. 47 | # Example: "/home/media/media.lawrence.com/media/" 48 | MEDIA_ROOT = '' 49 | 50 | # URL that handles the media served from MEDIA_ROOT. Make sure to use a 51 | # trailing slash. 52 | # Examples: "http://media.lawrence.com/media/", "http://example.com/media/" 53 | MEDIA_URL = '' 54 | 55 | # Absolute path to the directory static files should be collected to. 56 | # Don't put anything in this directory yourself; store your static files 57 | # in apps' "static/" subdirectories and in STATICFILES_DIRS. 58 | # Example: "/home/media/media.lawrence.com/static/" 59 | STATIC_ROOT = '' 60 | 61 | # URL prefix for static files. 62 | # Example: "http://media.lawrence.com/static/" 63 | STATIC_URL = '/static/' 64 | 65 | # URL prefix for admin static files -- CSS, JavaScript and images. 66 | # Make sure to use a trailing slash. 67 | # Examples: "http://foo.com/static/admin/", "/static/admin/". 68 | ADMIN_MEDIA_PREFIX = '/static/admin/' 69 | 70 | # Additional locations of static files 71 | STATICFILES_DIRS = ( 72 | # Put strings here, like "/home/html/static" or "C:/www/django/static". 73 | # Always use forward slashes, even on Windows. 74 | # Don't forget to use absolute paths, not relative paths. 75 | ) 76 | 77 | # List of finder classes that know how to find static files in 78 | # various locations. 79 | STATICFILES_FINDERS = ( 80 | 'django.contrib.staticfiles.finders.FileSystemFinder', 81 | 'django.contrib.staticfiles.finders.AppDirectoriesFinder', 82 | # 'django.contrib.staticfiles.finders.DefaultStorageFinder', 83 | ) 84 | 85 | # Make this unique, and don't share it with anybody. 86 | SECRET_KEY = 'b31r$m--!xyr!-yj@caz%esfc0vkb$4k7t0^(22^9lc)dxf*do' 87 | 88 | # List of callables that know how to import templates from various sources. 89 | TEMPLATE_LOADERS = ( 90 | 'django.template.loaders.filesystem.Loader', 91 | 'django.template.loaders.app_directories.Loader', 92 | # 'django.template.loaders.eggs.Loader', 93 | ) 94 | 95 | MIDDLEWARE_CLASSES = ( 96 | 'django.middleware.common.CommonMiddleware', 97 | 'django.contrib.sessions.middleware.SessionMiddleware', 98 | 'django.middleware.csrf.CsrfViewMiddleware', 99 | 'django.contrib.auth.middleware.AuthenticationMiddleware', 100 | 'django.contrib.messages.middleware.MessageMiddleware', 101 | ) 102 | 103 | ROOT_URLCONF = 'djangodemo.urls' 104 | 105 | TEMPLATE_DIRS = ( 106 | # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates". 107 | # Always use forward slashes, even on Windows. 108 | # Don't forget to use absolute paths, not relative paths. 109 | ) 110 | 111 | INSTALLED_APPS = ( 112 | 'django.contrib.auth', 113 | 'django.contrib.contenttypes', 114 | 'django.contrib.sessions', 115 | 'django.contrib.sites', 116 | 'django.contrib.messages', 117 | 'django.contrib.staticfiles', 118 | # Uncomment the next line to enable the admin: 119 | # 'django.contrib.admin', 120 | # Uncomment the next line to enable admin documentation: 121 | # 'django.contrib.admindocs', 122 | ) 123 | 124 | # A sample logging configuration. The only tangible logging 125 | # performed by this configuration is to send an email to 126 | # the site admins on every HTTP 500 error. 127 | # See http://docs.djangoproject.com/en/dev/topics/logging for 128 | # more details on how to customize your logging configuration. 129 | LOGGING = { 130 | 'version': 1, 131 | 'disable_existing_loggers': False, 132 | 'handlers': { 133 | 'mail_admins': { 134 | 'level': 'ERROR', 135 | 'class': 'django.utils.log.AdminEmailHandler' 136 | } 137 | }, 138 | 'loggers': { 139 | 'django.request': { 140 | 'handlers': ['mail_admins'], 141 | 'level': 'ERROR', 142 | 'propagate': True, 143 | }, 144 | } 145 | } 146 | -------------------------------------------------------------------------------- /learn_setup/demopro/djangodemo/settings.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the5fire/practice_demo/5a70bae8405fbc78bbc63029dfb56f1ded01ec54/learn_setup/demopro/djangodemo/settings.pyc -------------------------------------------------------------------------------- /learn_setup/demopro/djangodemo/urls.py: -------------------------------------------------------------------------------- 1 | from django.conf.urls.defaults import patterns, include, url 2 | 3 | # Uncomment the next two lines to enable the admin: 4 | # from django.contrib import admin 5 | # admin.autodiscover() 6 | 7 | urlpatterns = patterns('', 8 | # Examples: 9 | # url(r'^$', 'djangodemo.views.home', name='home'), 10 | # url(r'^djangodemo/', include('djangodemo.foo.urls')), 11 | 12 | # Uncomment the admin/doc line below to enable admin documentation: 13 | # url(r'^admin/doc/', include('django.contrib.admindocs.urls')), 14 | 15 | # Uncomment the next line to enable the admin: 16 | # url(r'^admin/', include(admin.site.urls)), 17 | ) 18 | -------------------------------------------------------------------------------- /learn_setup/demopro/setup.py: -------------------------------------------------------------------------------- 1 | #coding:utf-8 2 | ''' 3 | 4 | ''' 5 | import os 6 | import sys 7 | 8 | from setuptools import setup, find_packages 9 | 10 | 11 | setup( 12 | name = "djangodemo", 13 | version = "0.0.1", 14 | packages = find_packages(exclude=["demo/*"]), 15 | 16 | include_package_data = True, 17 | 18 | install_requires = [ 19 | 'django>=1.3' 20 | ], 21 | 22 | entry_points = { 23 | 'console_scripts' : [ 24 | 'djangodemo = djangodemo.server:run' 25 | ], 26 | }, 27 | author = "the5fire", 28 | author_email = 'myemail@email.com', 29 | url = "http://www.the5fire.net", 30 | description = 'a demo for setuptools', 31 | ) 32 | -------------------------------------------------------------------------------- /learn_setup/singledemo/MANIFEST.in: -------------------------------------------------------------------------------- 1 | recursive-include demo *.txt 2 | -------------------------------------------------------------------------------- /learn_setup/singledemo/demo/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the5fire/practice_demo/5a70bae8405fbc78bbc63029dfb56f1ded01ec54/learn_setup/singledemo/demo/__init__.py -------------------------------------------------------------------------------- /learn_setup/singledemo/demo/hello.py: -------------------------------------------------------------------------------- 1 | #coding:utf-8 2 | 3 | def hello(): 4 | 5 | f = open('testdd.txt', 'r') 6 | content = f.read() 7 | f.close() 8 | print content 9 | -------------------------------------------------------------------------------- /learn_setup/singledemo/demo/model/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the5fire/practice_demo/5a70bae8405fbc78bbc63029dfb56f1ded01ec54/learn_setup/singledemo/demo/model/__init__.py -------------------------------------------------------------------------------- /learn_setup/singledemo/demo/model/entity.py: -------------------------------------------------------------------------------- 1 | #coding:utf-8 2 | 3 | class Entity(object): 4 | pass 5 | -------------------------------------------------------------------------------- /learn_setup/singledemo/demo/static/test.txt: -------------------------------------------------------------------------------- 1 | test 2 | -------------------------------------------------------------------------------- /learn_setup/singledemo/demo/testdd.txt: -------------------------------------------------------------------------------- 1 | testddd 2 | -------------------------------------------------------------------------------- /learn_setup/singledemo/setup.py: -------------------------------------------------------------------------------- 1 | #coding:utf-8 2 | ''' 3 | 4 | ''' 5 | import os 6 | import sys 7 | 8 | from setuptools import setup, find_packages 9 | 10 | 11 | setup( 12 | name = "demo", 13 | version = "0.0.1", 14 | packages = find_packages(), 15 | 16 | include_package_data = True, 17 | 18 | entry_points = { 19 | 'console_scripts' : [ 20 | 'demo = demo.hello:hello' 21 | ], 22 | }, 23 | package_data = { 24 | 'demo':['*.txt'] 25 | }, 26 | author = "the5fire", 27 | author_email = 'myemail@email.com', 28 | url = "http://www.the5fire.net", 29 | description = 'a demo for setuptools', 30 | ) 31 | -------------------------------------------------------------------------------- /learn_tornado/helloworld/helloworld.py: -------------------------------------------------------------------------------- 1 | #coding:utf-8 2 | 3 | import tornado.ioloop 4 | import tornado.web 5 | 6 | class MainHandler(tornado.web.RequestHandler): 7 | def get(self): 8 | self.write("Hello, world!") 9 | 10 | application = tornado.web.Application([ 11 | (r"/", MainHandler), 12 | ]) 13 | 14 | if __name__ == "__main__": 15 | application.listen(8888) 16 | tornado.ioloop.IOLoop.instance().start() 17 | -------------------------------------------------------------------------------- /learn_tornado/mvc_hello/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the5fire/practice_demo/5a70bae8405fbc78bbc63029dfb56f1ded01ec54/learn_tornado/mvc_hello/__init__.py -------------------------------------------------------------------------------- /learn_tornado/mvc_hello/handlers/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the5fire/practice_demo/5a70bae8405fbc78bbc63029dfb56f1ded01ec54/learn_tornado/mvc_hello/handlers/__init__.py -------------------------------------------------------------------------------- /learn_tornado/mvc_hello/handlers/__init__.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the5fire/practice_demo/5a70bae8405fbc78bbc63029dfb56f1ded01ec54/learn_tornado/mvc_hello/handlers/__init__.pyc -------------------------------------------------------------------------------- /learn_tornado/mvc_hello/handlers/index.py: -------------------------------------------------------------------------------- 1 | #coding:utf-8 2 | 3 | import tornado.web 4 | from model.entity import Entity 5 | 6 | class MainHandler(tornado.web.RequestHandler): 7 | def get(self): 8 | entity = Entity.get('the5fire\'s blog') 9 | self.render('index.html', entity = entity) 10 | 11 | 12 | -------------------------------------------------------------------------------- /learn_tornado/mvc_hello/handlers/index.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the5fire/practice_demo/5a70bae8405fbc78bbc63029dfb56f1ded01ec54/learn_tornado/mvc_hello/handlers/index.pyc -------------------------------------------------------------------------------- /learn_tornado/mvc_hello/server.py: -------------------------------------------------------------------------------- 1 | #coding:utf-8 2 | 3 | import tornado.ioloop 4 | import sys 5 | 6 | from application import application 7 | 8 | PORT = '8080' 9 | 10 | if __name__ == "__main__": 11 | if len(sys.argv) > 1: 12 | PORT = sys.argv[1] 13 | application.listen(PORT) 14 | print 'Development server is running at http://127.0.0.1:%s/' % PORT 15 | print 'Quit the server with CONTROL-C' 16 | tornado.ioloop.IOLoop.instance().start() 17 | -------------------------------------------------------------------------------- /learn_tornado/mvc_hello/static/css/index.css: -------------------------------------------------------------------------------- 1 | /** 2 | 3 | **/ 4 | 5 | body { 6 | background-color:#ccc; 7 | } 8 | -------------------------------------------------------------------------------- /learn_tornado/mvc_hello/templates/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 首页 6 | 7 | 8 | 9 |

Hello, tornado World!

10 |

by {{entity.name}}

11 | 12 | 13 | -------------------------------------------------------------------------------- /learn_tornado/mvc_hello/urls.py: -------------------------------------------------------------------------------- 1 | #coding:utf-8 2 | 3 | from handlers.index import MainHandler 4 | 5 | urls = [ 6 | (r'/', MainHandler), 7 | ] 8 | 9 | 10 | -------------------------------------------------------------------------------- /learn_tornado/mvc_hello/urls.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/the5fire/practice_demo/5a70bae8405fbc78bbc63029dfb56f1ded01ec54/learn_tornado/mvc_hello/urls.pyc -------------------------------------------------------------------------------- /numberlines.py: -------------------------------------------------------------------------------- 1 | #coding=utf-8 # 1 # 1 2 | # 2 # 2 3 | import fileinput # 3 # 3 4 | # 4 # 4 5 | for line in fileinput.input(inplace=True): # 5 # 5 6 | line = line.rstrip() # 6 # 6 7 | num = fileinput.lineno() # 7 # 7 8 | print '%-50s # %2i' % (line,num) # 8 # 8 9 | -------------------------------------------------------------------------------- /pytail.py: -------------------------------------------------------------------------------- 1 | #coding=utf-8 2 | ''' 3 | author:the5fire 4 | blog:http://www.the5fire.net 5 | date:2012-07-03 6 | ''' 7 | import sys 8 | 9 | last_num = 0 10 | 11 | def get_last_line(filepath): 12 | ''' 13 | 获取未输入的行 14 | ''' 15 | global last_num 16 | 17 | import os 18 | if not os.path.exists(filepath): 19 | print 'no such file %s' % filepath 20 | sys.exit() 21 | return 22 | readfile = open(filepath, 'r') 23 | lines = readfile.readlines() 24 | if len(lines) > 20: 25 | last_num = 20 #首次输出最多输出20行 26 | if last_num < len(lines): 27 | print_lines = lines[last_num-len(lines):] 28 | for line in print_lines: 29 | print len(lines), last_num, line.replace('\n','') 30 | last_num = len(lines) 31 | readfile.close() 32 | 33 | 34 | 35 | def timer(filename): 36 | ''' 37 | 每隔1秒执行一次 38 | ''' 39 | while True: 40 | get_last_line(filename) 41 | import time 42 | time.sleep(1) 43 | 44 | if __name__ == '__main__': 45 | if len(sys.argv) < 2: 46 | print 'illegal params' 47 | else: 48 | filename = sys.argv[1] 49 | timer(filename) 50 | -------------------------------------------------------------------------------- /rulewrite.py: -------------------------------------------------------------------------------- 1 | #coding=utf-8 2 | ''' 3 | author:the5fire 4 | blog:http://www.the5fire.net 5 | date:2012-07-03 6 | ''' 7 | 8 | import time 9 | 10 | def writefile(filename): 11 | counter = 0 12 | while True: 13 | writefile = open(filename, 'a') 14 | writefile.write('test' + str(counter) + '\n') 15 | counter += 1 16 | print counter 17 | time.sleep(10) 18 | 19 | if __name__ == '__main__': 20 | import sys 21 | if len(sys.argv) == 2: 22 | filename = sys.argv[1] 23 | writefile(filename) 24 | -------------------------------------------------------------------------------- /sohupy/1/README: -------------------------------------------------------------------------------- 1 | 这个程序是使用BeautifulSoup这个库来做的。 2 | 只需运行main.py -u http://www.sohu.com -d 'a=1,b=2,c=3' -o /tmp/index.html 3 | -------------------------------------------------------------------------------- /sohupy/1/fetcher.py: -------------------------------------------------------------------------------- 1 | #coding=utf-8 2 | ''' 3 | author:huyang 4 | blog:http://www.the5fire.net 5 | date:2012-07-10 6 | function: 7 | 根据获取某一url内的所有链接 8 | 获取某url的页面内容,标题 9 | ''' 10 | 11 | from BeautifulSoup import BeautifulSoup as bs 12 | import urllib 13 | import urllib2 14 | import re 15 | import socket 16 | 17 | class Fetch(object): 18 | 19 | def __init__(self, url, from_encoding = 'utf-8'): 20 | self.html = urllib2.urlopen(url).read() 21 | self.html = self.html.decode('gb18030','ignore') 22 | re_domain = '(http\w{0,1}://(\w+?\.?)+?)[\/|\?]' 23 | try: 24 | self.domain = re.search(re_domain, url + '/').group(1) 25 | except Exception,e: 26 | print 'in self.domain:%s, at url:%s' % (str(e),url) 27 | self.soup = bs(self.html, fromEncoding = from_encoding) 28 | 29 | def get_content(self): 30 | return self.soup 31 | 32 | def get_title(self): 33 | if self.soup: 34 | return self.soup.title 35 | else: 36 | return None 37 | 38 | def get_all_link(self): 39 | if self.soup: 40 | for a_dom in self.soup.findAll('a'): 41 | href = a_dom.get('href') 42 | if not href: 43 | continue 44 | #过滤没有意义的链接 45 | if '#' in href or 'javascript' in href: 46 | continue 47 | yield href 48 | else: 49 | return 50 | 51 | 52 | if __name__ == '__main__': 53 | fetch = Fetch('http://www.sohu.com/', from_encoding="GBK") 54 | fetch.get_all_link() 55 | #for link in fetch.get_all_link(): 56 | # print link 57 | -------------------------------------------------------------------------------- /sohupy/1/main.py: -------------------------------------------------------------------------------- 1 | #coding=utf-8 2 | ''' 3 | author:huyang 4 | date:2012-7-10 5 | blog:http://www.the5fire.net 6 | ''' 7 | 8 | from optparse import OptionParser 9 | from fetcher import Fetch 10 | import sys 11 | reload(sys) 12 | sys.setdefaultencoding("utf-8") 13 | 14 | def main(url, data, obj): 15 | ''' 16 | 主函数,在该函数中,完成以下功能: 17 | 1、获取给定url页面中的所有链接 18 | 2、判断链接的url,并添加参数 19 | 3、将转换完成的url存入文件爱呢。 20 | ''' 21 | print '====BEGIN======' 22 | try: 23 | fetcher = Fetch(url = url, from_encoding = 'GBK') 24 | content = fetcher.get_content().renderContents() 25 | for link in fetcher.get_all_link(): 26 | params = data.split(',') 27 | #处理如果存在参数 28 | for param in params: 29 | if param in link: 30 | params.remove(param) 31 | newlink = '%s?%s' % (link,'&'.join(params)) 32 | #链接替换 33 | content = content.replace('href="%s"' % link, 'href="%s"' % newlink) 34 | obj_file = open(obj, 'w') 35 | obj_file.write(content) 36 | obj_file.close() 37 | print '====OVER=======' 38 | except Exception,e: 39 | print 'an exception occur:%s' % str(e) 40 | 41 | if __name__ == '__main__': 42 | #定义命令行参数 43 | usage = "usage: %prog -u http://www.sohu.com -d 'a=1,b=2,c=3' -o /tmp/index.html" 44 | 45 | parser = OptionParser(usage=usage) 46 | 47 | parser.add_option("-u", "--url", dest="url", 48 | help="the webpage url you want to fetch.eg:-u http://www.baidu.com") 49 | 50 | parser.add_option("-d", "--data", dest="data", 51 | help="the params you want to add to the link in the page you give") 52 | 53 | parser.add_option("-o", "--obj", dest="obj", default="/tmp/default.html", 54 | help="local file to store all links you got") 55 | 56 | (options, args) = parser.parse_args() 57 | 58 | #url为必填项 59 | if not options.url or not options.data: 60 | parser.print_help() 61 | else: 62 | main(url = options.url, data = options.data, obj = options.obj) 63 | -------------------------------------------------------------------------------- /sohupy/3/README: -------------------------------------------------------------------------------- 1 | 运行方法: 2 | python checker.py -c confile.ini -t 20 --debug(用来显示检查的每个url) 3 | 4 | workermanager.py中实现了一个简单的线程池可用来进行并发处理 5 | 6 | config.ini中是我随便放的测试数据 7 | -------------------------------------------------------------------------------- /sohupy/3/checker.py: -------------------------------------------------------------------------------- 1 | #coding=utf-8 2 | ''' 3 | author:huyang 4 | date:2012-7-10 5 | blog:http://www.the5fire.net 6 | ''' 7 | import urllib 8 | import time 9 | import threading 10 | 11 | from optparse import OptionParser 12 | from workermanager import WorkManager 13 | from workermanager import Work 14 | 15 | class Timer(threading.Thread): 16 | ''' 17 | 用来检查线程池中的任务数,据此退出线程 18 | ''' 19 | def __init__(self, workmanager): 20 | super(Timer, self).__init__() 21 | self.workmanager = workmanager 22 | self.start() 23 | 24 | def run(self): 25 | while True: 26 | call_quit_flag = False 27 | try: 28 | #print 'there are %s jobs remain.' % str(self.workmanager.check_queue()) 29 | if not call_quit_flag and self.workmanager.check_queue() < 1: 30 | call_quit_flag = True 31 | self.workmanager.quit_thread() 32 | 33 | if call_quit_flag and self.workmanager.check_thread() < 1: 34 | print '==========Travel Over==============' 35 | break 36 | time.sleep(3) 37 | except Exception,e: 38 | print 'an exception occur in timer:%s' % str(e) 39 | break 40 | 41 | def main(confile, thread_num, debug): 42 | ''' 43 | 主函数,功能如下: 44 | 1、读取配置文件中的数据 45 | 2、将读取的数据传入检查函数,并将函数放入队列中 46 | 3、启动队列 47 | ''' 48 | workmanager = WorkManager(thread_num = thread_num) 49 | f = open(confile, 'r') 50 | for line in f.readlines(): 51 | try: 52 | url, keyword, httpcode = tuple(line.split('|')) 53 | workmanager.add_job(check, url = url, keyword = keyword, httpcode = httpcode, debug = debug) 54 | except Exception,e: 55 | print 'an exception occur when read file:%s' % str(e) 56 | continue 57 | f.close() 58 | workmanager.start_thread_pool() 59 | timer = Timer(workmanager) 60 | 61 | def check(options): 62 | ''' 63 | 判断url内容是否含有关键字,且状态码与指定相同 64 | ''' 65 | url, keyword, httpcode = options.get('url'),options.get('keyword'),options.get('httpcode') 66 | if options.get('debug'): 67 | print 'check %s' % url 68 | req = urllib.urlopen(url) 69 | if req.getcode() != int(httpcode): 70 | print 'http status code error on url:%s,except code:%s, actually code is:%s' % (httpcode,url,req.getcode()) 71 | return 72 | content = req.read() 73 | if keyword not in content: 74 | print 'keyword error on url:%s,not found %s' % (url,keyword) 75 | 76 | 77 | if __name__ == '__main__': 78 | usage = "usage: %prog -c config.ini -t 100" 79 | 80 | parser = OptionParser(usage=usage) 81 | 82 | parser.add_option("-c", "--confile", dest="confile", default="config.ini", 83 | help="local file path") 84 | 85 | parser.add_option("-t", "--thread_num", dest="thread_num", default = 1, 86 | help="how many thread you want to run") 87 | 88 | parser.add_option("--debug", "--debug", dest="debug", default = False, 89 | action="store_true", 90 | help="show check info") 91 | 92 | (options, args) = parser.parse_args() 93 | import os 94 | #如果配置文件不存在,输入help信息 95 | if not os.path.isfile(options.confile): 96 | print 'the file:%s doesn\'t exist' % options.confile 97 | parser.print_help() 98 | 99 | main(options.confile, int(options.thread_num), options.debug) 100 | -------------------------------------------------------------------------------- /sohupy/3/config.ini: -------------------------------------------------------------------------------- 1 | http://m.sohu.com/c/5/|财经|200 2 | http://m.sohu.com/|体育|200 3 | http://m.sohu.com/n/346620805/|信号|200 4 | http://www.baidu.com/|搜狐|200 5 | 6 | http://m.sohu.com/c/5/|财经|200 7 | http://m.sohu.com/c/5/|财经|200 8 | http://m.sohu.com/c/5/|财经|200 9 | http://m.sohu.com/c/5/|财经|200 10 | http://m.sohu.com/c/5/|财经|200 11 | http://m.sohu.com/c/5/|财经|200 12 | http://m.sohu.com/c/5/|财经|200 13 | http://m.sohu.com/c/5/|财经|200 14 | http://m.sohu.com/c/5/|财经|200 15 | http://m.sohu.com/c/5/|财经|200 16 | http://m.sohu.com/c/5/|财经|200 17 | http://m.sohu.com/c/5/|财经|200 18 | http://m.sohu.com/c/5/|财经|200 19 | http://m.sohu.com/c/5/|财经|200 20 | http://m.sohu.com/c/5/|财经|200 21 | http://m.sohu.com/c/5/|财经|200 22 | http://m.sohu.com/c/5/|财经|200 23 | http://m.sohu.com/c/5/|财经|200 24 | http://m.sohu.com/c/5/|财经|200 25 | http://m.sohu.com/c/5/|财经|200 26 | http://m.sohu.com/c/5/|财经|200 27 | http://m.sohu.com/c/5/|财经|200 28 | http://m.sohu.com/c/5/|财经|200 29 | http://m.sohu.com/c/5/|财经|200 30 | http://m.sohu.com/c/5/|财经|200 31 | http://m.sohu.com/c/5/|财经|200 32 | http://m.sohu.com/c/5/|财经|200 33 | http://m.sohu.com/c/5/|财经|200 34 | http://m.sohu.com/c/5/|财经|200 35 | http://m.sohu.com/c/5/|财经|200 36 | http://m.sohu.com/c/5/|财经|200 37 | http://m.sohu.com/c/5/|财经|200 38 | http://m.sohu.com/c/5/|财经|200 39 | http://m.sohu.com/c/5/|财经|200 40 | http://m.sohu.com/c/5/|财经|200 41 | http://m.sohu.com/c/5/|财经|200 42 | http://m.sohu.com/c/5/|财经|200 43 | http://m.sohu.com/c/5/|财经|200 44 | http://m.sohu.com/c/5/|财经|200 45 | http://m.sohu.com/c/5/|财经|200 46 | http://m.sohu.com/c/5/|财经|200 47 | http://m.sohu.com/c/5/|财经|200 48 | http://m.sohu.com/c/5/|财经|200 49 | http://m.sohu.com/c/5/|财经|200 50 | http://m.sohu.com/c/5/|财经|200 51 | http://m.sohu.com/c/5/|财经|200 52 | http://m.sohu.com/c/5/|财经|200 53 | http://m.sohu.com/c/5/|财经|200 54 | http://m.sohu.com/c/5/|财经|200 55 | http://m.sohu.com/c/5/|财经|200 56 | http://m.sohu.com/c/5/|财经|200 57 | http://m.sohu.com/c/5/|财经|200 58 | http://m.sohu.com/c/5/|财经|200 59 | http://m.sohu.com/c/5/|财经|200 60 | http://m.sohu.com/c/5/|财经|200 61 | http://m.sohu.com/c/5/|财经|200 62 | http://m.sohu.com/c/5/|财经|200 63 | http://m.sohu.com/c/5/|财经|200 64 | http://m.sohu.com/c/5/|财经|200 65 | http://m.sohu.com/c/5/|财经|200 66 | http://m.sohu.com/c/5/|财经|200 67 | http://m.sohu.com/c/5/|财经|200 68 | http://m.sohu.com/c/5/|财经|200 69 | http://m.sohu.com/c/5/|财经|200 70 | http://m.sohu.com/c/5/|财经|200 71 | http://m.sohu.com/c/5/|财经|200 72 | http://m.sohu.com/c/5/|财经|200 73 | http://m.sohu.com/c/5/|财经|200 74 | http://m.sohu.com/c/5/|财经|200 75 | http://m.sohu.com/c/5/|财经|200 76 | http://m.sohu.com/c/5/|财经|200 77 | http://m.sohu.com/c/5/|财经|200 78 | http://m.sohu.com/c/5/|财经|200 79 | http://m.sohu.com/c/5/|财经|200 80 | http://m.sohu.com/c/5/|财经|200 81 | http://m.sohu.com/c/5/|财经|200 82 | http://m.sohu.com/c/5/|财经|200 83 | http://m.sohu.com/c/5/|财经|200 84 | http://m.sohu.com/c/5/|财经|200 85 | http://m.sohu.com/c/5/|财经|200 86 | http://m.sohu.com/c/5/|财经|200 87 | http://m.sohu.com/c/5/|财经|200 88 | http://m.sohu.com/c/5/|财经|200 89 | http://m.sohu.com/c/5/|财经|200 90 | http://m.sohu.com/c/5/|财经|200 91 | http://m.sohu.com/c/5/|财经|200 92 | http://m.sohu.com/c/5/|财经|200 93 | http://m.sohu.com/c/5/|财经|200 94 | http://m.sohu.com/c/5/|财经|200 95 | http://m.sohu.com/c/5/|财经|200 96 | http://m.sohu.com/c/5/|财经|200 97 | http://m.sohu.com/c/5/|财经|200 98 | http://m.sohu.com/c/5/|财经|200 99 | http://m.sohu.com/c/5/|财经|200 100 | http://m.sohu.com/c/5/|财经|200 101 | http://m.sohu.com/c/5/|财经|200 102 | http://m.sohu.com/c/5/|财经|200 103 | http://m.sohu.com/c/5/|财经|200 104 | http://m.sohu.com/c/5/|财经|200 105 | http://m.sohu.com/c/5/|财经|200 106 | http://m.sohu.com/c/5/|财经|200 107 | http://m.sohu.com/c/5/|财经|200 108 | http://m.sohu.com/c/5/|财经|200 109 | http://m.sohu.com/c/5/|财经|200 110 | http://m.sohu.com/c/5/|财经|200 111 | http://m.sohu.com/c/5/|财经|200 112 | http://m.sohu.com/c/5/|财经|200 113 | http://m.sohu.com/c/5/|财经|200 114 | http://m.sohu.com/c/5/|财经|200 115 | http://m.sohu.com/c/5/|财经|200 116 | http://m.sohu.com/c/5/|财经|200 117 | http://m.sohu.com/c/5/|财经|200 118 | http://m.sohu.com/c/5/|财经|200 119 | http://m.sohu.com/c/5/|财经|200 120 | http://m.sohu.com/c/5/|财经|200 121 | http://m.sohu.com/c/5/|财经|200 122 | http://m.sohu.com/c/5/|财经|200 123 | http://m.sohu.com/c/5/|财经|200 124 | http://m.sohu.com/c/5/|财经|200 125 | http://m.sohu.com/c/5/|财经|200 126 | http://m.sohu.com/c/5/|财经|200 127 | http://m.sohu.com/c/5/|财经|200 128 | http://m.sohu.com/c/5/|财经|200 129 | http://m.sohu.com/c/5/|财经|200 130 | http://m.sohu.com/c/5/|财经|200 131 | http://m.sohu.com/c/5/|财经|200 132 | http://m.sohu.com/c/5/|财经|200 133 | http://m.sohu.com/c/5/|财经|200 134 | http://m.sohu.com/c/5/|财经|200 135 | http://m.sohu.com/c/5/|财经|200 136 | http://m.sohu.com/c/5/|财经|200 137 | http://m.sohu.com/c/5/|财经|200 138 | http://m.sohu.com/c/5/|财经|200 139 | http://m.sohu.com/c/5/|财经|200 140 | http://m.sohu.com/c/5/|财经|200 141 | http://m.sohu.com/c/5/|财经|200 142 | http://m.sohu.com/c/5/|财经|200 143 | http://m.sohu.com/c/5/|财经|200 144 | http://m.sohu.com/c/5/|财经|200 145 | http://m.sohu.com/c/5/|财经|200 146 | http://m.sohu.com/c/5/|财经|200 147 | http://m.sohu.com/c/5/|财经|200 148 | http://m.sohu.com/c/5/|财经|200 149 | http://m.sohu.com/c/5/|财经|200 150 | http://m.sohu.com/c/5/|财经|200 151 | http://m.sohu.com/c/5/|财经|200 152 | http://m.sohu.com/c/5/|财经|200 153 | http://m.sohu.com/c/5/|财经|200 154 | http://m.sohu.com/c/5/|财经|200 155 | http://m.sohu.com/c/5/|财经|200 156 | http://m.sohu.com/c/5/|财经|200 157 | http://m.sohu.com/c/5/|财经|200 158 | http://m.sohu.com/c/5/|财经|200 159 | http://m.sohu.com/c/5/|财经|200 160 | http://m.sohu.com/c/5/|财经|200 161 | http://m.sohu.com/c/5/|财经|200 162 | http://m.sohu.com/c/5/|财经|200 163 | http://m.sohu.com/c/5/|财经|200 164 | http://m.sohu.com/c/5/|财经|200 165 | http://m.sohu.com/c/5/|财经|200 166 | http://m.sohu.com/c/5/|财经|200 167 | http://m.sohu.com/c/5/|财经|200 168 | http://m.sohu.com/c/5/|财经|200 169 | http://m.sohu.com/c/5/|财经|200 170 | http://m.sohu.com/c/5/|财经|200 171 | http://m.sohu.com/c/5/|财经|200 172 | http://m.sohu.com/c/5/|财经|200 173 | http://m.sohu.com/c/5/|财经|200 174 | http://m.sohu.com/c/5/|财经|200 175 | http://m.sohu.com/c/5/|财经|200 176 | http://m.sohu.com/c/5/|财经|200 177 | http://m.sohu.com/c/5/|财经|200 178 | http://m.sohu.com/c/5/|财经|200 179 | http://m.sohu.com/c/5/|财经|200 180 | http://m.sohu.com/c/5/|财经|200 181 | http://m.sohu.com/c/5/|财经|200 182 | http://m.sohu.com/c/5/|财经|200 183 | http://m.sohu.com/c/5/|财经|200 184 | http://m.sohu.com/c/5/|财经|200 185 | http://m.sohu.com/c/5/|财经|200 186 | http://m.sohu.com/c/5/|财经|200 187 | http://m.sohu.com/c/5/|财经|200 188 | http://m.sohu.com/c/5/|财经|200 189 | http://m.sohu.com/c/5/|财经|200 190 | http://m.sohu.com/c/5/|财经|200 191 | http://m.sohu.com/c/5/|财经|200 192 | http://m.sohu.com/c/5/|财经|200 193 | http://m.sohu.com/c/5/|财经|200 194 | http://m.sohu.com/c/5/|财经|200 195 | http://m.sohu.com/c/5/|财经|200 196 | http://m.sohu.com/c/5/|财经|200 197 | http://m.sohu.com/c/5/|财经|200 198 | http://m.sohu.com/c/5/|财经|200 199 | http://m.sohu.com/c/5/|财经|200 200 | http://m.sohu.com/c/5/|财经|200 201 | http://m.sohu.com/c/5/|财经|200 202 | http://m.sohu.com/c/5/|财经|200 203 | http://m.sohu.com/c/5/|财经|200 204 | http://m.sohu.com/c/5/|财经|200 205 | http://m.sohu.com/c/5/|财经|200 206 | http://m.sohu.com/c/5/|财经|200 207 | http://m.sohu.com/c/5/|财经|200 208 | http://m.sohu.com/c/5/|财经|200 209 | http://m.sohu.com/c/5/|财经|200 210 | http://m.sohu.com/c/5/|财经|200 211 | http://m.sohu.com/c/5/|财经|200 212 | http://m.sohu.com/c/5/|财经|200 213 | http://m.sohu.com/c/5/|财经|200 214 | http://m.sohu.com/c/5/|财经|200 215 | http://m.sohu.com/c/5/|财经|200 216 | http://m.sohu.com/c/5/|财经|200 217 | http://m.sohu.com/c/5/|财经|200 218 | http://m.sohu.com/c/5/|财经|200 219 | http://m.sohu.com/c/5/|财经|200 220 | http://m.sohu.com/c/5/|财经|200 221 | http://m.sohu.com/c/5/|财经|200 222 | http://m.sohu.com/c/5/|财经|200 223 | http://m.sohu.com/c/5/|财经|200 224 | http://m.sohu.com/c/5/|财经|200 225 | http://m.sohu.com/c/5/|财经|200 226 | http://m.sohu.com/c/5/|财经|200 227 | http://m.sohu.com/c/5/|财经|200 228 | http://m.sohu.com/c/5/|财经|200 229 | http://m.sohu.com/c/5/|财经|200 230 | http://m.sohu.com/c/5/|财经|200 231 | http://m.sohu.com/c/5/|财经|200 232 | http://m.sohu.com/c/5/|财经|200 233 | http://m.sohu.com/c/5/|财经|200 234 | http://m.sohu.com/c/5/|财经|200 235 | http://m.sohu.com/c/5/|财经|200 236 | http://m.sohu.com/c/5/|财经|200 237 | http://m.sohu.com/c/5/|财经|200 238 | http://m.sohu.com/c/5/|财经|200 239 | http://m.sohu.com/c/5/|财经|200 240 | http://m.sohu.com/c/5/|财经|200 241 | http://m.sohu.com/c/5/|财经|200 242 | http://m.sohu.com/c/5/|财经|200 243 | http://m.sohu.com/c/5/|财经|200 244 | http://m.sohu.com/c/5/|财经|200 245 | http://m.sohu.com/c/5/|财经|200 246 | http://m.sohu.com/c/5/|财经|200 247 | http://m.sohu.com/c/5/|财经|200 248 | http://m.sohu.com/c/5/|财经|200 249 | http://m.sohu.com/c/5/|财经|200 250 | http://m.sohu.com/c/5/|财经|200 251 | http://m.sohu.com/c/5/|财经|200 252 | http://m.sohu.com/c/5/|财经|200 253 | http://m.sohu.com/c/5/|财经|200 254 | http://m.sohu.com/c/5/|财经|200 255 | http://m.sohu.com/c/5/|财经|200 256 | http://m.sohu.com/c/5/|财经|200 257 | http://m.sohu.com/c/5/|财经|200 258 | http://m.sohu.com/c/5/|财经|200 259 | http://m.sohu.com/c/5/|财经|200 260 | http://m.sohu.com/c/5/|财经|200 261 | http://m.sohu.com/c/5/|财经|200 262 | http://m.sohu.com/c/5/|财经|200 263 | http://m.sohu.com/c/5/|财经|200 264 | http://m.sohu.com/c/5/|财经|200 265 | http://m.sohu.com/c/5/|财经|200 266 | http://m.sohu.com/c/5/|财经|200 267 | http://m.sohu.com/c/5/|财经|200 268 | http://m.sohu.com/c/5/|财经|200 269 | http://m.sohu.com/c/5/|财经|200 270 | http://m.sohu.com/c/5/|财经|200 271 | http://m.sohu.com/c/5/|财经|200 272 | http://m.sohu.com/c/5/|财经|200 273 | http://m.sohu.com/c/5/|财经|200 274 | http://m.sohu.com/c/5/|财经|200 275 | http://m.sohu.com/c/5/|财经|200 276 | http://m.sohu.com/c/5/|财经|200 277 | http://m.sohu.com/c/5/|财经|200 278 | http://m.sohu.com/c/5/|财经|200 279 | http://m.sohu.com/c/5/|财经|200 280 | http://m.sohu.com/c/5/|财经|200 281 | http://m.sohu.com/c/5/|财经|200 282 | http://m.sohu.com/c/5/|财经|200 283 | http://m.sohu.com/c/5/|财经|200 284 | http://m.sohu.com/c/5/|财经|200 285 | http://m.sohu.com/c/5/|财经|200 286 | http://m.sohu.com/c/5/|财经|200 287 | http://m.sohu.com/c/5/|财经|200 288 | http://m.sohu.com/c/5/|财经|200 289 | http://m.sohu.com/c/5/|财经|200 290 | http://m.sohu.com/c/5/|财经|200 291 | http://m.sohu.com/c/5/|财经|200 292 | http://m.sohu.com/c/5/|财经|200 293 | http://m.sohu.com/c/5/|财经|200 294 | http://m.sohu.com/c/5/|财经|200 295 | http://m.sohu.com/c/5/|财经|200 296 | http://m.sohu.com/c/5/|财经|200 297 | http://m.sohu.com/c/5/|财经|200 298 | http://m.sohu.com/c/5/|财经|200 299 | http://m.sohu.com/c/5/|财经|200 300 | http://m.sohu.com/c/5/|财经|200 301 | http://m.sohu.com/c/5/|财经|200 302 | http://m.sohu.com/c/5/|财经|200 303 | http://m.sohu.com/c/5/|财经|200 304 | http://m.sohu.com/c/5/|财经|200 305 | http://m.sohu.com/c/5/|财经|200 306 | http://m.sohu.com/c/5/|财经|200 307 | http://m.sohu.com/c/5/|财经|200 308 | http://m.sohu.com/c/5/|财经|200 309 | http://m.sohu.com/c/5/|财经|200 310 | http://m.sohu.com/c/5/|财经|200 311 | http://m.sohu.com/c/5/|财经|200 312 | http://m.sohu.com/c/5/|财经|200 313 | http://m.sohu.com/c/5/|财经|200 314 | http://m.sohu.com/c/5/|财经|200 315 | http://m.sohu.com/c/5/|财经|200 316 | http://m.sohu.com/c/5/|财经|200 317 | http://m.sohu.com/c/5/|财经|200 318 | http://m.sohu.com/c/5/|财经|200 319 | http://m.sohu.com/c/5/|财经|200 320 | http://m.sohu.com/c/5/|财经|200 321 | http://m.sohu.com/c/5/|财经|200 322 | http://m.sohu.com/c/5/|财经|200 323 | http://m.sohu.com/c/5/|财经|200 324 | http://m.sohu.com/c/5/|财经|200 325 | http://m.sohu.com/c/5/|财经|200 326 | http://m.sohu.com/c/5/|财经|200 327 | http://m.sohu.com/c/5/|财经|200 328 | http://m.sohu.com/c/5/|财经|200 329 | http://m.sohu.com/c/5/|财经|200 330 | http://m.sohu.com/c/5/|财经|200 331 | http://m.sohu.com/c/5/|财经|200 332 | http://m.sohu.com/c/5/|财经|200 333 | http://m.sohu.com/c/5/|财经|200 334 | http://m.sohu.com/c/5/|财经|200 335 | http://m.sohu.com/c/5/|财经|200 336 | http://m.sohu.com/c/5/|财经|200 337 | http://m.sohu.com/c/5/|财经|200 338 | http://m.sohu.com/c/5/|财经|200 339 | http://m.sohu.com/c/5/|财经|200 340 | http://m.sohu.com/c/5/|财经|200 341 | http://m.sohu.com/c/5/|财经|200 342 | http://m.sohu.com/c/5/|财经|200 343 | http://m.sohu.com/c/5/|财经|200 344 | http://m.sohu.com/c/5/|财经|200 345 | http://m.sohu.com/c/5/|财经|200 346 | http://m.sohu.com/c/5/|财经|200 347 | http://m.sohu.com/c/5/|财经|200 348 | http://m.sohu.com/c/5/|财经|200 349 | http://m.sohu.com/c/5/|财经|200 350 | http://m.sohu.com/c/5/|财经|200 351 | http://m.sohu.com/c/5/|财经|200 352 | http://m.sohu.com/c/5/|财经|200 353 | http://m.sohu.com/c/5/|财经|200 354 | http://m.sohu.com/c/5/|财经|200 355 | http://m.sohu.com/c/5/|财经|200 356 | http://m.sohu.com/c/5/|财经|200 357 | http://m.sohu.com/c/5/|财经|200 358 | http://m.sohu.com/c/5/|财经|200 359 | http://m.sohu.com/c/5/|财经|200 360 | http://m.sohu.com/c/5/|财经|200 361 | http://m.sohu.com/c/5/|财经|200 362 | http://m.sohu.com/c/5/|财经|200 363 | http://m.sohu.com/c/5/|财经|200 364 | http://m.sohu.com/c/5/|财经|200 365 | http://m.sohu.com/c/5/|财经|200 366 | http://m.sohu.com/c/5/|财经|200 367 | http://m.sohu.com/c/5/|财经|200 368 | http://m.sohu.com/c/5/|财经|200 369 | http://m.sohu.com/c/5/|财经|200 370 | http://m.sohu.com/c/5/|财经|200 371 | http://m.sohu.com/c/5/|财经|200 372 | http://m.sohu.com/c/5/|财经|200 373 | http://m.sohu.com/c/5/|财经|200 374 | http://m.sohu.com/c/5/|财经|200 375 | http://m.sohu.com/c/5/|财经|200 376 | http://m.sohu.com/c/5/|财经|200 377 | http://m.sohu.com/c/5/|财经|200 378 | http://m.sohu.com/c/5/|财经|200 379 | http://m.sohu.com/c/5/|财经|200 380 | http://m.sohu.com/c/5/|财经|200 381 | http://m.sohu.com/c/5/|财经|200 382 | http://m.sohu.com/c/5/|财经|200 383 | http://m.sohu.com/c/5/|财经|200 384 | http://m.sohu.com/c/5/|财经|200 385 | http://m.sohu.com/c/5/|财经|200 386 | http://m.sohu.com/c/5/|财经|200 387 | http://m.sohu.com/c/5/|财经|200 388 | http://m.sohu.com/c/5/|财经|200 389 | http://m.sohu.com/c/5/|财经|200 390 | http://m.sohu.com/c/5/|财经|200 391 | http://m.sohu.com/c/5/|财经|200 392 | http://m.sohu.com/c/5/|财经|200 393 | http://m.sohu.com/c/5/|财经|200 394 | http://m.sohu.com/c/5/|财经|200 395 | http://m.sohu.com/c/5/|财经|200 396 | http://m.sohu.com/c/5/|财经|200 397 | http://m.sohu.com/c/5/|财经|200 398 | http://m.sohu.com/c/5/|财经|200 399 | http://m.sohu.com/c/5/|财经|200 400 | http://m.sohu.com/c/5/|财经|200 401 | http://m.sohu.com/c/5/|财经|200 402 | http://m.sohu.com/c/5/|财经|200 403 | http://m.sohu.com/c/5/|财经|200 404 | http://m.sohu.com/c/5/|财经|200 405 | http://m.sohu.com/c/5/|财经|200 406 | http://m.sohu.com/c/5/|财经|200 407 | http://m.sohu.com/c/5/|财经|200 408 | http://m.sohu.com/c/5/|财经|200 409 | http://m.sohu.com/c/5/|财经|200 410 | http://m.sohu.com/c/5/|财经|200 411 | http://m.sohu.com/c/5/|财经|200 412 | http://m.sohu.com/c/5/|财经|200 413 | http://m.sohu.com/c/5/|财经|200 414 | http://m.sohu.com/c/5/|财经|200 415 | http://m.sohu.com/c/5/|财经|200 416 | http://m.sohu.com/c/5/|财经|200 417 | http://m.sohu.com/c/5/|财经|200 418 | http://m.sohu.com/c/5/|财经|200 419 | http://m.sohu.com/c/5/|财经|200 420 | http://m.sohu.com/c/5/|财经|200 421 | http://m.sohu.com/c/5/|财经|200 422 | http://m.sohu.com/c/5/|财经|200 423 | http://m.sohu.com/c/5/|财经|200 424 | http://m.sohu.com/c/5/|财经|200 425 | http://m.sohu.com/c/5/|财经|200 426 | http://m.sohu.com/c/5/|财经|200 427 | http://m.sohu.com/c/5/|财经|200 428 | http://m.sohu.com/c/5/|财经|200 429 | http://m.sohu.com/c/5/|财经|200 430 | http://m.sohu.com/c/5/|财经|200 431 | http://m.sohu.com/c/5/|财经|200 432 | http://m.sohu.com/c/5/|财经|200 433 | http://m.sohu.com/c/5/|财经|200 434 | http://m.sohu.com/c/5/|财经|200 435 | http://m.sohu.com/c/5/|财经|200 436 | http://m.sohu.com/c/5/|财经|200 437 | http://m.sohu.com/|体育|200 438 | http://m.sohu.com/n/346620805/|信号|200 439 | http://www.baidu.com/|搜狐|200 440 | http://m.sohu.com/|体育|200 441 | http://m.sohu.com/n/346620805/|信号|200 442 | http://www.baidu.com/|搜狐|200 443 | http://m.sohu.com/|体育|200 444 | http://m.sohu.com/n/346620805/|信号|200 445 | http://www.baidu.com/|搜狐|200 446 | http://m.sohu.com/|体育|200 447 | http://m.sohu.com/n/346620805/|信号|200 448 | http://www.baidu.com/|搜狐|200 449 | http://m.sohu.com/|体育|200 450 | http://m.sohu.com/n/346620805/|信号|200 451 | http://www.baidu.com/|搜狐|200 452 | http://m.sohu.com/|体育|200 453 | http://m.sohu.com/n/346620805/|信号|200 454 | http://www.baidu.com/|搜狐|200 455 | http://m.sohu.com/|体育|200 456 | http://m.sohu.com/n/346620805/|信号|200 457 | http://www.baidu.com/|搜狐|200 458 | http://m.sohu.com/|体育|200 459 | http://m.sohu.com/n/346620805/|信号|200 460 | http://www.baidu.com/|搜狐|200 461 | http://m.sohu.com/|体育|200 462 | http://m.sohu.com/n/346620805/|信号|200 463 | http://www.baidu.com/|搜狐|200 464 | http://m.sohu.com/|体育|200 465 | http://m.sohu.com/n/346620805/|信号|200 466 | http://www.baidu.com/|搜狐|200 467 | http://m.sohu.com/|体育|200 468 | http://m.sohu.com/n/346620805/|信号|200 469 | http://www.baidu.com/|搜狐|200 470 | http://m.sohu.com/|体育|200 471 | http://m.sohu.com/n/346620805/|信号|200 472 | http://www.baidu.com/|搜狐|200 473 | http://m.sohu.com/|体育|200 474 | http://m.sohu.com/n/346620805/|信号|200 475 | http://www.baidu.com/|搜狐|200 476 | http://m.sohu.com/|体育|200 477 | http://m.sohu.com/n/346620805/|信号|200 478 | http://www.baidu.com/|搜狐|200 479 | http://m.sohu.com/|体育|200 480 | http://m.sohu.com/n/346620805/|信号|200 481 | http://www.baidu.com/|搜狐|200 482 | http://m.sohu.com/|体育|200 483 | http://m.sohu.com/n/346620805/|信号|200 484 | http://www.baidu.com/|搜狐|200 485 | http://m.sohu.com/|体育|200 486 | http://m.sohu.com/n/346620805/|信号|200 487 | http://www.baidu.com/|搜狐|200 488 | http://m.sohu.com/|体育|200 489 | http://m.sohu.com/n/346620805/|信号|200 490 | http://www.baidu.com/|搜狐|200 491 | http://m.sohu.com/|体育|200 492 | http://m.sohu.com/n/346620805/|信号|200 493 | http://www.baidu.com/|搜狐|200 494 | http://m.sohu.com/|体育|200 495 | http://m.sohu.com/n/346620805/|信号|200 496 | http://www.baidu.com/|搜狐|200 497 | http://m.sohu.com/|体育|200 498 | http://m.sohu.com/n/346620805/|信号|200 499 | http://www.baidu.com/|搜狐|200 500 | http://m.sohu.com/|体育|200 501 | http://m.sohu.com/n/346620805/|信号|200 502 | http://www.baidu.com/|搜狐|200 503 | http://m.sohu.com/|体育|200 504 | http://m.sohu.com/n/346620805/|信号|200 505 | http://www.baidu.com/|搜狐|200 506 | http://m.sohu.com/|体育|200 507 | http://m.sohu.com/n/346620805/|信号|200 508 | http://www.baidu.com/|搜狐|200 509 | http://m.sohu.com/|体育|200 510 | http://m.sohu.com/n/346620805/|信号|200 511 | http://www.baidu.com/|搜狐|200 512 | http://m.sohu.com/|体育|200 513 | http://m.sohu.com/n/346620805/|信号|200 514 | http://www.baidu.com/|搜狐|200 515 | http://m.sohu.com/|体育|200 516 | http://m.sohu.com/n/346620805/|信号|200 517 | http://www.baidu.com/|搜狐|200 518 | http://m.sohu.com/|体育|200 519 | http://m.sohu.com/n/346620805/|信号|200 520 | http://www.baidu.com/|搜狐|200 521 | http://m.sohu.com/|体育|200 522 | http://m.sohu.com/n/346620805/|信号|200 523 | http://www.baidu.com/|搜狐|200 524 | http://m.sohu.com/|体育|200 525 | http://m.sohu.com/n/346620805/|信号|200 526 | http://www.baidu.com/|搜狐|200 527 | http://m.sohu.com/|体育|200 528 | http://m.sohu.com/n/346620805/|信号|200 529 | http://www.baidu.com/|搜狐|200 530 | http://m.sohu.com/|体育|200 531 | http://m.sohu.com/n/346620805/|信号|200 532 | http://www.baidu.com/|搜狐|200 533 | http://m.sohu.com/|体育|200 534 | http://m.sohu.com/n/346620805/|信号|200 535 | http://www.baidu.com/|搜狐|200 536 | http://m.sohu.com/|体育|200 537 | http://m.sohu.com/n/346620805/|信号|200 538 | http://www.baidu.com/|搜狐|200 539 | http://m.sohu.com/|体育|200 540 | http://m.sohu.com/n/346620805/|信号|200 541 | http://www.baidu.com/|搜狐|200 542 | http://m.sohu.com/|体育|200 543 | http://m.sohu.com/n/346620805/|信号|200 544 | http://www.baidu.com/|搜狐|200 545 | http://m.sohu.com/|体育|200 546 | http://m.sohu.com/n/346620805/|信号|200 547 | http://www.baidu.com/|搜狐|200 548 | http://m.sohu.com/|体育|200 549 | http://m.sohu.com/n/346620805/|信号|200 550 | http://www.baidu.com/|搜狐|200 551 | http://m.sohu.com/|体育|200 552 | http://m.sohu.com/n/346620805/|信号|200 553 | http://www.baidu.com/|搜狐|200 554 | http://m.sohu.com/|体育|200 555 | http://m.sohu.com/n/346620805/|信号|200 556 | http://www.baidu.com/|搜狐|200 557 | http://m.sohu.com/|体育|200 558 | http://m.sohu.com/n/346620805/|信号|200 559 | http://www.baidu.com/|搜狐|200 560 | http://m.sohu.com/|体育|200 561 | http://m.sohu.com/n/346620805/|信号|200 562 | http://www.baidu.com/|搜狐|200 563 | http://m.sohu.com/|体育|200 564 | http://m.sohu.com/n/346620805/|信号|200 565 | http://www.baidu.com/|搜狐|200 566 | http://m.sohu.com/|体育|200 567 | http://m.sohu.com/n/346620805/|信号|200 568 | http://www.baidu.com/|搜狐|200 569 | http://m.sohu.com/|体育|200 570 | http://m.sohu.com/n/346620805/|信号|200 571 | http://www.baidu.com/|搜狐|200 572 | http://m.sohu.com/|体育|200 573 | http://m.sohu.com/n/346620805/|信号|200 574 | http://www.baidu.com/|搜狐|200 575 | http://m.sohu.com/|体育|200 576 | http://m.sohu.com/n/346620805/|信号|200 577 | http://www.baidu.com/|搜狐|200 578 | http://m.sohu.com/|体育|200 579 | http://m.sohu.com/n/346620805/|信号|200 580 | http://www.baidu.com/|搜狐|200 581 | http://m.sohu.com/|体育|200 582 | http://m.sohu.com/n/346620805/|信号|200 583 | http://www.baidu.com/|搜狐|200 584 | http://m.sohu.com/|体育|200 585 | http://m.sohu.com/n/346620805/|信号|200 586 | http://www.baidu.com/|搜狐|200 587 | http://m.sohu.com/|体育|200 588 | http://m.sohu.com/n/346620805/|信号|200 589 | http://www.baidu.com/|搜狐|200 590 | http://m.sohu.com/|体育|200 591 | http://m.sohu.com/n/346620805/|信号|200 592 | http://www.baidu.com/|搜狐|200 593 | http://m.sohu.com/|体育|200 594 | http://m.sohu.com/n/346620805/|信号|200 595 | http://www.baidu.com/|搜狐|200 596 | http://m.sohu.com/|体育|200 597 | http://m.sohu.com/n/346620805/|信号|200 598 | http://www.baidu.com/|搜狐|200 599 | http://m.sohu.com/|体育|200 600 | http://m.sohu.com/n/346620805/|信号|200 601 | http://www.baidu.com/|搜狐|200 602 | http://m.sohu.com/|体育|200 603 | http://m.sohu.com/n/346620805/|信号|200 604 | http://www.baidu.com/|搜狐|200 605 | http://m.sohu.com/|体育|200 606 | http://m.sohu.com/n/346620805/|信号|200 607 | http://www.baidu.com/|搜狐|200 608 | http://m.sohu.com/|体育|200 609 | http://m.sohu.com/n/346620805/|信号|200 610 | http://www.baidu.com/|搜狐|200 611 | http://m.sohu.com/|体育|200 612 | http://m.sohu.com/n/346620805/|信号|200 613 | http://www.baidu.com/|搜狐|200 614 | http://m.sohu.com/|体育|200 615 | http://m.sohu.com/n/346620805/|信号|200 616 | http://www.baidu.com/|搜狐|200 617 | http://m.sohu.com/|体育|200 618 | http://m.sohu.com/n/346620805/|信号|200 619 | http://www.baidu.com/|搜狐|200 620 | http://m.sohu.com/|体育|200 621 | http://m.sohu.com/n/346620805/|信号|200 622 | http://www.baidu.com/|搜狐|200 623 | http://m.sohu.com/|体育|200 624 | http://m.sohu.com/n/346620805/|信号|200 625 | http://www.baidu.com/|搜狐|200 626 | http://m.sohu.com/|体育|200 627 | http://m.sohu.com/n/346620805/|信号|200 628 | http://www.baidu.com/|搜狐|200 629 | http://m.sohu.com/|体育|200 630 | http://m.sohu.com/n/346620805/|信号|200 631 | http://www.baidu.com/|搜狐|200 632 | http://m.sohu.com/|体育|200 633 | http://m.sohu.com/n/346620805/|信号|200 634 | http://www.baidu.com/|搜狐|200 635 | http://m.sohu.com/|体育|200 636 | http://m.sohu.com/n/346620805/|信号|200 637 | http://www.baidu.com/|搜狐|200 638 | http://m.sohu.com/|体育|200 639 | http://m.sohu.com/n/346620805/|信号|200 640 | http://www.baidu.com/|搜狐|200 641 | http://m.sohu.com/|体育|200 642 | http://m.sohu.com/n/346620805/|信号|200 643 | http://www.baidu.com/|搜狐|200 644 | http://m.sohu.com/|体育|200 645 | http://m.sohu.com/n/346620805/|信号|200 646 | http://www.baidu.com/|搜狐|200 647 | http://m.sohu.com/|体育|200 648 | http://m.sohu.com/n/346620805/|信号|200 649 | http://www.baidu.com/|搜狐|200 650 | http://m.sohu.com/|体育|200 651 | http://m.sohu.com/n/346620805/|信号|200 652 | http://www.baidu.com/|搜狐|200 653 | http://m.sohu.com/|体育|200 654 | http://m.sohu.com/n/346620805/|信号|200 655 | http://www.baidu.com/|搜狐|200 656 | http://m.sohu.com/|体育|200 657 | http://m.sohu.com/n/346620805/|信号|200 658 | http://www.baidu.com/|搜狐|200 659 | http://m.sohu.com/|体育|200 660 | http://m.sohu.com/n/346620805/|信号|200 661 | http://www.baidu.com/|搜狐|200 662 | http://m.sohu.com/|体育|200 663 | http://m.sohu.com/n/346620805/|信号|200 664 | http://www.baidu.com/|搜狐|200 665 | http://m.sohu.com/|体育|200 666 | http://m.sohu.com/n/346620805/|信号|200 667 | http://www.baidu.com/|搜狐|200 668 | http://m.sohu.com/|体育|200 669 | http://m.sohu.com/n/346620805/|信号|200 670 | http://www.baidu.com/|搜狐|200 671 | http://m.sohu.com/|体育|200 672 | http://m.sohu.com/n/346620805/|信号|200 673 | http://www.baidu.com/|搜狐|200 674 | http://m.sohu.com/|体育|200 675 | http://m.sohu.com/n/346620805/|信号|200 676 | http://www.baidu.com/|搜狐|200 677 | http://m.sohu.com/|体育|200 678 | http://m.sohu.com/n/346620805/|信号|200 679 | http://www.baidu.com/|搜狐|200 680 | http://m.sohu.com/|体育|200 681 | http://m.sohu.com/n/346620805/|信号|200 682 | http://www.baidu.com/|搜狐|200 683 | http://m.sohu.com/|体育|200 684 | http://m.sohu.com/n/346620805/|信号|200 685 | http://www.baidu.com/|搜狐|200 686 | http://m.sohu.com/|体育|200 687 | http://m.sohu.com/n/346620805/|信号|200 688 | http://www.baidu.com/|搜狐|200 689 | http://m.sohu.com/|体育|200 690 | http://m.sohu.com/n/346620805/|信号|200 691 | http://www.baidu.com/|搜狐|200 692 | http://m.sohu.com/|体育|200 693 | http://m.sohu.com/n/346620805/|信号|200 694 | http://www.baidu.com/|搜狐|200 695 | http://m.sohu.com/|体育|200 696 | http://m.sohu.com/n/346620805/|信号|200 697 | http://www.baidu.com/|搜狐|200 698 | http://m.sohu.com/|体育|200 699 | http://m.sohu.com/n/346620805/|信号|200 700 | http://www.baidu.com/|搜狐|200 701 | http://m.sohu.com/|体育|200 702 | http://m.sohu.com/n/346620805/|信号|200 703 | http://www.baidu.com/|搜狐|200 704 | http://m.sohu.com/|体育|200 705 | http://m.sohu.com/n/346620805/|信号|200 706 | http://www.baidu.com/|搜狐|200 707 | http://m.sohu.com/|体育|200 708 | http://m.sohu.com/n/346620805/|信号|200 709 | http://www.baidu.com/|搜狐|200 710 | http://m.sohu.com/|体育|200 711 | http://m.sohu.com/n/346620805/|信号|200 712 | http://www.baidu.com/|搜狐|200 713 | http://m.sohu.com/|体育|200 714 | http://m.sohu.com/n/346620805/|信号|200 715 | http://www.baidu.com/|搜狐|200 716 | http://m.sohu.com/|体育|200 717 | http://m.sohu.com/n/346620805/|信号|200 718 | http://www.baidu.com/|搜狐|200 719 | http://m.sohu.com/|体育|200 720 | http://m.sohu.com/n/346620805/|信号|200 721 | http://www.baidu.com/|搜狐|200 722 | http://m.sohu.com/|体育|200 723 | http://m.sohu.com/n/346620805/|信号|200 724 | http://www.baidu.com/|搜狐|200 725 | http://m.sohu.com/|体育|200 726 | http://m.sohu.com/n/346620805/|信号|200 727 | http://www.baidu.com/|搜狐|200 728 | http://m.sohu.com/|体育|200 729 | http://m.sohu.com/n/346620805/|信号|200 730 | http://www.baidu.com/|搜狐|200 731 | http://m.sohu.com/|体育|200 732 | http://m.sohu.com/n/346620805/|信号|200 733 | http://www.baidu.com/|搜狐|200 734 | http://m.sohu.com/|体育|200 735 | http://m.sohu.com/n/346620805/|信号|200 736 | http://www.baidu.com/|搜狐|200 737 | http://m.sohu.com/|体育|200 738 | http://m.sohu.com/n/346620805/|信号|200 739 | http://www.baidu.com/|搜狐|200 740 | http://m.sohu.com/|体育|200 741 | http://m.sohu.com/n/346620805/|信号|200 742 | http://www.baidu.com/|搜狐|200 743 | http://m.sohu.com/|体育|200 744 | http://m.sohu.com/n/346620805/|信号|200 745 | http://www.baidu.com/|搜狐|200 746 | http://m.sohu.com/|体育|200 747 | http://m.sohu.com/n/346620805/|信号|200 748 | http://www.baidu.com/|搜狐|200 749 | http://m.sohu.com/|体育|200 750 | http://m.sohu.com/n/346620805/|信号|200 751 | http://www.baidu.com/|搜狐|200 752 | http://m.sohu.com/|体育|200 753 | http://m.sohu.com/n/346620805/|信号|200 754 | http://www.baidu.com/|搜狐|200 755 | http://m.sohu.com/|体育|200 756 | http://m.sohu.com/n/346620805/|信号|200 757 | http://www.baidu.com/|搜狐|200 758 | http://m.sohu.com/|体育|200 759 | http://m.sohu.com/n/346620805/|信号|200 760 | http://www.baidu.com/|搜狐|200 761 | http://m.sohu.com/|体育|200 762 | http://m.sohu.com/n/346620805/|信号|200 763 | http://www.baidu.com/|搜狐|200 764 | http://m.sohu.com/|体育|200 765 | http://m.sohu.com/n/346620805/|信号|200 766 | http://www.baidu.com/|搜狐|200 767 | http://m.sohu.com/|体育|200 768 | http://m.sohu.com/n/346620805/|信号|200 769 | http://www.baidu.com/|搜狐|200 770 | http://m.sohu.com/|体育|200 771 | http://m.sohu.com/n/346620805/|信号|200 772 | http://www.baidu.com/|搜狐|200 773 | http://m.sohu.com/|体育|200 774 | http://m.sohu.com/n/346620805/|信号|200 775 | http://www.baidu.com/|搜狐|200 776 | http://m.sohu.com/|体育|200 777 | http://m.sohu.com/n/346620805/|信号|200 778 | http://www.baidu.com/|搜狐|200 779 | http://m.sohu.com/|体育|200 780 | http://m.sohu.com/n/346620805/|信号|200 781 | http://www.baidu.com/|搜狐|200 782 | http://m.sohu.com/|体育|200 783 | http://m.sohu.com/n/346620805/|信号|200 784 | http://www.baidu.com/|搜狐|200 785 | http://m.sohu.com/|体育|200 786 | http://m.sohu.com/n/346620805/|信号|200 787 | http://www.baidu.com/|搜狐|200 788 | http://m.sohu.com/|体育|200 789 | http://m.sohu.com/n/346620805/|信号|200 790 | http://www.baidu.com/|搜狐|200 791 | http://m.sohu.com/|体育|200 792 | http://m.sohu.com/n/346620805/|信号|200 793 | http://www.baidu.com/|搜狐|200 794 | http://m.sohu.com/|体育|200 795 | http://m.sohu.com/n/346620805/|信号|200 796 | http://www.baidu.com/|搜狐|200 797 | http://m.sohu.com/|体育|200 798 | http://m.sohu.com/n/346620805/|信号|200 799 | http://www.baidu.com/|搜狐|200 800 | http://m.sohu.com/|体育|200 801 | http://m.sohu.com/n/346620805/|信号|200 802 | http://www.baidu.com/|搜狐|200 803 | http://m.sohu.com/|体育|200 804 | http://m.sohu.com/n/346620805/|信号|200 805 | http://www.baidu.com/|搜狐|200 806 | http://m.sohu.com/|体育|200 807 | http://m.sohu.com/n/346620805/|信号|200 808 | http://www.baidu.com/|搜狐|200 809 | http://m.sohu.com/|体育|200 810 | http://m.sohu.com/n/346620805/|信号|200 811 | http://www.baidu.com/|搜狐|200 812 | http://m.sohu.com/|体育|200 813 | http://m.sohu.com/n/346620805/|信号|200 814 | http://www.baidu.com/|搜狐|200 815 | http://m.sohu.com/|体育|200 816 | http://m.sohu.com/n/346620805/|信号|200 817 | http://www.baidu.com/|搜狐|200 818 | http://m.sohu.com/|体育|200 819 | http://m.sohu.com/n/346620805/|信号|200 820 | http://www.baidu.com/|搜狐|200 821 | http://m.sohu.com/|体育|200 822 | http://m.sohu.com/n/346620805/|信号|200 823 | http://www.baidu.com/|搜狐|200 824 | http://m.sohu.com/|体育|200 825 | http://m.sohu.com/n/346620805/|信号|200 826 | http://www.baidu.com/|搜狐|200 827 | http://m.sohu.com/|体育|200 828 | http://m.sohu.com/n/346620805/|信号|200 829 | http://www.baidu.com/|搜狐|200 830 | http://m.sohu.com/|体育|200 831 | http://m.sohu.com/n/346620805/|信号|200 832 | http://www.baidu.com/|搜狐|200 833 | http://m.sohu.com/|体育|200 834 | http://m.sohu.com/n/346620805/|信号|200 835 | http://www.baidu.com/|搜狐|200 836 | http://m.sohu.com/|体育|200 837 | http://m.sohu.com/n/346620805/|信号|200 838 | http://www.baidu.com/|搜狐|200 839 | http://m.sohu.com/|体育|200 840 | http://m.sohu.com/n/346620805/|信号|200 841 | http://www.baidu.com/|搜狐|200 842 | http://m.sohu.com/|体育|200 843 | http://m.sohu.com/n/346620805/|信号|200 844 | http://www.baidu.com/|搜狐|200 845 | http://m.sohu.com/|体育|200 846 | http://m.sohu.com/n/346620805/|信号|200 847 | http://www.baidu.com/|搜狐|200 848 | http://m.sohu.com/|体育|200 849 | http://m.sohu.com/n/346620805/|信号|200 850 | http://www.baidu.com/|搜狐|200 851 | http://m.sohu.com/|体育|200 852 | http://m.sohu.com/n/346620805/|信号|200 853 | http://www.baidu.com/|搜狐|200 854 | http://m.sohu.com/|体育|200 855 | http://m.sohu.com/n/346620805/|信号|200 856 | http://www.baidu.com/|搜狐|200 857 | http://m.sohu.com/|体育|200 858 | http://m.sohu.com/n/346620805/|信号|200 859 | http://www.baidu.com/|搜狐|200 860 | http://m.sohu.com/|体育|200 861 | http://m.sohu.com/n/346620805/|信号|200 862 | http://www.baidu.com/|搜狐|200 863 | http://m.sohu.com/|体育|200 864 | http://m.sohu.com/n/346620805/|信号|200 865 | http://www.baidu.com/|搜狐|200 866 | http://m.sohu.com/|体育|200 867 | http://m.sohu.com/n/346620805/|信号|200 868 | http://www.baidu.com/|搜狐|200 869 | http://m.sohu.com/|体育|200 870 | http://m.sohu.com/n/346620805/|信号|200 871 | http://www.baidu.com/|搜狐|200 872 | http://m.sohu.com/|体育|200 873 | http://m.sohu.com/n/346620805/|信号|200 874 | http://www.baidu.com/|搜狐|200 875 | http://m.sohu.com/|体育|200 876 | http://m.sohu.com/n/346620805/|信号|200 877 | http://www.baidu.com/|搜狐|200 878 | http://m.sohu.com/|体育|200 879 | http://m.sohu.com/n/346620805/|信号|200 880 | http://www.baidu.com/|搜狐|200 881 | http://m.sohu.com/|体育|200 882 | http://m.sohu.com/n/346620805/|信号|200 883 | http://www.baidu.com/|搜狐|200 884 | http://m.sohu.com/|体育|200 885 | http://m.sohu.com/n/346620805/|信号|200 886 | http://www.baidu.com/|搜狐|200 887 | http://m.sohu.com/|体育|200 888 | http://m.sohu.com/n/346620805/|信号|200 889 | http://www.baidu.com/|搜狐|200 890 | http://m.sohu.com/|体育|200 891 | http://m.sohu.com/n/346620805/|信号|200 892 | http://www.baidu.com/|搜狐|200 893 | http://m.sohu.com/|体育|200 894 | http://m.sohu.com/n/346620805/|信号|200 895 | http://www.baidu.com/|搜狐|200 896 | http://m.sohu.com/|体育|200 897 | http://m.sohu.com/n/346620805/|信号|200 898 | http://www.baidu.com/|搜狐|200 899 | http://m.sohu.com/|体育|200 900 | http://m.sohu.com/n/346620805/|信号|200 901 | http://www.baidu.com/|搜狐|200 902 | http://m.sohu.com/|体育|200 903 | http://m.sohu.com/n/346620805/|信号|200 904 | http://www.baidu.com/|搜狐|200 905 | http://m.sohu.com/|体育|200 906 | http://m.sohu.com/n/346620805/|信号|200 907 | http://www.baidu.com/|搜狐|200 908 | http://m.sohu.com/|体育|200 909 | http://m.sohu.com/n/346620805/|信号|200 910 | http://www.baidu.com/|搜狐|200 911 | http://m.sohu.com/|体育|200 912 | http://m.sohu.com/n/346620805/|信号|200 913 | http://www.baidu.com/|搜狐|200 914 | http://m.sohu.com/|体育|200 915 | http://m.sohu.com/n/346620805/|信号|200 916 | http://www.baidu.com/|搜狐|200 917 | http://m.sohu.com/|体育|200 918 | http://m.sohu.com/n/346620805/|信号|200 919 | http://www.baidu.com/|搜狐|200 920 | http://m.sohu.com/|体育|200 921 | http://m.sohu.com/n/346620805/|信号|200 922 | http://www.baidu.com/|搜狐|200 923 | http://m.sohu.com/|体育|200 924 | http://m.sohu.com/n/346620805/|信号|200 925 | http://www.baidu.com/|搜狐|200 926 | http://m.sohu.com/|体育|200 927 | http://m.sohu.com/n/346620805/|信号|200 928 | http://www.baidu.com/|搜狐|200 929 | http://m.sohu.com/|体育|200 930 | http://m.sohu.com/n/346620805/|信号|200 931 | http://www.baidu.com/|搜狐|200 932 | http://m.sohu.com/|体育|200 933 | http://m.sohu.com/n/346620805/|信号|200 934 | http://www.baidu.com/|搜狐|200 935 | http://m.sohu.com/|体育|200 936 | http://m.sohu.com/n/346620805/|信号|200 937 | http://www.baidu.com/|搜狐|200 938 | http://m.sohu.com/|体育|200 939 | http://m.sohu.com/n/346620805/|信号|200 940 | http://www.baidu.com/|搜狐|200 941 | http://m.sohu.com/|体育|200 942 | http://m.sohu.com/n/346620805/|信号|200 943 | http://www.baidu.com/|搜狐|200 944 | http://m.sohu.com/|体育|200 945 | http://m.sohu.com/n/346620805/|信号|200 946 | http://www.baidu.com/|搜狐|200 947 | http://m.sohu.com/|体育|200 948 | http://m.sohu.com/n/346620805/|信号|200 949 | http://www.baidu.com/|搜狐|200 950 | http://m.sohu.com/|体育|200 951 | http://m.sohu.com/n/346620805/|信号|200 952 | http://www.baidu.com/|搜狐|200 953 | http://m.sohu.com/|体育|200 954 | http://m.sohu.com/n/346620805/|信号|200 955 | http://www.baidu.com/|搜狐|200 956 | http://m.sohu.com/|体育|200 957 | http://m.sohu.com/n/346620805/|信号|200 958 | http://www.baidu.com/|搜狐|200 959 | http://m.sohu.com/|体育|200 960 | http://m.sohu.com/n/346620805/|信号|200 961 | http://www.baidu.com/|搜狐|200 962 | http://m.sohu.com/|体育|200 963 | http://m.sohu.com/n/346620805/|信号|200 964 | http://www.baidu.com/|搜狐|200 965 | http://m.sohu.com/|体育|200 966 | http://m.sohu.com/n/346620805/|信号|200 967 | http://www.baidu.com/|搜狐|200 968 | http://m.sohu.com/|体育|200 969 | http://m.sohu.com/n/346620805/|信号|200 970 | http://www.baidu.com/|搜狐|200 971 | http://m.sohu.com/|体育|200 972 | http://m.sohu.com/n/346620805/|信号|200 973 | http://www.baidu.com/|搜狐|200 974 | http://m.sohu.com/|体育|200 975 | http://m.sohu.com/n/346620805/|信号|200 976 | http://www.baidu.com/|搜狐|200 977 | http://m.sohu.com/|体育|200 978 | http://m.sohu.com/n/346620805/|信号|200 979 | http://www.baidu.com/|搜狐|200 980 | http://m.sohu.com/|体育|200 981 | http://m.sohu.com/n/346620805/|信号|200 982 | http://www.baidu.com/|搜狐|200 983 | http://m.sohu.com/|体育|200 984 | http://m.sohu.com/n/346620805/|信号|200 985 | http://www.baidu.com/|搜狐|200 986 | http://m.sohu.com/|体育|200 987 | http://m.sohu.com/n/346620805/|信号|200 988 | http://www.baidu.com/|搜狐|200 989 | http://m.sohu.com/|体育|200 990 | http://m.sohu.com/n/346620805/|信号|200 991 | http://www.baidu.com/|搜狐|200 992 | http://m.sohu.com/|体育|200 993 | http://m.sohu.com/n/346620805/|信号|200 994 | http://www.baidu.com/|搜狐|200 995 | http://m.sohu.com/|体育|200 996 | http://m.sohu.com/n/346620805/|信号|200 997 | http://www.baidu.com/|搜狐|200 998 | http://m.sohu.com/|体育|200 999 | http://m.sohu.com/n/346620805/|信号|200 1000 | http://www.baidu.com/|搜狐|200 1001 | http://m.sohu.com/|体育|200 1002 | http://m.sohu.com/n/346620805/|信号|200 1003 | http://www.baidu.com/|搜狐|200 1004 | http://m.sohu.com/|体育|200 1005 | http://m.sohu.com/n/346620805/|信号|200 1006 | http://www.baidu.com/|搜狐|200 1007 | http://m.sohu.com/|体育|200 1008 | http://m.sohu.com/n/346620805/|信号|200 1009 | http://www.baidu.com/|搜狐|200 1010 | http://m.sohu.com/|体育|200 1011 | http://m.sohu.com/n/346620805/|信号|200 1012 | http://www.baidu.com/|搜狐|200 1013 | http://m.sohu.com/|体育|200 1014 | http://m.sohu.com/n/346620805/|信号|200 1015 | http://www.baidu.com/|搜狐|200 1016 | http://m.sohu.com/|体育|200 1017 | http://m.sohu.com/n/346620805/|信号|200 1018 | http://www.baidu.com/|搜狐|200 1019 | http://m.sohu.com/|体育|200 1020 | http://m.sohu.com/n/346620805/|信号|200 1021 | http://www.baidu.com/|搜狐|200 1022 | http://m.sohu.com/|体育|200 1023 | http://m.sohu.com/n/346620805/|信号|200 1024 | http://www.baidu.com/|搜狐|200 1025 | http://m.sohu.com/|体育|200 1026 | http://m.sohu.com/n/346620805/|信号|200 1027 | http://www.baidu.com/|搜狐|200 1028 | http://m.sohu.com/|体育|200 1029 | http://m.sohu.com/n/346620805/|信号|200 1030 | http://www.baidu.com/|搜狐|200 1031 | http://m.sohu.com/|体育|200 1032 | http://m.sohu.com/n/346620805/|信号|200 1033 | http://www.baidu.com/|搜狐|200 1034 | http://m.sohu.com/|体育|200 1035 | http://m.sohu.com/n/346620805/|信号|200 1036 | http://www.baidu.com/|搜狐|200 1037 | http://m.sohu.com/|体育|200 1038 | http://m.sohu.com/n/346620805/|信号|200 1039 | http://www.baidu.com/|搜狐|200 1040 | http://m.sohu.com/|体育|200 1041 | http://m.sohu.com/n/346620805/|信号|200 1042 | http://www.baidu.com/|搜狐|200 1043 | http://m.sohu.com/|体育|200 1044 | http://m.sohu.com/n/346620805/|信号|200 1045 | http://www.baidu.com/|搜狐|200 1046 | http://m.sohu.com/|体育|200 1047 | http://m.sohu.com/n/346620805/|信号|200 1048 | http://www.baidu.com/|搜狐|200 1049 | http://m.sohu.com/|体育|200 1050 | http://m.sohu.com/n/346620805/|信号|200 1051 | http://www.baidu.com/|搜狐|200 1052 | http://m.sohu.com/|体育|200 1053 | http://m.sohu.com/n/346620805/|信号|200 1054 | http://www.baidu.com/|搜狐|200 1055 | http://m.sohu.com/|体育|200 1056 | http://m.sohu.com/n/346620805/|信号|200 1057 | http://www.baidu.com/|搜狐|200 1058 | http://m.sohu.com/|体育|200 1059 | http://m.sohu.com/n/346620805/|信号|200 1060 | http://www.baidu.com/|搜狐|200 1061 | http://m.sohu.com/|体育|200 1062 | http://m.sohu.com/n/346620805/|信号|200 1063 | http://www.baidu.com/|搜狐|200 1064 | http://m.sohu.com/|体育|200 1065 | http://m.sohu.com/n/346620805/|信号|200 1066 | http://www.baidu.com/|搜狐|200 1067 | http://m.sohu.com/|体育|200 1068 | http://m.sohu.com/n/346620805/|信号|200 1069 | http://www.baidu.com/|搜狐|200 1070 | http://m.sohu.com/|体育|200 1071 | http://m.sohu.com/n/346620805/|信号|200 1072 | http://www.baidu.com/|搜狐|200 1073 | http://m.sohu.com/|体育|200 1074 | http://m.sohu.com/n/346620805/|信号|200 1075 | http://www.baidu.com/|搜狐|200 1076 | http://m.sohu.com/|体育|200 1077 | http://m.sohu.com/n/346620805/|信号|200 1078 | http://www.baidu.com/|搜狐|200 1079 | http://m.sohu.com/|体育|200 1080 | http://m.sohu.com/n/346620805/|信号|200 1081 | http://www.baidu.com/|搜狐|200 1082 | http://m.sohu.com/|体育|200 1083 | http://m.sohu.com/n/346620805/|信号|200 1084 | http://www.baidu.com/|搜狐|200 1085 | http://m.sohu.com/|体育|200 1086 | http://m.sohu.com/n/346620805/|信号|200 1087 | http://www.baidu.com/|搜狐|200 1088 | http://m.sohu.com/|体育|200 1089 | http://m.sohu.com/n/346620805/|信号|200 1090 | http://www.baidu.com/|搜狐|200 1091 | http://m.sohu.com/|体育|200 1092 | http://m.sohu.com/n/346620805/|信号|200 1093 | http://www.baidu.com/|搜狐|200 1094 | http://m.sohu.com/|体育|200 1095 | http://m.sohu.com/n/346620805/|信号|200 1096 | http://www.baidu.com/|搜狐|200 1097 | http://m.sohu.com/|体育|200 1098 | http://m.sohu.com/n/346620805/|信号|200 1099 | http://www.baidu.com/|搜狐|200 1100 | http://m.sohu.com/|体育|200 1101 | http://m.sohu.com/n/346620805/|信号|200 1102 | http://www.baidu.com/|搜狐|200 1103 | http://m.sohu.com/|体育|200 1104 | http://m.sohu.com/n/346620805/|信号|200 1105 | http://www.baidu.com/|搜狐|200 1106 | http://m.sohu.com/|体育|200 1107 | http://m.sohu.com/n/346620805/|信号|200 1108 | http://www.baidu.com/|搜狐|200 1109 | http://m.sohu.com/|体育|200 1110 | http://m.sohu.com/n/346620805/|信号|200 1111 | http://www.baidu.com/|搜狐|200 1112 | http://m.sohu.com/|体育|200 1113 | http://m.sohu.com/n/346620805/|信号|200 1114 | http://www.baidu.com/|搜狐|200 1115 | http://m.sohu.com/|体育|200 1116 | http://m.sohu.com/n/346620805/|信号|200 1117 | http://www.baidu.com/|搜狐|200 1118 | http://m.sohu.com/|体育|200 1119 | http://m.sohu.com/n/346620805/|信号|200 1120 | http://www.baidu.com/|搜狐|200 1121 | http://m.sohu.com/|体育|200 1122 | http://m.sohu.com/n/346620805/|信号|200 1123 | http://www.baidu.com/|搜狐|200 1124 | http://m.sohu.com/|体育|200 1125 | http://m.sohu.com/n/346620805/|信号|200 1126 | http://www.baidu.com/|搜狐|200 1127 | http://m.sohu.com/|体育|200 1128 | http://m.sohu.com/n/346620805/|信号|200 1129 | http://www.baidu.com/|搜狐|200 1130 | http://m.sohu.com/|体育|200 1131 | http://m.sohu.com/n/346620805/|信号|200 1132 | http://www.baidu.com/|搜狐|200 1133 | http://m.sohu.com/|体育|200 1134 | http://m.sohu.com/n/346620805/|信号|200 1135 | http://www.baidu.com/|搜狐|200 1136 | http://m.sohu.com/|体育|200 1137 | http://m.sohu.com/n/346620805/|信号|200 1138 | http://www.baidu.com/|搜狐|200 1139 | http://m.sohu.com/|体育|200 1140 | http://m.sohu.com/n/346620805/|信号|200 1141 | http://www.baidu.com/|搜狐|200 1142 | http://m.sohu.com/|体育|200 1143 | http://m.sohu.com/n/346620805/|信号|200 1144 | http://www.baidu.com/|搜狐|200 1145 | http://m.sohu.com/|体育|200 1146 | http://m.sohu.com/n/346620805/|信号|200 1147 | http://www.baidu.com/|搜狐|200 1148 | http://m.sohu.com/|体育|200 1149 | http://m.sohu.com/n/346620805/|信号|200 1150 | http://www.baidu.com/|搜狐|200 1151 | http://m.sohu.com/|体育|200 1152 | http://m.sohu.com/n/346620805/|信号|200 1153 | http://www.baidu.com/|搜狐|200 1154 | http://m.sohu.com/|体育|200 1155 | http://m.sohu.com/n/346620805/|信号|200 1156 | http://www.baidu.com/|搜狐|200 1157 | http://m.sohu.com/|体育|200 1158 | http://m.sohu.com/n/346620805/|信号|200 1159 | http://www.baidu.com/|搜狐|200 1160 | http://m.sohu.com/|体育|200 1161 | http://m.sohu.com/n/346620805/|信号|200 1162 | http://www.baidu.com/|搜狐|200 1163 | http://m.sohu.com/|体育|200 1164 | http://m.sohu.com/n/346620805/|信号|200 1165 | http://www.baidu.com/|搜狐|200 1166 | http://m.sohu.com/|体育|200 1167 | http://m.sohu.com/n/346620805/|信号|200 1168 | http://www.baidu.com/|搜狐|200 1169 | http://m.sohu.com/|体育|200 1170 | http://m.sohu.com/n/346620805/|信号|200 1171 | http://www.baidu.com/|搜狐|200 1172 | http://m.sohu.com/|体育|200 1173 | http://m.sohu.com/n/346620805/|信号|200 1174 | http://www.baidu.com/|搜狐|200 1175 | http://m.sohu.com/|体育|200 1176 | http://m.sohu.com/n/346620805/|信号|200 1177 | http://www.baidu.com/|搜狐|200 1178 | http://m.sohu.com/|体育|200 1179 | http://m.sohu.com/n/346620805/|信号|200 1180 | http://www.baidu.com/|搜狐|200 1181 | http://m.sohu.com/|体育|200 1182 | http://m.sohu.com/n/346620805/|信号|200 1183 | http://www.baidu.com/|搜狐|200 1184 | http://m.sohu.com/|体育|200 1185 | http://m.sohu.com/n/346620805/|信号|200 1186 | http://www.baidu.com/|搜狐|200 1187 | http://m.sohu.com/|体育|200 1188 | http://m.sohu.com/n/346620805/|信号|200 1189 | http://www.baidu.com/|搜狐|200 1190 | http://m.sohu.com/|体育|200 1191 | http://m.sohu.com/n/346620805/|信号|200 1192 | http://www.baidu.com/|搜狐|200 1193 | http://m.sohu.com/|体育|200 1194 | http://m.sohu.com/n/346620805/|信号|200 1195 | http://www.baidu.com/|搜狐|200 1196 | http://m.sohu.com/|体育|200 1197 | http://m.sohu.com/n/346620805/|信号|200 1198 | http://www.baidu.com/|搜狐|200 1199 | http://m.sohu.com/|体育|200 1200 | http://m.sohu.com/n/346620805/|信号|200 1201 | http://www.baidu.com/|搜狐|200 1202 | http://m.sohu.com/|体育|200 1203 | http://m.sohu.com/n/346620805/|信号|200 1204 | http://www.baidu.com/|搜狐|200 1205 | http://m.sohu.com/|体育|200 1206 | http://m.sohu.com/n/346620805/|信号|200 1207 | http://www.baidu.com/|搜狐|200 1208 | http://m.sohu.com/|体育|200 1209 | http://m.sohu.com/n/346620805/|信号|200 1210 | http://www.baidu.com/|搜狐|200 1211 | http://m.sohu.com/|体育|200 1212 | http://m.sohu.com/n/346620805/|信号|200 1213 | http://www.baidu.com/|搜狐|200 1214 | http://m.sohu.com/|体育|200 1215 | http://m.sohu.com/n/346620805/|信号|200 1216 | http://www.baidu.com/|搜狐|200 1217 | http://m.sohu.com/|体育|200 1218 | http://m.sohu.com/n/346620805/|信号|200 1219 | http://www.baidu.com/|搜狐|200 1220 | http://m.sohu.com/|体育|200 1221 | http://m.sohu.com/n/346620805/|信号|200 1222 | http://www.baidu.com/|搜狐|200 1223 | http://m.sohu.com/|体育|200 1224 | http://m.sohu.com/n/346620805/|信号|200 1225 | http://www.baidu.com/|搜狐|200 1226 | http://m.sohu.com/|体育|200 1227 | http://m.sohu.com/n/346620805/|信号|200 1228 | http://www.baidu.com/|搜狐|200 1229 | http://m.sohu.com/|体育|200 1230 | http://m.sohu.com/n/346620805/|信号|200 1231 | http://www.baidu.com/|搜狐|200 1232 | http://m.sohu.com/|体育|200 1233 | http://m.sohu.com/n/346620805/|信号|200 1234 | http://www.baidu.com/|搜狐|200 1235 | http://m.sohu.com/|体育|200 1236 | http://m.sohu.com/n/346620805/|信号|200 1237 | http://www.baidu.com/|搜狐|200 1238 | http://m.sohu.com/|体育|200 1239 | http://m.sohu.com/n/346620805/|信号|200 1240 | http://www.baidu.com/|搜狐|200 1241 | http://m.sohu.com/|体育|200 1242 | http://m.sohu.com/n/346620805/|信号|200 1243 | http://www.baidu.com/|搜狐|200 1244 | http://m.sohu.com/|体育|200 1245 | http://m.sohu.com/n/346620805/|信号|200 1246 | http://www.baidu.com/|搜狐|200 1247 | http://m.sohu.com/|体育|200 1248 | http://m.sohu.com/n/346620805/|信号|200 1249 | http://www.baidu.com/|搜狐|200 1250 | http://m.sohu.com/|体育|200 1251 | http://m.sohu.com/n/346620805/|信号|200 1252 | http://www.baidu.com/|搜狐|200 1253 | http://m.sohu.com/|体育|200 1254 | http://m.sohu.com/n/346620805/|信号|200 1255 | http://www.baidu.com/|搜狐|200 1256 | http://m.sohu.com/|体育|200 1257 | http://m.sohu.com/n/346620805/|信号|200 1258 | http://www.baidu.com/|搜狐|200 1259 | http://m.sohu.com/|体育|200 1260 | http://m.sohu.com/n/346620805/|信号|200 1261 | http://www.baidu.com/|搜狐|200 1262 | http://m.sohu.com/|体育|200 1263 | http://m.sohu.com/n/346620805/|信号|200 1264 | http://www.baidu.com/|搜狐|200 1265 | http://m.sohu.com/|体育|200 1266 | http://m.sohu.com/n/346620805/|信号|200 1267 | http://www.baidu.com/|搜狐|200 1268 | http://m.sohu.com/|体育|200 1269 | http://m.sohu.com/n/346620805/|信号|200 1270 | http://www.baidu.com/|搜狐|200 1271 | http://m.sohu.com/|体育|200 1272 | http://m.sohu.com/n/346620805/|信号|200 1273 | http://www.baidu.com/|搜狐|200 1274 | http://m.sohu.com/|体育|200 1275 | http://m.sohu.com/n/346620805/|信号|200 1276 | http://www.baidu.com/|搜狐|200 1277 | http://m.sohu.com/|体育|200 1278 | http://m.sohu.com/n/346620805/|信号|200 1279 | http://www.baidu.com/|搜狐|200 1280 | http://m.sohu.com/|体育|200 1281 | http://m.sohu.com/n/346620805/|信号|200 1282 | http://www.baidu.com/|搜狐|200 1283 | http://m.sohu.com/|体育|200 1284 | http://m.sohu.com/n/346620805/|信号|200 1285 | http://www.baidu.com/|搜狐|200 1286 | http://m.sohu.com/|体育|200 1287 | http://m.sohu.com/n/346620805/|信号|200 1288 | http://www.baidu.com/|搜狐|200 1289 | http://m.sohu.com/|体育|200 1290 | http://m.sohu.com/n/346620805/|信号|200 1291 | http://www.baidu.com/|搜狐|200 1292 | http://m.sohu.com/|体育|200 1293 | http://m.sohu.com/n/346620805/|信号|200 1294 | http://www.baidu.com/|搜狐|200 1295 | http://m.sohu.com/|体育|200 1296 | http://m.sohu.com/n/346620805/|信号|200 1297 | http://www.baidu.com/|搜狐|200 1298 | http://m.sohu.com/|体育|200 1299 | http://m.sohu.com/n/346620805/|信号|200 1300 | http://www.baidu.com/|搜狐|200 1301 | http://m.sohu.com/|体育|200 1302 | http://m.sohu.com/n/346620805/|信号|200 1303 | http://www.baidu.com/|搜狐|200 1304 | http://m.sohu.com/|体育|200 1305 | http://m.sohu.com/n/346620805/|信号|200 1306 | http://www.baidu.com/|搜狐|200 1307 | http://m.sohu.com/|体育|200 1308 | http://m.sohu.com/n/346620805/|信号|200 1309 | http://www.baidu.com/|搜狐|200 1310 | http://m.sohu.com/|体育|200 1311 | http://m.sohu.com/n/346620805/|信号|200 1312 | http://www.baidu.com/|搜狐|200 1313 | http://m.sohu.com/|体育|200 1314 | http://m.sohu.com/n/346620805/|信号|200 1315 | http://www.baidu.com/|搜狐|200 1316 | http://m.sohu.com/|体育|200 1317 | http://m.sohu.com/n/346620805/|信号|200 1318 | http://www.baidu.com/|搜狐|200 1319 | http://m.sohu.com/|体育|200 1320 | http://m.sohu.com/n/346620805/|信号|200 1321 | http://www.baidu.com/|搜狐|200 1322 | http://m.sohu.com/|体育|200 1323 | http://m.sohu.com/n/346620805/|信号|200 1324 | http://www.baidu.com/|搜狐|200 1325 | http://m.sohu.com/|体育|200 1326 | http://m.sohu.com/n/346620805/|信号|200 1327 | http://www.baidu.com/|搜狐|200 1328 | http://m.sohu.com/|体育|200 1329 | http://m.sohu.com/n/346620805/|信号|200 1330 | http://www.baidu.com/|搜狐|200 1331 | http://m.sohu.com/|体育|200 1332 | http://m.sohu.com/n/346620805/|信号|200 1333 | http://www.baidu.com/|搜狐|200 1334 | http://m.sohu.com/|体育|200 1335 | http://m.sohu.com/n/346620805/|信号|200 1336 | http://www.baidu.com/|搜狐|200 1337 | http://m.sohu.com/|体育|200 1338 | http://m.sohu.com/n/346620805/|信号|200 1339 | http://www.baidu.com/|搜狐|200 1340 | http://m.sohu.com/|体育|200 1341 | http://m.sohu.com/n/346620805/|信号|200 1342 | http://www.baidu.com/|搜狐|200 1343 | http://m.sohu.com/|体育|200 1344 | http://m.sohu.com/n/346620805/|信号|200 1345 | http://www.baidu.com/|搜狐|200 1346 | http://m.sohu.com/|体育|200 1347 | http://m.sohu.com/n/346620805/|信号|200 1348 | http://www.baidu.com/|搜狐|200 1349 | http://m.sohu.com/|体育|200 1350 | http://m.sohu.com/n/346620805/|信号|200 1351 | http://www.baidu.com/|搜狐|200 1352 | http://m.sohu.com/|体育|200 1353 | http://m.sohu.com/n/346620805/|信号|200 1354 | http://www.baidu.com/|搜狐|200 1355 | http://m.sohu.com/|体育|200 1356 | http://m.sohu.com/n/346620805/|信号|200 1357 | http://www.baidu.com/|搜狐|200 1358 | http://m.sohu.com/|体育|200 1359 | http://m.sohu.com/n/346620805/|信号|200 1360 | http://www.baidu.com/|搜狐|200 1361 | http://m.sohu.com/|体育|200 1362 | http://m.sohu.com/n/346620805/|信号|200 1363 | http://www.baidu.com/|搜狐|200 1364 | http://m.sohu.com/|体育|200 1365 | http://m.sohu.com/n/346620805/|信号|200 1366 | http://www.baidu.com/|搜狐|200 1367 | http://m.sohu.com/|体育|200 1368 | http://m.sohu.com/n/346620805/|信号|200 1369 | http://www.baidu.com/|搜狐|200 1370 | http://m.sohu.com/|体育|200 1371 | http://m.sohu.com/n/346620805/|信号|200 1372 | http://www.baidu.com/|搜狐|200 1373 | http://m.sohu.com/|体育|200 1374 | http://m.sohu.com/n/346620805/|信号|200 1375 | http://www.baidu.com/|搜狐|200 1376 | http://m.sohu.com/|体育|200 1377 | http://m.sohu.com/n/346620805/|信号|200 1378 | http://www.baidu.com/|搜狐|200 1379 | http://m.sohu.com/|体育|200 1380 | http://m.sohu.com/n/346620805/|信号|200 1381 | http://www.baidu.com/|搜狐|200 1382 | http://m.sohu.com/|体育|200 1383 | http://m.sohu.com/n/346620805/|信号|200 1384 | http://www.baidu.com/|搜狐|200 1385 | http://m.sohu.com/|体育|200 1386 | http://m.sohu.com/n/346620805/|信号|200 1387 | http://www.baidu.com/|搜狐|200 1388 | http://m.sohu.com/|体育|200 1389 | http://m.sohu.com/n/346620805/|信号|200 1390 | http://www.baidu.com/|搜狐|200 1391 | http://m.sohu.com/|体育|200 1392 | http://m.sohu.com/n/346620805/|信号|200 1393 | http://www.baidu.com/|搜狐|200 1394 | http://m.sohu.com/|体育|200 1395 | http://m.sohu.com/n/346620805/|信号|200 1396 | http://www.baidu.com/|搜狐|200 1397 | http://m.sohu.com/|体育|200 1398 | http://m.sohu.com/n/346620805/|信号|200 1399 | http://www.baidu.com/|搜狐|200 1400 | http://m.sohu.com/|体育|200 1401 | http://m.sohu.com/n/346620805/|信号|200 1402 | http://www.baidu.com/|搜狐|200 1403 | http://m.sohu.com/|体育|200 1404 | http://m.sohu.com/n/346620805/|信号|200 1405 | http://www.baidu.com/|搜狐|200 1406 | http://m.sohu.com/|体育|200 1407 | http://m.sohu.com/n/346620805/|信号|200 1408 | http://www.baidu.com/|搜狐|200 1409 | http://m.sohu.com/|体育|200 1410 | http://m.sohu.com/n/346620805/|信号|200 1411 | http://www.baidu.com/|搜狐|200 1412 | http://m.sohu.com/|体育|200 1413 | http://m.sohu.com/n/346620805/|信号|200 1414 | http://www.baidu.com/|搜狐|200 1415 | http://m.sohu.com/|体育|200 1416 | http://m.sohu.com/n/346620805/|信号|200 1417 | http://www.baidu.com/|搜狐|200 1418 | http://m.sohu.com/|体育|200 1419 | http://m.sohu.com/n/346620805/|信号|200 1420 | http://www.baidu.com/|搜狐|200 1421 | http://m.sohu.com/|体育|200 1422 | http://m.sohu.com/n/346620805/|信号|200 1423 | http://www.baidu.com/|搜狐|200 1424 | http://m.sohu.com/|体育|200 1425 | http://m.sohu.com/n/346620805/|信号|200 1426 | http://www.baidu.com/|搜狐|200 1427 | http://m.sohu.com/|体育|200 1428 | http://m.sohu.com/n/346620805/|信号|200 1429 | http://www.baidu.com/|搜狐|200 1430 | http://m.sohu.com/|体育|200 1431 | http://m.sohu.com/n/346620805/|信号|200 1432 | http://www.baidu.com/|搜狐|200 1433 | http://m.sohu.com/|体育|200 1434 | http://m.sohu.com/n/346620805/|信号|200 1435 | http://www.baidu.com/|搜狐|200 1436 | http://m.sohu.com/|体育|200 1437 | http://m.sohu.com/n/346620805/|信号|200 1438 | http://www.baidu.com/|搜狐|200 1439 | http://m.sohu.com/|体育|200 1440 | http://m.sohu.com/n/346620805/|信号|200 1441 | http://www.baidu.com/|搜狐|200 1442 | http://m.sohu.com/|体育|200 1443 | http://m.sohu.com/n/346620805/|信号|200 1444 | http://www.baidu.com/|搜狐|200 1445 | http://m.sohu.com/|体育|200 1446 | http://m.sohu.com/n/346620805/|信号|200 1447 | http://www.baidu.com/|搜狐|200 1448 | http://m.sohu.com/|体育|200 1449 | http://m.sohu.com/n/346620805/|信号|200 1450 | http://www.baidu.com/|搜狐|200 1451 | http://m.sohu.com/|体育|200 1452 | http://m.sohu.com/n/346620805/|信号|200 1453 | http://www.baidu.com/|搜狐|200 1454 | http://m.sohu.com/|体育|200 1455 | http://m.sohu.com/n/346620805/|信号|200 1456 | http://www.baidu.com/|搜狐|200 1457 | http://m.sohu.com/|体育|200 1458 | http://m.sohu.com/n/346620805/|信号|200 1459 | http://www.baidu.com/|搜狐|200 1460 | http://m.sohu.com/|体育|200 1461 | http://m.sohu.com/n/346620805/|信号|200 1462 | http://www.baidu.com/|搜狐|200 1463 | http://m.sohu.com/|体育|200 1464 | http://m.sohu.com/n/346620805/|信号|200 1465 | http://www.baidu.com/|搜狐|200 1466 | http://m.sohu.com/|体育|200 1467 | http://m.sohu.com/n/346620805/|信号|200 1468 | http://www.baidu.com/|搜狐|200 1469 | http://m.sohu.com/|体育|200 1470 | http://m.sohu.com/n/346620805/|信号|200 1471 | http://www.baidu.com/|搜狐|200 1472 | http://m.sohu.com/|体育|200 1473 | http://m.sohu.com/n/346620805/|信号|200 1474 | http://www.baidu.com/|搜狐|200 1475 | http://m.sohu.com/|体育|200 1476 | http://m.sohu.com/n/346620805/|信号|200 1477 | http://www.baidu.com/|搜狐|200 1478 | http://m.sohu.com/|体育|200 1479 | http://m.sohu.com/n/346620805/|信号|200 1480 | http://www.baidu.com/|搜狐|200 1481 | http://m.sohu.com/|体育|200 1482 | http://m.sohu.com/n/346620805/|信号|200 1483 | http://www.baidu.com/|搜狐|200 1484 | http://m.sohu.com/|体育|200 1485 | http://m.sohu.com/n/346620805/|信号|200 1486 | http://www.baidu.com/|搜狐|200 1487 | http://m.sohu.com/|体育|200 1488 | http://m.sohu.com/n/346620805/|信号|200 1489 | http://www.baidu.com/|搜狐|200 1490 | http://m.sohu.com/|体育|200 1491 | http://m.sohu.com/n/346620805/|信号|200 1492 | http://www.baidu.com/|搜狐|200 1493 | http://m.sohu.com/|体育|200 1494 | http://m.sohu.com/n/346620805/|信号|200 1495 | http://www.baidu.com/|搜狐|200 1496 | http://m.sohu.com/|体育|200 1497 | http://m.sohu.com/n/346620805/|信号|200 1498 | http://www.baidu.com/|搜狐|200 1499 | http://m.sohu.com/|体育|200 1500 | http://m.sohu.com/n/346620805/|信号|200 1501 | http://www.baidu.com/|搜狐|200 1502 | http://m.sohu.com/|体育|200 1503 | http://m.sohu.com/n/346620805/|信号|200 1504 | http://www.baidu.com/|搜狐|200 1505 | http://m.sohu.com/|体育|200 1506 | http://m.sohu.com/n/346620805/|信号|200 1507 | http://www.baidu.com/|搜狐|200 1508 | http://m.sohu.com/|体育|200 1509 | http://m.sohu.com/n/346620805/|信号|200 1510 | http://www.baidu.com/|搜狐|200 1511 | http://m.sohu.com/|体育|200 1512 | http://m.sohu.com/n/346620805/|信号|200 1513 | http://www.baidu.com/|搜狐|200 1514 | http://m.sohu.com/|体育|200 1515 | http://m.sohu.com/n/346620805/|信号|200 1516 | http://www.baidu.com/|搜狐|200 1517 | http://m.sohu.com/|体育|200 1518 | http://m.sohu.com/n/346620805/|信号|200 1519 | http://www.baidu.com/|搜狐|200 1520 | http://m.sohu.com/|体育|200 1521 | http://m.sohu.com/n/346620805/|信号|200 1522 | http://www.baidu.com/|搜狐|200 1523 | http://m.sohu.com/|体育|200 1524 | http://m.sohu.com/n/346620805/|信号|200 1525 | http://www.baidu.com/|搜狐|200 1526 | http://m.sohu.com/|体育|200 1527 | http://m.sohu.com/n/346620805/|信号|200 1528 | http://www.baidu.com/|搜狐|200 1529 | http://m.sohu.com/|体育|200 1530 | http://m.sohu.com/n/346620805/|信号|200 1531 | http://www.baidu.com/|搜狐|200 1532 | http://m.sohu.com/|体育|200 1533 | http://m.sohu.com/n/346620805/|信号|200 1534 | http://www.baidu.com/|搜狐|200 1535 | http://m.sohu.com/|体育|200 1536 | http://m.sohu.com/n/346620805/|信号|200 1537 | http://www.baidu.com/|搜狐|200 1538 | http://m.sohu.com/|体育|200 1539 | http://m.sohu.com/n/346620805/|信号|200 1540 | http://www.baidu.com/|搜狐|200 1541 | http://m.sohu.com/|体育|200 1542 | http://m.sohu.com/n/346620805/|信号|200 1543 | http://www.baidu.com/|搜狐|200 1544 | http://m.sohu.com/|体育|200 1545 | http://m.sohu.com/n/346620805/|信号|200 1546 | http://www.baidu.com/|搜狐|200 1547 | http://m.sohu.com/|体育|200 1548 | http://m.sohu.com/n/346620805/|信号|200 1549 | http://www.baidu.com/|搜狐|200 1550 | http://m.sohu.com/|体育|200 1551 | http://m.sohu.com/n/346620805/|信号|200 1552 | http://www.baidu.com/|搜狐|200 1553 | http://m.sohu.com/|体育|200 1554 | http://m.sohu.com/n/346620805/|信号|200 1555 | http://www.baidu.com/|搜狐|200 1556 | http://m.sohu.com/|体育|200 1557 | http://m.sohu.com/n/346620805/|信号|200 1558 | http://www.baidu.com/|搜狐|200 1559 | http://m.sohu.com/|体育|200 1560 | http://m.sohu.com/n/346620805/|信号|200 1561 | http://www.baidu.com/|搜狐|200 1562 | http://m.sohu.com/|体育|200 1563 | http://m.sohu.com/n/346620805/|信号|200 1564 | http://www.baidu.com/|搜狐|200 1565 | http://m.sohu.com/|体育|200 1566 | http://m.sohu.com/n/346620805/|信号|200 1567 | http://www.baidu.com/|搜狐|200 1568 | http://m.sohu.com/|体育|200 1569 | http://m.sohu.com/n/346620805/|信号|200 1570 | http://www.baidu.com/|搜狐|200 1571 | http://m.sohu.com/|体育|200 1572 | http://m.sohu.com/n/346620805/|信号|200 1573 | http://www.baidu.com/|搜狐|200 1574 | http://m.sohu.com/|体育|200 1575 | http://m.sohu.com/n/346620805/|信号|200 1576 | http://www.baidu.com/|搜狐|200 1577 | http://m.sohu.com/|体育|200 1578 | http://m.sohu.com/n/346620805/|信号|200 1579 | http://www.baidu.com/|搜狐|200 1580 | http://m.sohu.com/|体育|200 1581 | http://m.sohu.com/n/346620805/|信号|200 1582 | http://www.baidu.com/|搜狐|200 1583 | http://m.sohu.com/|体育|200 1584 | http://m.sohu.com/n/346620805/|信号|200 1585 | http://www.baidu.com/|搜狐|200 1586 | http://m.sohu.com/|体育|200 1587 | http://m.sohu.com/n/346620805/|信号|200 1588 | http://www.baidu.com/|搜狐|200 1589 | http://m.sohu.com/|体育|200 1590 | http://m.sohu.com/n/346620805/|信号|200 1591 | http://www.baidu.com/|搜狐|200 1592 | http://m.sohu.com/|体育|200 1593 | http://m.sohu.com/n/346620805/|信号|200 1594 | http://www.baidu.com/|搜狐|200 1595 | http://m.sohu.com/|体育|200 1596 | http://m.sohu.com/n/346620805/|信号|200 1597 | http://www.baidu.com/|搜狐|200 1598 | http://m.sohu.com/|体育|200 1599 | http://m.sohu.com/n/346620805/|信号|200 1600 | http://www.baidu.com/|搜狐|200 1601 | http://m.sohu.com/|体育|200 1602 | http://m.sohu.com/n/346620805/|信号|200 1603 | http://www.baidu.com/|搜狐|200 1604 | http://m.sohu.com/|体育|200 1605 | http://m.sohu.com/n/346620805/|信号|200 1606 | http://www.baidu.com/|搜狐|200 1607 | http://m.sohu.com/|体育|200 1608 | http://m.sohu.com/n/346620805/|信号|200 1609 | http://www.baidu.com/|搜狐|200 1610 | http://m.sohu.com/|体育|200 1611 | http://m.sohu.com/n/346620805/|信号|200 1612 | http://www.baidu.com/|搜狐|200 1613 | http://m.sohu.com/|体育|200 1614 | http://m.sohu.com/n/346620805/|信号|200 1615 | http://www.baidu.com/|搜狐|200 1616 | http://m.sohu.com/|体育|200 1617 | http://m.sohu.com/n/346620805/|信号|200 1618 | http://www.baidu.com/|搜狐|200 1619 | http://m.sohu.com/|体育|200 1620 | http://m.sohu.com/n/346620805/|信号|200 1621 | http://www.baidu.com/|搜狐|200 1622 | http://m.sohu.com/|体育|200 1623 | http://m.sohu.com/n/346620805/|信号|200 1624 | http://www.baidu.com/|搜狐|200 1625 | http://m.sohu.com/|体育|200 1626 | http://m.sohu.com/n/346620805/|信号|200 1627 | http://www.baidu.com/|搜狐|200 1628 | http://m.sohu.com/|体育|200 1629 | http://m.sohu.com/n/346620805/|信号|200 1630 | http://www.baidu.com/|搜狐|200 1631 | http://m.sohu.com/|体育|200 1632 | http://m.sohu.com/n/346620805/|信号|200 1633 | http://www.baidu.com/|搜狐|200 1634 | http://m.sohu.com/|体育|200 1635 | http://m.sohu.com/n/346620805/|信号|200 1636 | http://www.baidu.com/|搜狐|200 1637 | http://m.sohu.com/|体育|200 1638 | http://m.sohu.com/n/346620805/|信号|200 1639 | http://www.baidu.com/|搜狐|200 1640 | http://m.sohu.com/|体育|200 1641 | http://m.sohu.com/n/346620805/|信号|200 1642 | http://www.baidu.com/|搜狐|200 1643 | http://m.sohu.com/|体育|200 1644 | http://m.sohu.com/n/346620805/|信号|200 1645 | http://www.baidu.com/|搜狐|200 1646 | http://m.sohu.com/|体育|200 1647 | http://m.sohu.com/n/346620805/|信号|200 1648 | http://www.baidu.com/|搜狐|200 1649 | http://m.sohu.com/|体育|200 1650 | http://m.sohu.com/n/346620805/|信号|200 1651 | http://www.baidu.com/|搜狐|200 1652 | http://m.sohu.com/|体育|200 1653 | http://m.sohu.com/n/346620805/|信号|200 1654 | http://www.baidu.com/|搜狐|200 1655 | http://m.sohu.com/|体育|200 1656 | http://m.sohu.com/n/346620805/|信号|200 1657 | http://www.baidu.com/|搜狐|200 1658 | http://m.sohu.com/|体育|200 1659 | http://m.sohu.com/n/346620805/|信号|200 1660 | http://www.baidu.com/|搜狐|200 1661 | http://m.sohu.com/|体育|200 1662 | http://m.sohu.com/n/346620805/|信号|200 1663 | http://www.baidu.com/|搜狐|200 1664 | http://m.sohu.com/|体育|200 1665 | http://m.sohu.com/n/346620805/|信号|200 1666 | http://www.baidu.com/|搜狐|200 1667 | http://m.sohu.com/|体育|200 1668 | http://m.sohu.com/n/346620805/|信号|200 1669 | http://www.baidu.com/|搜狐|200 1670 | http://m.sohu.com/|体育|200 1671 | http://m.sohu.com/n/346620805/|信号|200 1672 | http://www.baidu.com/|搜狐|200 1673 | http://m.sohu.com/|体育|200 1674 | http://m.sohu.com/n/346620805/|信号|200 1675 | http://www.baidu.com/|搜狐|200 1676 | http://m.sohu.com/|体育|200 1677 | http://m.sohu.com/n/346620805/|信号|200 1678 | http://www.baidu.com/|搜狐|200 1679 | http://m.sohu.com/|体育|200 1680 | http://m.sohu.com/n/346620805/|信号|200 1681 | http://www.baidu.com/|搜狐|200 1682 | http://m.sohu.com/|体育|200 1683 | http://m.sohu.com/n/346620805/|信号|200 1684 | http://www.baidu.com/|搜狐|200 1685 | http://m.sohu.com/|体育|200 1686 | http://m.sohu.com/n/346620805/|信号|200 1687 | http://www.baidu.com/|搜狐|200 1688 | http://m.sohu.com/|体育|200 1689 | http://m.sohu.com/n/346620805/|信号|200 1690 | http://www.baidu.com/|搜狐|200 1691 | http://m.sohu.com/|体育|200 1692 | http://m.sohu.com/n/346620805/|信号|200 1693 | http://www.baidu.com/|搜狐|200 1694 | http://m.sohu.com/|体育|200 1695 | http://m.sohu.com/n/346620805/|信号|200 1696 | http://www.baidu.com/|搜狐|200 1697 | http://m.sohu.com/|体育|200 1698 | http://m.sohu.com/n/346620805/|信号|200 1699 | http://www.baidu.com/|搜狐|200 1700 | http://m.sohu.com/|体育|200 1701 | http://m.sohu.com/n/346620805/|信号|200 1702 | http://www.baidu.com/|搜狐|200 1703 | http://m.sohu.com/|体育|200 1704 | http://m.sohu.com/n/346620805/|信号|200 1705 | http://www.baidu.com/|搜狐|200 1706 | http://m.sohu.com/|体育|200 1707 | http://m.sohu.com/n/346620805/|信号|200 1708 | http://www.baidu.com/|搜狐|200 1709 | http://m.sohu.com/|体育|200 1710 | http://m.sohu.com/n/346620805/|信号|200 1711 | http://www.baidu.com/|搜狐|200 1712 | http://m.sohu.com/|体育|200 1713 | http://m.sohu.com/n/346620805/|信号|200 1714 | http://www.baidu.com/|搜狐|200 1715 | http://m.sohu.com/|体育|200 1716 | http://m.sohu.com/n/346620805/|信号|200 1717 | http://www.baidu.com/|搜狐|200 1718 | http://m.sohu.com/|体育|200 1719 | http://m.sohu.com/n/346620805/|信号|200 1720 | http://www.baidu.com/|搜狐|200 1721 | http://m.sohu.com/|体育|200 1722 | http://m.sohu.com/n/346620805/|信号|200 1723 | http://www.baidu.com/|搜狐|200 1724 | http://m.sohu.com/|体育|200 1725 | http://m.sohu.com/n/346620805/|信号|200 1726 | http://www.baidu.com/|搜狐|200 1727 | http://m.sohu.com/|体育|200 1728 | http://m.sohu.com/n/346620805/|信号|200 1729 | http://www.baidu.com/|搜狐|200 1730 | http://www.sina.com.cn/|宇宙外星人|200 1731 | -------------------------------------------------------------------------------- /sohupy/3/workermanager.py: -------------------------------------------------------------------------------- 1 | #coding=utf-8 2 | ''' 3 | author:huyang 4 | date:2012-7-10 5 | ref:http://www.open-open.com 6 | ''' 7 | import Queue 8 | import threading 9 | import time 10 | import sys 11 | 12 | class WorkManager(object): 13 | def __init__(self, thread_num=10): 14 | self.work_queue = Queue.Queue() 15 | self.threads = [] 16 | self.thread_num = thread_num 17 | self.starttime = time.time() 18 | 19 | ''' 20 | 启动线程 21 | ''' 22 | def start_thread_pool(self): 23 | for i in range(self.thread_num): 24 | worker = Work(self.work_queue) 25 | worker.setDaemon(True) 26 | worker.start() 27 | self.threads.append(worker) 28 | 29 | """ 30 | 添加一项工作入队 31 | """ 32 | def add_job(self, func, **kwargs): 33 | self.work_queue.put((func, kwargs))#任务入队,Queue内部实现了同步机制 34 | 35 | """ 36 | 检查剩余队列任务 37 | """ 38 | def check_queue(self): 39 | return self.work_queue.qsize() 40 | 41 | def check_thread(self): 42 | ''' 43 | 检查剩余线程数 44 | ''' 45 | counter = 0 46 | for thread in self.threads: 47 | if thread.isAlive(): 48 | counter += 1 49 | 50 | return counter 51 | 52 | """ 53 | 等待所有线程运行完毕 54 | """ 55 | def wait_allcomplete(self): 56 | for item in self.threads: 57 | if item.isAlive(): 58 | item.join() 59 | ''' 60 | 设置超时退出 61 | ''' 62 | def quit_thread(self): 63 | #for item in self.threads: 64 | # item.join(1) 65 | endtime = time.time() 66 | print 'done %s jobs cost:%ss' % (str(self.work_queue.qsize()),str(endtime - self.starttime)) 67 | sys.exit() 68 | 69 | 70 | class Work(threading.Thread): 71 | ''' 72 | 执行工作的线程 73 | ''' 74 | def __init__(self, work_queue): 75 | threading.Thread.__init__(self) 76 | self.work_queue = work_queue 77 | 78 | def run(self): 79 | #死循环,从而让创建的线程在一定条件下关闭退出 80 | while True: 81 | try: 82 | do, kwargs = self.work_queue.get(block=False)#任务异步出队,Queue内部实现了同步机制 83 | do(kwargs) 84 | self.work_queue.task_done()#通知系统任务完成 85 | except Queue.Empty: 86 | break 87 | except Exception,e: 88 | print 'an exception in work:%s' % str(e) 89 | break 90 | 91 | -------------------------------------------------------------------------------- /tools/jsonreader.py: -------------------------------------------------------------------------------- 1 | #coding:utf-8 2 | 3 | import wx 4 | import json 5 | 6 | 7 | HEAD_START = 0.1 #Seconds 8 | SECRET_LENGTH = 100 9 | SAMPLE_LIST = [ 10 | 'http://m.weather.com.cn/data/101010100.html', 11 | ] 12 | 13 | class Client(wx.App): 14 | def __init__(self): 15 | super(Client, self).__init__() 16 | 17 | def OnInit(self): 18 | win = wx.Frame(None, title="Json Reader", size=(800, 900)) 19 | bkg = wx.Panel(win) 20 | self.statusBar = win.CreateStatusBar() 21 | 22 | vbox = wx.BoxSizer(wx.VERTICAL) 23 | 24 | hbox = wx.BoxSizer() 25 | 26 | self.urlinput = urlinput = wx.TextCtrl(bkg, -1, u'点击下面url或者手动输入', size=(400, 25)) 27 | hbox.Add(urlinput, proportion=1, flag=wx.ALL, border=10) 28 | 29 | submit = wx.Button(bkg, label="Fetch", size=(80, 25)) 30 | submit.Bind(wx.EVT_BUTTON, self.fetchHandler) 31 | hbox.Add(submit, flag=wx.TOP | wx.BOTTOM | wx.RIGHT, border=10) 32 | vbox.Add(hbox, proportion=0, flag=wx.EXPAND) 33 | 34 | hbox2 = wx.BoxSizer() 35 | self.url_list = url_list = wx.CheckListBox(bkg, -1, (80, 50), wx.DefaultSize, SAMPLE_LIST) 36 | self.Bind(wx.EVT_LISTBOX, self.EvtListBox, url_list) 37 | hbox2.Add(url_list, flag=wx.TOP | wx.BOTTOM | wx.RIGHT, border=10) 38 | vbox.Add(hbox2, proportion=0, flag=wx.EXPAND) 39 | 40 | hbox3 = wx.BoxSizer() 41 | self.output = output = wx.TextCtrl(bkg, -1, '', size=(400, 600), style=wx.TE_MULTILINE|wx.TE_PROCESS_ENTER) 42 | hbox3.Add(output, proportion=1, flag=wx.ALL | wx.ALIGN_RIGHT, border=10) 43 | 44 | 45 | vbox.Add(hbox3, proportion=0, flag=wx.EXPAND) 46 | bkg.SetSizer(vbox) 47 | win.Show() 48 | 49 | return True 50 | 51 | def EvtListBox(self, event): 52 | self.urlinput.SetValue(event.GetString()) 53 | 54 | def fetchHandler(self, event): 55 | url = self.urlinput.GetValue() 56 | import urllib 57 | try: 58 | content = urllib.urlopen(url).read() 59 | except Exception, e: 60 | self.statusBar.SetStatusText(str(e)) 61 | return 62 | result = self.parse_json(content) 63 | 64 | self.output.SetValue(result) 65 | self.statusBar.SetStatusText('finish') 66 | 67 | def parse_json(self, content): 68 | _content = json.loads(content) 69 | result = [] 70 | def traversal_json(json_data, sep, step = 2): 71 | temp = '' 72 | try: 73 | #print 'json_data', json_data 74 | for _ in json_data: 75 | temp = _ 76 | if isinstance(json_data, type([])): 77 | result.append('%s%s' % (sep, '*********')) 78 | if isinstance(_, dict): 79 | traversal_json(_, sep * step) 80 | else: 81 | if not isinstance(json_data[_], dict) and not isinstance(json_data[_], type([])): 82 | key_value = '%s:%s' % (_, json_data[_]) 83 | result.append('%s%s' % (sep, key_value)) 84 | else: 85 | result.append('%s%s:' % (sep, _)) 86 | traversal_json(json_data[_], sep * step) 87 | except Exception, e: 88 | self.statusBar.SetStatusText('parse data:%s' % temp) 89 | 90 | traversal_json(_content, '--') 91 | 92 | return '\n'.join(result) 93 | 94 | 95 | 96 | 97 | def main(): 98 | client = Client() 99 | client.MainLoop() 100 | 101 | if __name__ == '__main__': main() 102 | -------------------------------------------------------------------------------- /tools/timeparse.py: -------------------------------------------------------------------------------- 1 | #coding:utf-8 2 | 3 | __author__ = 'the5fire' 4 | 5 | ''' 6 | parse time 7 | ''' 8 | 9 | import time 10 | 11 | def time2stamp(timestr, format_type='%Y-%m-%d %H:%M:%S'): 12 | return time.mktime(time.strptime(timestr, format_type)) 13 | 14 | def stamp2time(stamp, format_type='%Y-%m-%d %H:%M:%S'): 15 | return time.strftime(format_type, time.localtime(stamp)) 16 | 17 | 18 | if __name__ == '__main__': 19 | stamp = time.time() 20 | nowtime = stamp2time(stamp) 21 | print stamp, '-->', nowtime 22 | print 23 | stamp = time2stamp(nowtime) 24 | print nowtime, '-->', stamp 25 | print 26 | print stamp, '-->', stamp2time(stamp) 27 | 28 | -------------------------------------------------------------------------------- /tools/urllib_proxy.py: -------------------------------------------------------------------------------- 1 | #coding:utf-8 2 | 3 | import urllib2 4 | 5 | def get_content_by_proxy(url, proxy=None): 6 | if proxy: 7 | opener = urllib2.build_opener(urllib2.ProxyHandler({'http':proxy}), urllib2.HTTPHandler(debuglevel=1)) 8 | urllib2.install_opener(opener) 9 | 10 | i_headers = {"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.1) Gecko/20090624 Firefox/3.5", \ 11 | "Referer": 'http://www.baidu.com'} 12 | 13 | req = urllib2.Request(url, headers=i_headers) 14 | content = urllib2.urlopen(req).read() 15 | return content 16 | 17 | 18 | 19 | url = 'http://www.facebook.com/' 20 | url = 'http://www.youtube.com/' 21 | #url = 'http://www.baidu.com/' 22 | proxy = 'http://127.0.0.1:1998' 23 | proxy = 'http://109.87.114.119:3128' 24 | proxy = 'http://206.17.82.114:80' 25 | print get_content_by_proxy(url, proxy) 26 | 27 | 28 | --------------------------------------------------------------------------------