青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

socketref,再見!高德

https://github.com/adoggie

  C++博客 :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
  246 Posts :: 4 Stories :: 312 Comments :: 0 Trackbacks

常用鏈接

留言簿(54)

我參與的團(tuán)隊(duì)

搜索

  •  

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

5173.com提出抓取同行交易系統(tǒng)的業(yè)務(wù)信息來做數(shù)據(jù)分析而提出這么個(gè)需求給我,花了1天用python完成

  1 # -*- coding:utf-8 -*-
  2 #掃描xunbao173.com web頁面記錄到數(shù)據(jù)庫
  3 #zhangbin 2010.5.12  5173.com
  4 import sys,os
  5 
  6 import traceback,threading,time,struct,os,os.path,zlib,struct
  7 import copy,socket,select
  8 #import psycopg2
  9 import httplib,re
 10 
 11 import log,config
 12 
 13 
 14 #function Paging(total) {
 15 #    this.pageSize = 10;//每頁顯示記錄數(shù)
 16 #    this.step = 5;//最多顯示分頁頁數(shù)
 17 #    this.total = total; //總記錄數(shù)
 18 #}
 19 
 20 '''
 21 
 22 CREATE DATABASE htmlgrep
 23   WITH OWNER = postgres
 24        ENCODING = 'UTF8';
 25              
 26              
 27 CREATE TABLE htmlGrep
 28 (
 29    id integer, 
 30    item_name character(60) NOT NULL, 
 31    price_s character(40),
 32      rank integer,
 33    appear_time integer NOT NULL, 
 34    disappear_time integer NOT NULL
 35 ) WITH (OIDS=TRUE)
 36 ;
 37 
 38 '''
 39 
 40 g_conf = config.SimpleConfig()
 41 g_conf.open('grep.conf')
 42 g_dbconn = None
 43 g_logger = log.Logger('hgrep.log')
 44 g_flog = None
 45 
 46 g_cookie = ''
 47 
 48 #def getDBConn():
 49 #    global g_dbconn
 50 #    try:
 51 #        if g_dbconn == None:
 52 #            dbhost=g_conf.getPropertyValue('dbhost','localhost')
 53 #            dbname='gamegrep'
 54 #            dbuser=g_conf.getPropertyValue('dbuser','postgres')
 55 #            dbpasswd=g_conf.getPropertyValue('dbpasswd','111111')
 56 #            g_dbconn = psycopg2.connect(host=dbhost,database=dbname,user=dbuser,password=dbpasswd)
 57 #    except:
 58 #        g_logger.error(traceback.format_exc())
 59 #    return g_dbconn
 60     
 61 #檢索頁數(shù)量
 62 
 63 '''
 64 <input type="hidden" id="currentPage" value="1"/>
 65 <input type="hidden" id="orderBy" value=""/>
 66 <input type="hidden" id="pageTotal" value="24"/>
 67 '''
 68 
 69 def getPageNum(html):
 70     ms = re.findall("id=\"pageTotal\" value=\"(.*?)\"",html,re.S)
 71     if len(ms)==0:
 72         pass
 73         #return 0
 74     return ms[0]
 75 
 76 def getPageHtml(game,idx):
 77     html =''
 78     url = "/%s/getServerList"%(game)
 79     gamesite=g_conf.getPropertyValue('root.site')
 80     conn = httplib.HTTPConnection(gamesite)
 81     
 82     hdr={'Cookie':g_cookie,
 83                      'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
 84                      'Accept-Charset':'GB2312,utf-8;q=0.7,*;q=0.7',
 85                      'Accept-Language':'zh-cn,zh;q=0.5',
 86                      'Keep-Alive':'300',
 87                      'Connection':'keep-alive',
 88                      'Accept-Encoding':'gzip,deflate'
 89                      }
 90             
 91     conn.request("GET""/%s/buy.gsp?keyWord=&groupName=&orderBy=&page=%s"%(game,idx),'',hdr)
 92     r1 = conn.getresponse()
 93     html = r1.read()
 94     return html
 95 
 96 
 97 def scanRecordsOfHtml(f,html,serverid,serverName):
 98     
 99     regex = '''<span class="realName">(.*?)</span>.*?rank.*?>(.*?)</dd>.*?price.*?>(.*?)</dd>.*?linkTo\('(.*?)','''
100     ms = re.findall(regex,html,re.S)
101     #f = open('hgrep.rec.txt','w')
102     #conn = getDBConn()
103     for n in ms:
104         f.write("%s,%s,%s,%s,%s,%s\n"%(n[0],n[1],n[2],n[3],serverid,serverName))
105 
106 
107 #掃描游戲服務(wù)器 [{name,url}]
108 def scanGameServers(game):
109     global g_cookie
110     url = "/%s/getServerList"%(game)
111     gamesite=g_conf.getPropertyValue('root.site')
112     conn = httplib.HTTPConnection(gamesite)
113     conn.request("GET", url)
114     r1 = conn.getresponse()
115     html = r1.read()
116     #print html
117     ms = re.findall("<div class=\"ser_area_list\">(.*?)</div>",html,re.S)
118     if len(ms)!=2:
119         print 'Html content invalid!'
120         return
121     html = ms[1]
122     #ms = re.findall("<a href=\"(.*?)\">.*?title=\"(.*?)\".*?</a>",html,re.S)
123     #"getServerList?aid=15&id=1136"
124     ms = re.findall("<a href=\".*?aid=(.*?)&id=(.*?)\">.*?title=\"(.*?)\".*?</a>",html,re.S)
125     
126     if len(ms) == 0:
127         print 'Game:%s is null!'%(game)
128         return
129     print '%s servers Found'%len(ms)
130     #print r1.getheader('set-cookie')
131     cookie = r1.getheader('set-cookie').split(';')[0]
132     g_cookie =  cookie
133     #進(jìn)入游戲區(qū)服
134     scanedserver =[]
135     
136     for server in ms:
137         try:
138             
139             #if scanedserver.count(server[1])!=0:
140             #    continue
141             #scanedserver.append(server[1])
142             print server
143             f = open(server[2].decode('utf-8').encode('gb2312')+'.txt','w')
144             print "/%s/%s"%(game,server[0])
145             url = "getServerList?aid=%s&id=%s"%(server[:2])
146             print url
147             #return url
148             conn = httplib.HTTPConnection(gamesite)
149             
150             #conn.request("GET", "/%s/%s/"%(game,server[0]),None,{'Cookie':cookie})
151             hdr={'Cookie':cookie,
152                      'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
153                      'Accept-Charset':'GB2312,utf-8;q=0.7,*;q=0.7',
154                      'Accept-Language':'zh-cn,zh;q=0.5',
155                      'Keep-Alive':'300',
156                      'Connection':'keep-alive',
157                      'Accept-Encoding':'gzip,deflate'
158                      }
159             
160             #conn.request("GET", "/%s/%s"%(game,server[0]),'',hdr)
161             conn.request("GET""/%s/%s"%(game,url),'',hdr)
162             r1 = conn.getresponse()
163             html = r1.read()
164             print 'have a sleep'
165             time.sleep(.2)
166             
167             conn = httplib.HTTPConnection(gamesite)
168             conn.request("GET""/%s/%s"%(game,'buy.gsp'),'',hdr)
169             r1 = conn.getresponse()
170             html = r1.read()
171             
172             PAGE_SIZE =10
173             PAGE_COUNT =  int(getPageNum(html))/PAGE_SIZE + 1
174             
175             for page in range(1,PAGE_COUNT+1):
176                 print 'attempt to grep Game=%s Page=%s'%(game,page)
177                 html = getPageHtml(game,page)
178                 g_flog.write( html)
179                 
180                 scanRecordsOfHtml(f,html,server[1],server[2])
181             f.close()    
182             
183         except:
184             g_logger.error(traceback.format_exc())
185     
186         
187     
188 #def scanGameServers2(game):
189 #    url = "/%s/buy.gsp"%(game)
190 #    gamesite=g_conf.getPropertyValue('root.site')
191 #    conn = httplib.HTTPConnection(gamesite)
192 #    conn.request("GET", url)
193 #    print url
194 #    r1 = conn.getresponse()
195 #    html = r1.read()
196 #    #print html
197 #    print html
198 #    g_flog.write( html)
199 #    
200 #def scanRecords(file):
201 #    f = open(file,'r')
202 #    html = f.read()
203 #    f.close()
204 #    regex = '''<span class="realName">(.*?)</span>.*?rank.*?>(.*?)</dd>.*?price.*?>(.*?)</dd>.*?linkTo\('(.*?)','''
205 #    ms = re.findall(regex,html,re.S)
206 #    f = open('hgrep.rec.txt','w')
207 #    conn = getDBConn()
208 #    
209 #    for n in ms:
210 #        f.write("%s,%s,%s,%s\n"%n)
211 #        try:
212 #            cr = conn.cursor()
213 #            sql = "select count(*) from htmlgrep where id=%s"%(n[3])
214 #            cr.execute(sql)
215 #            
216 #            rs = cr.fetchone()
217 #            if rs[0] == 0 :
218 #            #if 1:
219 #                #cr = conn.cursor()
220 #                sql="insert into htmlgrep values(%s,%s,%s,%s,%s,%s);"                
221 #                cr.execute(sql,( int(n[3]),n[0],n[2],n[1],int(time.time()),0,))
222 #                conn.commit()
223 #            else:
224 #                sql = "update htmlgrep set disappear_time=0 where id=%s"%(int(n[3]))
225 #                cr.execute(sql)
226 #                conn.commit()
227 #            
228 #        except:
229 #            g_logger.error(traceback.format_exc())
230 #    #如果db內(nèi)的數(shù)據(jù)不存在當(dāng)前緩存內(nèi)則標(biāo)記為物品消失,并記錄消失時(shí)間
231 #    cr = conn.cursor()
232 #    cr.execute('select id from htmlgrep order by id')
233 #    rs = cr.fetchone()
234 #    while rs:
235 #        found = False
236 #        for n in ms:
237 #            if int(n[3]) == rs[0]:
238 #                found = True
239 #                break
240 #        if not found:
241 #            cr2 = conn.cursor()
242 #            sql = "update htmlgrep set disappear_time=%s where id=%s"%(int(time.time()),rs[0])
243 #            cr2.execute(sql)
244 #        rs = cr.fetchone()
245 #        conn.commit()
246 #    f.close()
247 #    #print str(ms)
248 ##############################################################
249     
250 
251 class sepApp:
252     def    __init__(self):
253         self._conf = config.SimpleConfig()        
254          
255     
256     def getConfig(self):
257         return self._conf
258     
259     #def getDBConn(self):
260     #    try:
261     #        if self.dbconn == None:
262     #            dbhost=self.getPropertyValue('dbhost','localhost')
263     #            dbname=self.getPropertyValue('dbname','IpRedirect')
264     #            dbuser=self.getPropertyValue('dbuser','postgres')
265     #            dbpasswd=self.getPropertyValue('dbpasswd','111111')
266     #            self.dbconn = psycopg2.connect(host=dbhost,database=dbname,user=dbuser,password=dbpasswd)
267     #    except:
268     #        self._log.error(traceback.format_exc())
269     #    return self.dbconn
270             
271     #def resetDBConn(self):
272     #    self.dbconn = None
273     
274     def run(self):
275         pass
276 
277     def getLogger(self):
278         return self._log
279     
280     def run(self, args):
281          
282         return 0
283 
284      
285 
286 ##############################################################
287 ##############################################################
288 
289 #scanRecords('c:/test - Copy.html')
290 
291 
292 '''
293 sql test:
294 ---------------------
295 --select count(*) from htmlgrep
296 --select id,count(id) from htmlgrep group by id limit 100
297 --select * from htmlgrep where id = 2310
298 --delete from htmlgrep
299 
300 '''
301 g_flog = open('c:/test.txt','w')
302 scanGameServers('mhzx')
303 sys.exit(0)
304 if __name__=='__main__':
305     if len(sys.argv)<2:
306         print 'usage: grep.py scan | build'
307         sys.exit()
308     if sys.argv[1]=='scan':
309         g_flog = open('c:/test.txt','w')
310         scanGameServers('mhzx')
311     #if sys.argv[1]=='build':
312     #    scanRecords('c:/test.txt')
313     #server = sepApp()
314 
315     
316     
317         
318     

posted on 2010-06-10 23:23 放屁阿狗 閱讀(6296) 評(píng)論(1)  編輯 收藏 引用 所屬分類: perl/python/php/lua/tcl

Feedback

# re: 抓www.xunbao173.com的交易記錄 2016-02-27 14:26 王正順
1  回復(fù)  更多評(píng)論
  

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久天天综合| 国产精品麻豆欧美日韩ww| 亚洲乱码久久| 欧美激情第六页| 亚洲毛片在线观看.| 亚洲天堂第二页| 欧美亚洲日本网站| 美女精品网站| 国产精品久久国产愉拍 | 亚洲成在线观看| 精品不卡视频| 日韩视频一区二区三区在线播放免费观看| 亚洲精品孕妇| 欧美一区二区三区视频| 免费人成精品欧美精品| 日韩一级免费观看| 午夜一区二区三区不卡视频| 久久人人爽人人爽| 国产精品高潮呻吟久久av无限| 国产亚洲一区二区三区在线播放| 亚洲高清视频的网址| 亚洲免费人成在线视频观看| 久久综合九色综合欧美就去吻| 亚洲人成网站在线播| 亚洲一区二区三区四区五区午夜 | 欧美揉bbbbb揉bbbbb| 国产一区白浆| 在线视频精品一区| 欧美国产精品人人做人人爱| 亚洲最快最全在线视频| 欧美日韩视频在线第一区| 亚洲伊人网站| 欧美一二三区在线观看| 欧美国产免费| 亚洲国产导航| 麻豆九一精品爱看视频在线观看免费 | 99精品视频免费观看| 理论片一区二区在线| 伊人久久男人天堂| 老司机67194精品线观看| 久久天天躁狠狠躁夜夜av| 国产一区二区精品久久99| 欧美一区=区| 久久久久久久久久看片| 91久久精品美女高潮| 91久久亚洲| 欧美四级伦理在线| 欧美在线三区| 欧美日本韩国在线| 另类成人小视频在线| 欧美日韩免费在线视频| 久久免费一区| 国产精品九色蝌蚪自拍| 欧美成人免费视频| 国产精品毛片va一区二区三区| 看片网站欧美日韩| 国产精品高潮呻吟久久av无限| 久久影院午夜论| 国产欧美亚洲日本| 一区二区三区欧美成人| 久久精品国产一区二区三区 | 欧美一区二区三区免费视频| 精品1区2区| 亚洲视频一区二区免费在线观看| 伊人久久婷婷色综合98网| 一本色道久久综合亚洲精品不卡| 韩日欧美一区| 欧美一区二区视频在线| 亚洲欧美日韩在线| 国产精品久久久久9999吃药| 亚洲激情专区| 亚洲视频 欧洲视频| 欧美日韩精品一区二区| 日韩一二三区视频| 欧美一区二区福利在线| 国产精品一区二区女厕厕| 亚洲欧美日韩国产另类专区| 午夜视频久久久久久| 国产在线乱码一区二区三区| 久久精品国产99国产精品| 蜜乳av另类精品一区二区| 亚洲国产精品精华液2区45| 免费亚洲电影在线| 日韩午夜激情av| 欧美中文字幕第一页| 亚洲国产99| 国产九九精品| 欧美寡妇偷汉性猛交| 亚洲嫩草精品久久| 欧美国产欧美亚洲国产日韩mv天天看完整| 亚洲国产欧美国产综合一区| 欧美美女福利视频| 久久国产一二区| 亚洲尤物视频在线| 亚洲国产成人av| 性欧美1819sex性高清| 亚洲人成久久| 一本久道久久综合中文字幕| 久久久久天天天天| 亚洲影院在线| 亚洲精品日韩在线观看| 国内精品伊人久久久久av影院| 欧美精品aa| 欧美大色视频| 久久一区激情| 久久人体大胆视频| 亚洲欧美在线磁力| 一本色道88久久加勒比精品 | 翔田千里一区二区| 亚洲高清视频中文字幕| 国产自产女人91一区在线观看| 国产精品久久999| 国产精品videosex极品| 国产精品女人网站| 国产一区二区中文| 国产一区二区三区电影在线观看| 国产精品黄色在线观看| 国产日韩欧美一区在线| 在线播放豆国产99亚洲| 最新热久久免费视频| 一区二区精品| 欧美在线观看一区二区| 噜噜噜噜噜久久久久久91| 亚洲第一精品福利| 亚洲最新在线视频| 久久看片网站| 欧美性事在线| 亚洲国产精品久久久久秋霞蜜臀 | 久久精品国产亚洲一区二区| 免费高清在线视频一区·| 夜色激情一区二区| 久久综合伊人77777| 欧美午夜精品久久久久久孕妇| 国产精品久久久久久久久久直播| 亚洲在线一区二区| 毛片一区二区三区| 国产精品一卡二卡| 亚洲影院免费观看| 亚洲三级免费| 欧美成人精品在线观看| 激情六月综合| 久久青草福利网站| 欧美与欧洲交xxxx免费观看| 国产精品久久久久高潮| 一本大道久久精品懂色aⅴ| 麻豆久久久9性大片| 久久久亚洲欧洲日产国码αv| 国产欧美日韩免费| 国内精品模特av私拍在线观看| 国产精品久久久久一区二区| 欧美人与性动交cc0o| 在线看片第一页欧美| 久久综合网络一区二区| 久久国产精品久久久| 狠狠v欧美v日韩v亚洲ⅴ| 欧美一区二区精品久久911| 午夜国产欧美理论在线播放 | 日韩一二三区视频| 国产欧美精品一区二区三区介绍| 一区二区三区久久| 亚洲精品资源美女情侣酒店| 欧美亚男人的天堂| 久久久久国产精品午夜一区| 久久久久久久久久久久久9999| 亚洲第一区中文99精品| 亚洲美女毛片| 国产日韩在线视频| 欧美黑人多人双交| 欧美午夜精品理论片a级按摩| 久久久久看片| 国产精品v一区二区三区 | 亚洲午夜视频在线观看| 亚洲男人的天堂在线aⅴ视频| 亚洲国产高清一区| 亚洲一区二三| 欧美日韩精品一区二区| 一区二区三区四区国产| 性欧美精品高清| 99国产一区二区三精品乱码| 午夜精品久久久久久久蜜桃app| 亚洲精品一级| 女生裸体视频一区二区三区| 一区二区三区精品国产| 欧美成人综合网站| 久久久久久电影| 欧美一区二区三区四区夜夜大片| 欧美激情bt| 亚洲国产日韩精品| 亚洲高清av在线| 久久网站免费| 亚洲国产精品va在线看黑人| 亚洲人成绝费网站色www| 免费不卡中文字幕视频| 亚洲日韩成人| 亚洲一区精彩视频| 国产一区二区三区久久久久久久久 | 国产精品国码视频| 午夜日韩在线观看| 免费观看成人www动漫视频| 亚洲日本激情|