Chrome历史记录中的Python网址提取

时间:2017-02-25 22:19:59

标签: python

我一直在使用以下代码尝试从我的Chrome历史记录副本中提取网址,我一直在PyCharm中写这个:

import sqlite3
import os

PATH='C:\\Users\\%s\\AppData\\Local\\Google\\Chrome\\User Data\\Default\\History - Copy' % os.environ.get('USERNAME')

HistCop = sqlite3.connect(PATH)

c = HistCop.cursor()

ccp = c.execute('SELECT url FROM urls ORDER BY "id" DESC LIMIT 5')

ccpp=ccp.fetchall()

print ccpp

我的主要目标是在浏览器中打开至少一个网址,但是当我使用代码时:

import webbrowser

url = ccpp[4]

webbrowser.open(url)

我最终得到了一个错误。我认为它不起作用,因为......

(u'https://stackoverflow.com/search',)

有一个" u"在它面前。

请让我知道为什么会发生这种情况,如果有办法摆脱它,或者是否有更好的方法来实现我的目标。

2 个答案:

答案 0 :(得分:0)

它不起作用,因为你将一个元组传递给一个需要字符串的函数。 cursor.fetchall()返回元组列表(因为 n 元素的行表示为 n -tuple),因此您只需要包含单个元素在元组中:

rows = cursor.fetchall()
url = rows[4][0]

答案 1 :(得分:0)

sqlite的fetchall方法返回一个列表,其中包含查询结果中每行的项目。这些项目都是包含该行的字段数据的元组(类似于列表)。所以:

ccpp # this is a list
ccpp[4] # this is a tuple

你可以告诉它是一个元组,因为你打印的输出显示了这一点。如果您想要第一列中的数据,那么' url'列,您需要对其进行索引(类似于列表的方式):

ccpp[4][0] # get the first column of the fifth row