2012-05-04 193 views
1

所以這裏是我想要比較的代碼。我正在嘗試做的是將路徑目錄中的appids列出來,該路徑起作用。然後我試圖去一個網站(f)。解析html頁面並獲取該站點上列出的appid。在Python中比較兩個列表

我想要做的就是從本地系統採取appid,搜索f(從站點的app id),並返回appid的內容。

當我打印的appid:

D:\python>jump_me.py |more 
1b4dd67f29cb1962 
28c8b86deab549a1 
431a5b43435cc60b 
4975d6798a8bdf66 
7e4dca80246863e3 
8eafbd04ec8631 
9b9cdc69c1c24e2b 
bc03160ee1a59fc1 

當我打印男,這是從網上解析數據,我得到:

65009083bfa6a094 | (app launched via XPMode) | 
469e4a7982cea4d4 | ? (.job) | 
b0459de4674aab56 | (.vmcx) | 
89b0d939f117f75c | Adobe Acrobat 9 Pro Extended (32-bit) | 
26717493b25aa6e1 | Adobe Dreamweaver CS5 (32-bit) | 
e2a593822e01aed3 | Adobe Flash CS5 (32-bit) | 
c765823d986857ba | Adobe Illustrator CS5 (32-bit) | 
84f066768a22cc4f | Adobe Photoshop CS5 (64-bit) | 
44a398496acc926d | Adobe Premiere Pro CS5 (64-bit) | 

我想使用f比較的appid,並打印相應的項目:

喜歡的appid = 89b0d939f117f75c

f = 89b0d939f117f75c | Adobe Acrobat 9 Pro Extended (32-bit) 

所以我想要它返回,89b0d939f117f75c | Adobe Acrobat 9 Pro Extended (32-bit)基於目錄列表。

有意義嗎?

---- ----代碼根據f

import os 
import sys 
import urllib2 
from BeautifulSoup import BeautifulSoup 

path = ("C:\Users\<username>\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations") 
for ids in os.listdir(path): 
appid = "%s" % (ids).rstrip('.automaticDestinations-ms') 
#print appid 

f = urllib2.urlopen("http://www.forensicswiki.org/wiki/List_of_Jump_List_IDs") 
s = f.read() 

soup = BeautifulSoup(''.join(s)) 
rows = soup.findAll('tr') 

for tr in rows: 

    cols = tr.findAll('td', limit=2) 
    for td in cols: 
     text = ''.join(td.findAll(text=True)) 

     print text + " |", 
    print "\n".strip() 
f.close 
+0

正確縮進你的代碼。 –

回答

0

你想要做的事,如:

if appid == td.split('|')[0].strip(): 
    print td 

我想。但是我不清楚哪裏的數據實際上是:你的示例檢索到的數據與你使用BeautifulSoup所做的不匹配:那td可能是錯誤的地方要檢查。

儘管您需要將appid與您正在搜索的文本的一些子字符串進行比較。儘管如此,你還沒有做任何比較,所以我不知道你應該把它放在哪裏。

+0

你在那裏忘了[0]。 – yak

+0

糟糕,正確。固定。 – quodlibetor