界面比较简单:
代码如下:
import requests
import re
import os
from PySide2.QtWidgets import QApplication
from PySide2.QtUiTools import QUiLoader
from PySide2.QtCore import QFile
class Stats: #定义类
def __init__(self): #导入UI窗口
#从文件中加载UI界面
qfle_stats=QFile('github.ui')
qfle_stats.open(QFile.ReadOnly)
qfle_stats.close()
self.ui=QUiLoader().load(qfle_stats)
self.ui.pushButton.clicked.connect(self.run)
def run(self):
self.fangwen1()
self.fangwen2()
self.fangwen3()
self.fangwen4()
def fangwen1(self): #取ip1
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36'}
url = requests.get('https://github.com.ipaddress.com/',headers=headers).text
aa = re.findall("https://www.ipaddress.com/ipv4/" + '(.*?)' + r'\\', url)[0]
print(aa)
global a
a=aa
self.ui.lineEdit.setText(aa) # 设置内容
def fangwen2(self): #取ip2
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36'}
url = requests.get('https://fastly.net.ipaddress.com/github.global.ssl.fastly.net',headers=headers).text
aa = re.findall("https://www.ipaddress.com/ipv4/" + '(.*?)' + r'\\', url)[0]
print(aa)
global b
b=aa
self.ui.lineEdit_2.setText(aa) # 设置内容
def fangwen3(self): #取ip3
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36'}
url = requests.get('https://github.com.ipaddress.com/assets-cdn.github.com',headers=headers).text
aa = re.findall("https://www.ipaddress.com/ipv4/" + '(.*?)' + r'\\', url)
global c, d, e, f
c=aa[0]
d=aa[1]
e=aa[2]
f=aa[3]
self.ui.lineEdit_3.setText(aa[0])
self.ui.lineEdit_4.setText(aa[1])
self.ui.lineEdit_5.setText(aa[2])
self.ui.lineEdit_6.setText(aa[3])
def fangwen4(self):
self.remove()
dir_name = 'C:\Windows\System32\drivers\etc\hosts'
global a,b,c,d,e,f
text=a+' github.com\n'+b+' github.global.ssl.fastly.net\n'+c+' assets-cdn.github.com\n'+d+' assets-cdn.github.com\n'+e+' assets-cdn.github.com\n'+f+' assets-cdn.github.com'
with open(dir_name, 'a+') as zz:
zz.write(text)
print('爬取成功')
self.cmd()
def remove(self): #删除指定文件
try:
os.remove(r'C:\Windows\System32\drivers\etc\hosts')
finally:
print('删除失败')
def cmd(self):
dama='ipconfig /flushdns'
d=os.system(dama)
print(d)
self.ui.label_4.setText('hosts更新成功')
if __name__ == '__main__':
x=0
a=''
b=''
c=''
d=''
e=''
f=''
app = QApplication([])
Stats = Stats()
Stats.ui.show()
app.exec_()
注:使用时退出安全卫生,不然可能hosts更新不成功、有空再优化一下代码。