从Chrome历史中提取Python URL

从Chrome历史中提取Python URL,python,Python,我一直在使用以下代码尝试从我的chrome历史副本中提取URL,我一直在用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()

我一直在使用以下代码尝试从我的chrome历史副本中提取URL,我一直在用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
我的主要目标是在浏览器中至少打开一个url,但当我使用代码时:

import webbrowser

url = ccpp[4]

webbrowser.open(url)
我最后犯了一个错误。我认为它不起作用,因为

(u'https://stackoverflow.com/search',)
它前面有一个“u”


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

这不起作用,因为您正在将元组传递到需要字符串的函数中
cursor.fetchall()
返回元组列表(因为包含n个元素的行表示为n个元组),所以您只需要获取元组中包含的单个元素:

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

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

ccpp # this is a list
ccpp[4] # this is a tuple
您可以判断它是一个元组,因为您打印的输出显示了这一点。如果需要第一列“url”列中的数据,则需要为其编制索引(类似于创建列表的方式):


欢迎来到StackOverflow。如果您希望我们帮助您,您应该在问题中包含原始完整的错误消息,以及重现问题所需的所有代码。例如,您是如何获得
(u'https://stackoverflow.com/search)
?是否为联合循环发电厂[4]?别让我们猜!
ccpp[4][0] # get the first column of the fifth row