# -*- conding:utf-8 -*-
import requests,re,json,time
from requests import ReadTimeout
Ding_url = 'https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxxx'
Ding_headers = {
"Content-Type": "application/json ;charset=utf-8 "
}
url = 'http://www.123.com.cn/'
req = requests.get(url).text
url_list = re.findall('href="(.*?)"',req,re.S)
urls = ['http://www.123.com.cn/']
for ul in url_list:
if ul not in urls:
urls.append(ul)
def status():
for i in urls:
if 'show' in i:
try:
html_status = requests.head(url = i , timeout=30)
status_codes = html_status.status_code
content_print = {str(status_codes):str(i)}
# j = json.dumps(content_print) #TypeError: Object of type 'function' is not JSON serializable
time.sleep(1)
except:
status()
return status_codes,status
def datas(status):
datass = {"msgtype": "text", "text": {"content": status}, "at": {"atMobiles": [], "isAtAll": False}}
String_textMsg = json.dumps(datass)
req = requests.post(Ding_url, data=String_textMsg, headers=Ding_headers).text
print('发送内容:', String_textMsg)
return String_textMsg
def TorF(status_codes):#,title
if status_codes == 200:
datas(status)
return datas(status)
num = 1
while num < 99999999999:
datas(status)
num += 1
time.sleep(5)
print('已执行第 ' + str(num) + ' 次')
代码如上,在json.dumps
转换的时候,报错了,类型不对。我测了一下content_print = {str(status_codes):str(i)}
是dict啊,而且换成list、元组都不行。在实际输出的时候能看到类型确实不对<function status at 0x00000000027C5840>
,但是这个不知道咋改了...
上面的status是函数名。是不是要调用一下啊 status()