注仕上げ5--使用パイソンは、レコードを取得するためにFirefoxブラウザのユーザーを達成します

主なアイデア:
(1)ブラウザのクッキーの出力
それぞれのデータベースを接続するには、入力クエリは、カーソルは、クッキーを取得するために来る
その行に、各列[X]データの単一列であるため、カーソルを横切ります完全に与えるために、[終了]
レコードを。

(2)履歴は、出力ブラウザレコード
上記接続、クエリほとんど変化、二つのテーブルのクエリの共同使用を

(3)出力、Googleのクエリレコード
の歴史を抽出する正規表現によって、Googleの検索レコードに降ります

(4)主な機能は、
最初の対応するデータベースの存在は、対応するユーザ情報取得機能を実行するか否かを判断します

問題が発生した3
(1)ここで、入力のURL、パスでパラメータエラーを取得するプログラムを空白に遭遇しました。
対処:入力でパスをラップ二重引用符を使用して
(2)代替のvimエディタで使用される、対応します。ステートメント
ESC:%S / 1/2 / G // 紙2 / gのを交換する1のみ最初の行当たりの置換Gことなく、全体的な交換の最後に追加される
前に事前に取得した適切なディレクトリを入力する(3)。データベースが存在するかどうかを検出し、結果が不十分な権限遭遇
長い時間とシフトのためにここにアクセスできないを
解決:クエリネットコムは、問題を得るのを助けるために、Microsoftの公式の直接のキーワードで問題が発生していた
主にファイルのプロパティを変更するには- >セキュリティ- >高度な- >現在のユーザーにファイルの所有者を変更する
現在のユーザーがコントロールパネルを開くことができます取得- >ユーザーがクエリを占める
(4).sqliteデータベースの
クエリテーブル、ショーのテーブルを使用することができない、sqlite_masterから選択名を使用します

4.まとめ収穫
検索エンジン技術は、直接公式文書を参照して、直接答えを質問することは困難である(1)。
選択グーグルの公式ウェブサイトを検索するためにグーグルを使用し、Baiduのピット再び、
Bingの経験を使用して、もちろん、百度ほど良好ではない
(2)。正規表現の基礎
適切な文書
http://www.runoob.com/regexp/regexp-syntax.html

II。コード

#!/usr/bin/python
#encoding:utf-8


import re
import os
import optparse
import sqlite3


def printCookies(cookieDB):#找到存储cookie的数据库,获取cookie数据
    try:
        conn = sqlite3.connect(cookieDB)
        c = conn.cursor()
        c.execute('SELECT host,name,value FROM moz_cookies')
        print '---Found Cookies---'
        for row in c:
            host = str(row[0])
            name = str(row[1])
            value = str(row[2])
            print 'Host: '+str(host)+' Name: '+str(name)+' Value: '+str(value)
    except Exception,e:
        print e
        if 'encrypted' in e:
            print '[-] You should updata your python-sqlite3 library'
            exit(0)


def printHistory(placesDB):   #通过places数据库,获取用户的历史浏览记录,下载记录等信息
    History = open('History.txt', 'w')
    try:
        conn = sqlite3.connect(placesDB)

        c = conn.cursor()
        c.execute('SELECT url,datetime(visit_date/1000000,\'unixepoch\') \
                FROM moz_places,moz_historyvisits WHERE visit_count > 0 \
                AND moz_places.id == moz_historyvisits.place_id;')

        print >> History,'[*]---Found History---'
        for row in c:   #遍历每一行
            url = str(row[0])     #遍历每一个属性
            date = str(row[1])
            print >> History,'[+] '+str(date)+' - visited: '+str(url)   #输出利用了重定向,使得输出结果放在一个文件中
    except Exception,e:
        print e
        if 'encrypted' in e:
            print '[-] You should updata your python-sqlite3 library'
            exit(0)


def printGoogle(placesDB):   #查找google搜索记录
    try:
        conn = sqlite3.connect(placesDB)
        c = conn.cursor()
        c.execute('SELECT url,datetime(visit_date/1000000,\'unixepoch\') \
                FROM moz_places,moz_historyvisits WHERE visit_count > 0 \
                AND moz_places.id == moz_historyvisits.place_id;')
        print '[*]---Found Google History---'
        for row in c:   #遍历每一行
            url = str(row[0])     #遍历每一个属性
            date = str(row[1])
            if 'google'in url.lower():
                r = re.findall(r'q=.*\&',url)   #利用正则表达式,查找搜索的关键字
                if r:
                    Google = open('google.txt', 'w')
                    search = r[0].split('&')[0]
                    search = search.replace('q=','').replace('+',' ')
                    print >> Google,'[+] ' +date+ ' - Searched For: '+search
    except Exception,e:
        print e
        if 'encrypted' in e:
            print '[-] You should updata your python-sqlite3 library'
            exit(0)


def main():
    parser = optparse.OptionParser('-p <Database PathName>')
    parser.add_option('-p', dest='path', type='string', help='specify the PathName')
    (options,args) = parser.parse_args()
    path = options.path
    if path == None:
        print parser.usage
        exit(0)
    elif os.path.isdir(path) == False:
        print '[-] Your path not exist'
        exit(0)
    else:
        cookieDB = os.path.join(path, 'cookies.sqlite')
        if os.path.isfile(cookieDB):
            printCookies(cookieDB)
        else:
            print '[-] The cookies.sqlite not exist'

        placeDB = os.path.join(path, 'places.sqlite')  #复合目录
        if os.path.isfile(placeDB):
            printHistory(placeDB)
            printGoogle(placeDB)
        else:
            print '[-] The places.sqlite not exist'



if __name__ == '__main__':
    main()

おすすめ

転載: www.cnblogs.com/qianxinggz/p/11402613.html