1

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

我想要做的是从本地系统获取 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
4

2 回答 2

1

从 f 制作字典并使用 appid 作为键。

于 2012-05-04T03:31:08.547 回答
0

你想做这样的事情:

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

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

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

于 2012-05-04T03:32:22.550 回答