一.重要思路:
(1). 第一部份是读取win体系注册表中该路径下的键值,取得相应项后提取并打印
net = "SOFTWARE\Microsoft\Windows NT\CurrentVersion" + \
"\NetworkList\Signatures\Unmanaged"
key = OpenKey(HKEY_LOCAL_MACHINE, net)
print "\n[*] Networks You have Joined."
for i in range(100):
try:
guid = EnumKey(key, i)
(2).第二部份重要是对提取出来的mac地址进行查询,取得相应网站的查询api后提交数据
并返回成果
def wiglePrint(username, password, netid):
browser = mechanize.Browser()
browser.open("https://wigle.net")
(3).关于阅读器对象的创立分别出来
br = mechanize.Browser()
cj = cookielib.LWPCookieJar()
br.set_cookiejar(cj) ##关联cookies
3.遭受问题:
(1).#ssl._create_default_https_context = ssl._create_unverified_context #弄定证书验证,否则报错
某些网站由因而自制的CA证书,所以会产生ssl_error毛病,加上以上一句可以疏忽证书
(2).reqData = urllib.urlencode({"credential_0": username,
"credential_1": password})
以上数据是有传递格局的。
(3).扫描注册表键值时,要注意有中文名会抛出异常,用跳过的方法处置
4.其他收获:
(1). 关于_winreg的函数作用,起源(https://docs.python.org/2.7/library/index.html)
EnumKey(key, index)
Enumerates subkeys of an open registry key, returning a string
OpenKey(key, sub_key, reserved=0, access=KEY_READ)Opens the specified key, returning a handle object.(句柄)
EnumValue(key, index)
Enumerates values of an open registry key, returning a tuple.(元组)Python的元组与列表相似,不同的地方在于元组的元素不能修正,元组应用小括号,列表应用方括号
(2). urllib.urlencode()函数作用
接收参数情势为:[(key1, value1), (key2, value2),...] 和 {"key1": "value1", "key2": "value2",...}
返回的是形如key2=value2&key1=value1字符串。且经过了url编码
(3). 正则 re.findall 的简略用法(返回string中所有与pattern相匹配的全体字串,返回情势为数组)
语法:findall(pattern, string, flags=0)
import re
Python 正则表达式 re findall 办法能够以列表的情势返回能匹配的子串
findall查找全体r标识代表后面是正则的语句
regular_v1 = re.findall(r"docs","https://docs.python.org/3/whatsnew/3.6.html")
print (regular_v1)
输出为 ["docs"]
(4).mechanize库摹拟一个阅读器的办法(https://blog.csdn.net/cnmilan/article/details/9196471)
import mechanize
import cookielib
# Cookie Jar
cj = cookielib.LWPCookieJar()
# Browser
br = mechanize.Browser()
br.set_cookiejar(cj)
# Browser options
br.set_handle_equiv(True)
br.set_handle_gzip(True)
br.set_handle_redirect(True)
br.set_handle_referer(True)
br.set_handle_robots(False)
# Follows refresh 0 but not hangs on refresh > 0(关注刷新但不会挂起刷新)
br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1)
# Want debugging messages?
#br.set_debug_http(True)
#br.set_debug_redirects(True)
#br.set_debug_responses(True)
# User-Agent (http header)
br.addheaders = [("User-agent", "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/4.0.0")]
以上代码构建了一个阅读器对象,以下是用法
# HTTP access and get response pack
br.open("https://blog.csdn.net/cnmilan")
print br.response().read().decode("utf-8")
br.open(url,data),此时应用post办法传递参数并打开页面
br.open(url),(url=xxxx?xxxxx)此时相当于应用get办法传递数据并打开页面
(5)摹拟登录中的表单登录实现
browser.open("https://api.wigle.net/")
# for f in browser.forms(): ##有的页面有很多表单,你可以通过来查看
# print f
browser.select_form(nr=0) # 摹拟登录
browser["credential_0"] = "xxxxxxxx"
browser["credential_1"] = "xxxxxxxxxx"
browser.submit()
(6)通过pyqt实现照片定位
https://www.shiyanlou.com/courses/604/labs/1995/document(1). 第一部份是读取win体系注册表中该路径下的键值,取得相应项后提取并打印