比较Python中的两个列表

时间:2012-05-04 03:23:28

标签: python list compare beautifulsoup

所以这是我想要比较的代码。我想要做的是列出路径目录中的appids,这是有效的。然后我想去一个网站(f)。并解析html页面并获取该站点上列出的appids。

我希望能够做的是从本地系统获取appid,搜索f(来自网站的应用程序ID),并返回appid所在的内容。

当我打印appid时:

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

当我打印f时,这是来自在线的解析数据我得到:

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) |

我想将appid与f进行比较,并打印相应的项目:

喜欢appid = 89b0d939f117f75c

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

所以我希望它根据目录列表返回89b0d939f117f75c | Adobe Acrobat 9 Pro Extended (32-bit)

有意义吗?

---- ----代码

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

2 个答案:

答案 0 :(得分:1)

从f创建字典并使用appid作为密钥。

答案 1 :(得分:0)

你想做类似的事情:

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

我想。但是我不清楚任何数据的实际位置:您的示例检索数据与您使用BeautifulSoup所做的不匹配:td可能是错误的检查位置。

关键是,您需要将appid与您正在搜索的文本的某些子字符串进行比较。但是,你没有进行任何比较,所以我不知道你应该把它放在哪里。