基于Python的防网络沉迷相关信息获取

1.程序描述

基于Python网络爬虫技术,在一些门户网站或社交网站爬取一些关于网络沉迷的案例、图片,以此为例撰写一篇关于防止网络沉迷的论文,可以论述怎样借助于Python爬虫技术实现相关内容的获取,也可以基于所编写Python爬虫程序获取的图片、案例或者文字信息,撰写网络沉迷的危害,以及怎样防止网络沉迷。

2.程序设计

2.1 设计思路

1.借助 selenium 爬虫爬取网上课堂以来的微博有关“青少年沉迷网络”的话题的相关动态。

2.借助 xlrd 模块提取爬取的内容。

3.借助词云wordcloud 和 jieba 模块进行关键词分析。

2.2 程序代码

代码一借助 selenium 自动化提取 “青少年沉迷网络” 的动态 [3]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
# -*- coding: utf-8 -*-
"""
Created on 2018/11/27 下午 1:03

@author: FeiTao
@Email: feitao_sydx@163.com
@Software: PyCharm
"""
import time
import datetime
import re
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import xlwt

# 先调用无界面浏览器PhantomJS或Firefox
# driver = webdriver.PhantomJS()
# driver = webdriver.Firefox()
driver = webdriver.Chrome()


# ********************************************************************************
# 第一步: 登陆login.sina.com
# 这是一种很好的登陆方式,有可能有输入验证码
# 登陆之后即可以登陆方式打开网页
# ********************************************************************************

def LoginWeibo(username, password):
try:
# 输入用户名/密码登录
print('准备登陆Weibo.cn网站...')
driver.get("http://login.sina.com.cn/")
elem_user = driver.find_element_by_name("username")
elem_user.send_keys(username) # 用户名
elem_pwd = driver.find_element_by_name("password")
elem_pwd.send_keys(password) # 密码
elem_sub = driver.find_element_by_xpath("//input[@class='W_btn_a btn_34px']")
elem_sub.click() # 点击登陆 因无name属性

try:
# 输入验证码
time.sleep(10)
elem_sub.click()
except:
# 不用输入验证码
pass

# 获取Coockie 推荐资料:http://www.cnblogs.com/fnng/p/3269450.html
print('Crawl in ', driver.current_url)
print('输出Cookie键值对信息:')
for cookie in driver.get_cookies():
print(cookie)
for key in cookie:
print(key, cookie[key])
print('登陆成功...')
except Exception as e:
print("Error: ", e)
finally:
print('End LoginWeibo!\n')


# ********************************************************************************
# 第二步: 访问http://s.weibo.com/页面搜索结果
# 输入关键词、时间范围,得到所有微博信息、博主信息等
# 考虑没有搜索结果、翻页效果的情况
# ********************************************************************************

def GetSearchContent(key):
driver.get("http://s.weibo.com/")
print('搜索热点主题:')

# 输入关键词并点击搜索
item_inp = driver.find_element_by_xpath("//input[@type='text']")
#item_inp = driver.find_element_by_xpath("//*[@id='pl_homepage_search']/div/div[2]/div/input")
item_inp.send_keys(key)
item_inp.send_keys(Keys.RETURN) # 采用点击回车直接搜索

time.sleep(5)
# 获取搜索词的URL,用于后期按时间查询的URL拼接
current_url = driver.current_url
current_url = current_url.split('&')[0] # http://s.weibo.com/weibo/%25E7%258E%2589%25E6%25A0%2591%25E5%259C%25B0%25E9%259C%2587

global start_stamp
global page

# 需要抓取的开始和结束日期
start_date = datetime.datetime(2020, 2, 25)
end_date = datetime.datetime(2020, 5, 24)
delta_date = datetime.timedelta(days=1)
# 需要抓取的地区 37:2代表山东青岛
#region = 'custom:37:2'

# 每次抓取一天的数据
start_stamp = start_date
end_stamp = start_date + delta_date

global outfile
global sheet

outfile = xlwt.Workbook(encoding='utf-8')

while end_stamp <= end_date:
page = 1

# 每一天使用一个sheet存储数据
sheet = outfile.add_sheet(start_stamp.strftime("%Y-%m-%d-%H"))
initXLS()

# 通过构建URL实现每一天的查询
#url = current_url + '&typeall=1&suball=1×cope=custom:' + start_stamp.strftime(
# "%Y-%m-%d-%H") + ':' + end_stamp.strftime("%Y-%m-%d-%H") + '®ion='+ region + '&Refer=g'
#url = 'https://s.weibo.com/weibo?q=%E9%9B%BE%E9%9C%BE®ion=custom:37:2&typeall=1&suball=1×cope=custom:2018-01-01-17:2018-01-01-19&Refer=g'
url = current_url + '&typeall=1&suball=1×cope=custom:' + start_stamp.strftime(
"%Y-%m-%d-%H") + ':' + end_stamp.strftime("%Y-%m-%d-%H") + '&Refer=g'

driver.get(url)

handlePage() # 处理当前页面内容

start_stamp = end_stamp
end_stamp = end_stamp + delta_date


# time.sleep(1)

# ********************************************************************************
# 辅助函数,考虑页面加载完成后得到页面所需要的内容
# ********************************************************************************

# 页面加载完成后,对页面内容进行处理
def handlePage():
while True:
# 之前认为可能需要sleep等待页面加载,后来发现程序执行会等待页面加载完毕
# sleep的原因是对付微博的反爬虫机制,抓取太快可能会判定为机器人,需要输入验证码
time.sleep(1)
# 先行判定是否有内容
if checkContent():
print("getContent")
getContent()
# 先行判定是否有下一页按钮
if checkNext():
# 拿到下一页按钮
next_page_btn = driver.find_element_by_css_selector("#pl_feedlist_index > div.m-page > div > a.next")
next_page_btn.click()
else:
print("no Next")
break
else:
print("no Content")
break


# 判断页面加载完成后是否有内容
def checkContent():
# 有内容的前提是有“导航条”?错!只有一页内容的也没有导航条
# 但没有内容的前提是有“pl_noresult”
try:
driver.find_element_by_xpath("//div[@class='card card-no-result s-pt20b40']")
flag = False
except:
flag = True
return flag


# 判断是否有下一页按钮
def checkNext():
try:
driver.find_element_by_css_selector("#pl_feedlist_index > div.m-page > div > a.next")
flag = True
except:
flag = False
return flag


# 判断是否有展开全文按钮
def checkqw():
try:
driver.find_element_by_xpath(".//div[@class='content']/p[@class='txt']/a")
flag = True
except:
flag = False
return flag


# 在添加每一个sheet之后,初始化字段
def initXLS():
name = ['博主昵称', '博主主页', '微博认证', '微博达人', '微博内容', '发布位置', '发布时间', '微博地址', '微博来源', '转发', '评论', '赞']

global row
global outfile
global sheet

row = 0
for i in range(len(name)):
sheet.write(row, i, name[i])
row = row + 1
outfile.save("./crawl_output_YS.xls")


# 将dic中的内容写入excel
def writeXLS(dic):
global row
global outfile
global sheet

for k in dic:
for i in range(len(dic[k])):
sheet.write(row, i, dic[k][i])
row = row + 1
outfile.save("./crawl_output_YS.xls")


# 在页面有内容的前提下,获取内容
def getContent():
# 寻找到每一条微博的class
try:
# nodes = driver.find_elements_by_xpath("//div[@class='WB_cardwrap S_bg2 clearfix']")
# nodes = driver.find_elements_by_xpath("//div[@class='card-wrap']")
nodes = driver.find_elements_by_xpath("//div[@class='card-wrap']/div[@class='card']")
except Exception as e:
print(e)

# 在运行过程中微博数==0的情况,可能是微博反爬机制,需要输入验证码
if len(nodes) == 0:
input("请在微博页面输入验证码!")
url = driver.current_url
driver.get(url)
getContent()
return

dic = {}

global page
print(start_stamp.strftime("%Y-%m-%d-%H"))
print('页数:', page)
page = page + 1
print('微博数量', len(nodes))

for i in range(len(nodes)):
dic[i] = []
try:
# BZNC = nodes[i].find_element_by_xpath(".//div[@class='feed_content wbcon']/a[@class='W_texta W_fb']").text
BZNC = nodes[i].find_element_by_xpath(".//div[@class='content']/p[@class='txt']").get_attribute("nick-name")
# print(nodes[2].find_element_by_xpath(".//div[@class='content']/p[@class='txt']").get_attribute("nick-name"))
except:
BZNC = ''
print('博主昵称:', BZNC)
dic[i].append(BZNC)

try:
BZZY = nodes[i].find_element_by_xpath(".//div[@class='content']/div[@class='info']/div[2]/a").get_attribute("href")
# print(nodes[1].find_element_by_xpath("//*[@id="pl_feedlist_index"]/div[2]/div[1]/div/div[1]/div[1]/a").get_attribute("href"))
# print(nodes[1].find_element_by_css_selector("#pl_feedlist_index > div:nth-child(2) > div:nth-child(1) > div > div.card-feed > div.avator > a").get_attribute("href"))
except:
BZZY = ''
print('博主主页:', BZZY)
dic[i].append(BZZY)
# 微博官方认证,没有爬取
try:
# WBRZ = nodes[i].find_element_by_xpath(".//div[@class='feed_content wbcon']/a[@class='approve_co']").get_attribute('title')#若没有认证则不存在节点
WBRZ = nodes[i].find_element_by_xpath(".//div[@class='info']/div/a[contains(@title,'微博')]").get_attribute('title') # 若没有认证则不存在节点
except:
WBRZ = ''
print('微博认证:', WBRZ)
dic[i].append(WBRZ)

try:
# WBDR = nodes[i].find_element_by_xpath(".//div[@class='feed_content wbcon']/a[@class='ico_club']").get_attribute('title')#若非达人则不存在节点
WBDR = nodes[i].find_element_by_xpath(".//div[@class='feed_content wbcon']/a[@class='ico_club']").get_attribute('title') # 若非达人则不存在节点
except:
WBDR = ''
print('微博达人:', WBDR)
dic[i].append(WBDR)

# 判断展开全文和网页链接是否存在
try:
nodes[i].find_element_by_xpath(".//div[@class='content']/p[@class='txt']/a[@action-type='fl_unfold']").is_displayed()
flag = True
except:
flag = False
# 获取微博内容
try:
if flag:
nodes[i].find_element_by_xpath(".//div[@class='content']/p[@class='txt']/a[@action-type='fl_unfold']").click()
time.sleep(1)
WBNR = nodes[i].find_element_by_xpath(".//div[@class='content']/p[2]").text.replace("\n","")
# 判断发布位置是否存在
try:
nodes[i].find_element_by_xpath(".//div[@class='content']/p[@class='txt']/a/i[@class='wbicon']").is_displayed()
flag = True
except:
flag = False
# 获取微博发布位置
try:
if flag:
pattern = nodes[i].find_elements_by_xpath(".//div[@class='content']/p[2]/a[i[@class='wbicon']]")
if isinstance(pattern,list):
text = [p.text for p in pattern]
FBWZ = [loc for loc in [re.findall('^2(.*$)', t) for t in text] if len(loc) > 0][0][0]
else:
text = pattern.text
FBWZ = re.findall('^2(.*$)',text)[0]
else:
FBWZ = ''
except:
FBWZ = ''
else:
WBNR = nodes[i].find_element_by_xpath(".//div[@class='content']/p[@class='txt']").text.replace("\n","")
# 判断发布位置是否存在
try:
nodes[i].find_element_by_xpath(".//div[@class='content']/p[@class='txt']/a/i[@class='wbicon']").is_displayed()
flag = True
except:
flag = False
# 获取微博发布位置
try:
if flag:
pattern = nodes[i].find_elements_by_xpath(".//div[@class='content']/p[@class='txt']/a[i[@class='wbicon']]")
if isinstance(pattern,list):
text = [p.text for p in pattern]
FBWZ = [loc for loc in [re.findall('^2(.*$)', t) for t in text] if len(loc) > 0][0][0]
else:
text = pattern.text
FBWZ = re.findall('^2(.*$)',text)[0]
else:
FBWZ = ''
except:
FBWZ = ''
except:
WBNR = ''
print('微博内容:', WBNR)
dic[i].append(WBNR)

print('发布位置:', FBWZ)
dic[i].append(FBWZ)

try:
# FBSJ = nodes[i].find_element_by_xpath(".//div[@class='feed_from W_textb']/a[@class='W_textb']").text
FBSJ = nodes[i].find_element_by_xpath(".//div[@class='content']/p[@class='from']/a[1]").text
except:
FBSJ = ''
print('发布时间:', FBSJ)
dic[i].append(FBSJ)

try:
# WBDZ = nodes[i].find_element_by_xpath(".//div[@class='feed_from W_textb']/a[@class='W_textb']").get_attribute("href")
WBDZ = nodes[i].find_element_by_xpath(".//div[@class='content']/p[@class='from']/a[1]").get_attribute("href")
except:
WBDZ = ''
print('微博地址:', WBDZ)
dic[i].append(WBDZ)

try:
WBLY = nodes[i].find_element_by_xpath(".//div[@class='content']/p[@class='from']/a[2]").text
except:
WBLY = ''
print('微博来源:', WBLY)
dic[i].append(WBLY)

try:
ZF_TEXT = nodes[i].find_element_by_xpath(".//a[@action-type='feed_list_forward']").text
# ZF_TEXT = nodes[10].find_element_by_xpath(".//a[@action-type='feed_list_forward']").text
# ZF_TEXT.split(' ')[1]
if ZF_TEXT == '转发':
ZF = 0
else:
ZF = int(ZF_TEXT.split(' ')[1])
except:
ZF = 0
print('转发:', ZF)
dic[i].append(ZF)

try:
# PL_TEXT = nodes[i].find_element_by_xpath(".//a[@action-type='feed_list_comment']//em").text#可能没有em元素
PL_TEXT = nodes[i].find_element_by_xpath(".//a[@action-type='feed_list_comment']").text # 可能没有em元素
# nodes[10].find_element_by_xpath(".//a[@action-type='feed_list_comment']").text
if PL_TEXT == '评论':
PL = 0
else:
PL = int(PL_TEXT.split(' ')[1])
except:
PL = 0
print('评论:', PL)
dic[i].append(PL)

try:
ZAN_TEXT = nodes[i].find_element_by_xpath(".//a[@action-type='feed_list_like']//em").text # 可为空
# ZAN_TEXT = nodes[10].find_element_by_xpath(".//a[@action-type='feed_list_like']").text #可为空
if ZAN_TEXT == '':
ZAN = 0
else:
ZAN = int(ZAN_TEXT)
except:
ZAN = 0
print('赞:', ZAN)
dic[i].append(ZAN)
print('\n')

# 写入Excel
writeXLS(dic)


# *******************************************************************************
# 程序入口
# *******************************************************************************
if __name__ == '__main__':
# 定义变量
username = '*************' # 输入你的用户名
password = '*************' # 输入你的密码

# 操作函数
LoginWeibo(username, password) # 登陆微博

# 搜索热点微博 爬取评论
key = '青少年沉迷网络'
GetSearchContent(key)

代码二借助 xlrd 模块提取 xls 的动态栏数据至 txt

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# -*- coding: UTF-8 -*-
import xlrd

def extract(inpath,f):

date = xlrd.open_workbook(inpath, encoding_override='utf-8')
sheets = date.nsheets
print(sheets)
for i in range(0,sheets):
table = date.sheets()[i]#选定表
nrows = table.nrows#获取行号
ncols = table.ncols#获取列号
for i in range(1, nrows):
alldate = table.row_values(i)#循环输出excel表中每一行,即所有数据
result = alldate[4]#取出表中第4列数据
print(result)
f.write(result+"\n")

inpath = 'D:\桌面\Python\拓展\weiboSpider-master\关键词爬取\crawl_output_YS.xls'#excel文件所在路径
f=open("提取到的第二列数据.txt","w",encoding="utf-8")
extract(inpath,f)
f.close()

代码三借助 jieba 和 wordcloud 模块将提取的动态数据进行分词、可视化操作 [5]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import jieba
import wordcloud


# 导入imageio库中的imread函数,并用这个函数读取本地图片,作为词云形状图片
import imageio
mk = imageio.imread("未标题-1.png")

# 构建并配置词云对象w,注意要加stopwords集合参数,将不想展示在词云中的词放在stopwords集合里,这里去掉“曹操”和“孔明”两个词
w = wordcloud.WordCloud(width=1000,
height=700,
background_color='white',
font_path='msyh.ttc',
mask=mk,
scale=5
)

# 对来自外部文件的文本进行中文分词,得到string
f = open('提取到的第五列数据.txt',encoding='utf-8')

txt = f.read()
txtlist = jieba.lcut(txt)
string = " ".join(txtlist)

# 将string变量传入w的generate()方法,给词云输入文字
w.generate(string)


# 将词云图片导出到当前文件夹
w.to_file('青少年沉迷网络01.png')

2.3 运行结果示例

3.论文主体

通过爬取以及可视化之后我们发现爬取数据中出现频率较高的一些词汇包含以下内容: 青少年沉迷网络
收起全文(忽略) 网络 网路 游戏机 光盘 净空法师 阿弥陀佛 毒药 害人 网络游戏 侵蚀 荒废 杀人 荒废学业 色情 害人 祸害 法身 山东 临沂 杨氏模 机构 CCTV 今日说法 焦点访谈 救治 担心 孩子 挽回 千家万户 家长 民族 儿女 中国 文明 健康 强大 必须 严厉 监管 有关部门 腾讯 网吧 政府 支持 推广 公立 时间 观察 请问 央视 新闻 爱

接下来我将从家庭社会对青少年沉迷网络的态度做法来分析当前未成年人沉迷网络现状,由当前现状来分析为什么青少年会沉迷于网络,最后根据一些自己以及网络上的看法来分析如何做到防止青少年沉迷网络。

3.1 当前未成年人沉迷网络现状

当看到上面提取的关键词的时候,我的内心是极其欢喜的,因为在这些关键词里面我感觉到互联网的奇妙,互联网涵盖了几乎这个问问题的所有社会观点,于是我将这些关键词进行分类处理得到以下几类:

青少年沉迷网络 收起全文(忽略) 网络 网路 游戏机 光盘 腾讯 网络游戏 色情 净空法师 阿弥陀佛 毒药 侵蚀 杀人 荒废学业 害人 祸害 法身 山东 临沂 杨氏模 机构 CCTV 今日说法 焦点访谈 救治 担心 孩子 挽回 千家万户 家长 民族 儿女 中国 文明 健康 强大 必须 严厉 监管 有关部门 腾讯 网吧 政府 支持 推广 公立 时间 观察 请问 央视 新闻 爱

对以上词汇分析可得到一下几点内容:
当前青少年沉迷于网络多半是因为网络游戏,随着互联网的普及,各种互联网衍生品也层出不穷,例如色情、网络游戏等,互联网游戏公司也如雨后春笋般的蓬勃发展,也正是因为游戏的不断创作导致很多自制力还不健全的青少年沉浸其中。

随着青少年沉迷网络的数目不断变大,社会中讨伐互联网的舆论也不断上升,主要表现为:
互联网荒废青少年的学业
互联网就是毒药,祸害人。
互联很多是竞技比赛,打打杀杀导致社会犯罪率增加。

针对青少年沉迷网络,引发社会各种舆论对策:

家长对子女的担心、忧虑。
以山东临沂戒网中心为代表的所谓”杨氏模救治“机构的建立。
CCTV、焦点访谈针对未成年人沉迷网络的相关报道。
政府考虑社会热点以及民族未来开展“健康中国”“文明中国”活动。
政府推进对网吧、腾讯等平台的监管力度。
还有一部分人不反对青少年合理利用网络,认为互联网更像是七八十年代的摇滚乐,只是还没有被人们认可,暂时地认为是腐朽青年一代的产品。在他们看来,青少年沉迷网络的根本原因是由于家庭中缺少爱。

3.2 为什么青少年会沉迷网络

知乎问题:青少年为何会对网络成瘾?[6]

孩子没有获得足够的陪伴。
孩子没有获得尊重。
青少年的发展特点 根据马斯洛需求层次理论,人底层的需求被满足后,便会产生高层次的需。如果心理需求不能得到满足的话,会产生焦虑,孤独等心理问题。青少面时期是个体由不成熟过渡的重要时期,心理状态不稳定,情绪起伏大,自制力相对较差,心理需要比成年人强烈而明显。

从社会角度考虑,当今社会是互联网社会,随着笔记本电脑、平板、智能手机等互联网产品种类以及支付宝、淘宝、QQ、微信等软件的开发利用,涵盖人们生活的各个领域,娱乐作为人们日常生活重要的一部分,游戏行业蓬勃发展,也逐渐赢得了青少年的喜爱。再加上当今社会重功利化,家庭赋予太大的学习压力,游戏也顺势站在了学习的对立面;从青少年人群分析我们知道青少年自制力稍欠,并且获取信息的欲望很强,很难在网络中辨别是非,误入歧途;站在游戏的角度考虑,为什么会受到那么多人的喜爱。我想他们正是抓住了很多人在生活中没有存在感,缺少父母的陪伴,于是在网络中提供了一个可以有存在感的空间;但是最重要的一点还是家庭原因,青少年在家轻重缺少陪伴与关爱,再加上对现实生活的不满,他们不得不选择去互联网去释放压力寻求慰藉。

3.3 怎样才能做到防青少年沉迷网络


朱永新建议,从网络游戏类别、认证、时长、充值方面建立网络游戏强制分级制度,并由相关政府部门审核监管。根据目前社会发展客观实际和网络游戏内容,比如是否包含暴力内容、不良语言、性内容等,可从早教类、管控类、限制类、禁止类等方面划分,对不同年龄段的未成年人建立网络游戏产品分级制度,其中包括实行用户注册登录实名认证分级,通过未成年人及其监护人身份证信息、手机号或人脸识别等方式实行未成年人登录网游时段、时长监管分级,实行游戏充值限额分级等。

朱永新还建议,建立网络游戏分级监管与评价机制,并修订完善网络游戏法律法规,对《未成年保护法》《网络安全法》《出版管理条例》《网络游戏管理暂行办法》进行修订,增加“基于未成年人保护的网络游戏分级”相关内容。[6]

在今年两会上,也有关于青少年沉迷网络的声音,因为目前我国尚没有全国性的行业协会,相关法律法规及管理条例内容宏观,缺少具体的细则和分级方案,执行效果不明显。全国政协委员、民进中央副主席朱永新呼吁建立网络游戏分级制度,通过人脸识别等技术实行未成年人登入网游时段、时长监管分级,防止青少年沉迷网络游戏。因此,政府还应该完善相关法律制度,建立健全相关法律规章制度,企业也应做好对未成年人的监督,在技术层面上做到硬核防沉迷。

从家庭教育关注未成年人权益保护,是一个很重要的角度。家庭是青少年成长的第一环境,是预防青少年走向犯罪歧路的第一道防线。孩子出了问题,多数情况下说明家庭教育出了问题。现在正大修的未成年人保护法和预防未成年人犯罪法,都把家庭教育作为了发力点之一。但相对来说,这都是一些原则性规定,效力十分有限。制定专门的“家庭教育法”,是在更高维度上唤起社会重视:家庭教育是不是一门专门的学问?家长需不需要接受专门的教育?答案是肯定的。

这次疫情期间,让近2亿中小学生迎来史无前例的在线教育,同时也凸显了青少年沉迷网络的问题。许多家长惊奇地发现,以前总是把问题归咎为“没时间照顾孩子”,但现在陪孩子的时间多了,却发现不了解他们,甚至无法沟通交流。这种尴尬指向的是,大多数人结婚生子后就无师自通,不需要学习就当上了家长。这实际是不够的,正如蒙台梭利所说,“儿童是成人之父”。和孩子相处是个学习和成长过程,家长们不应把教育看得太简单。

以“沉迷游戏”为例。调查显示,有4种青少年特别容易出现游戏成瘾现象,分别是家庭条件较差的;隔代教育下的;家庭关系差、亲子互动少的;家长对子女游戏行为没有限制的。它的心理机制是:亲子互动不足,只好到游戏里找补偿。家长需要反思的是,如果只生不养、只养不教,一下班自己也玩游戏,将孩子丢给别人看护,甚至拿手机当“电子保姆”,孩子很可能产生心理偏差。可见,家长需要接受教育,思考怎样正确爱孩子,让孩子健康成长。

进一步,“家庭教育法”有助于厘清家庭教育和学校教育的责任边界。学校、社会、家庭教育三者为一体,学校教育负责传道授业,社会教育重在历事练心,家庭教育关心爱和成长,三者互为犄角,谁也取代不了谁。但在现实中,人们常常把孩子的希望寄托在学校,过分夸大学校教育的作用,轻视自己的责任,这是一种失职渎职。进一步明确家庭教育的定位和功能,有利于家长看到自身责任,从而合力探讨家庭教育怎么做,它的着力点、抓手在哪里。

“天下之本在国,国之本在家。”习近平总书记多次强调要“注重家庭、注重家教、注重家风”,强调家长要给孩子讲好“人生第一课”,帮助扣好人生第一粒扣子,并强调要认真研究家庭领域出现的新情况新问题,把推进家庭工作作为一项长期任务抓实抓好。长期以来,家庭教育被认为是私领域的事,没有引起足够重视。人大代表的立法建议,有利于提升家庭教育地位、规范家庭教育行为。就目前来讲,如果能引起家庭的反思,也是件十分有益的事。

[7]

当然最重要的还是家庭层面,有时候孩子需要的不是锦衣玉食、而是陪伴。现代生活中,人们的生活逐渐碎片化,家长们越来越忙,家里买台电脑、买个平板可以让孩子在网上学习,但是对于孩子来说,他们尚未形成良好的自制能力,对网络繁杂的信息,没有辨别好坏的能力,他会忍不住玩游戏或者浏览色情网站,从而潜移默化的影响着他们的生活习惯甚至一生。因此,家长应该正视互联网或者游戏,不是上网就是有“网瘾”,应该重视与孩子的沟通,寓教于乐,多关注孩子的动态以及上网习惯、及时对孩子进行正面指导[8]。学校社会媒体也应该正视网络,不要妖魔化网络,积极宣传正能量,引导青少年健康文明上网。

正如上文所说,此次疫情“网上课堂”凸显了这个问题,我们就应该全民正视这个问题,不要推脱责任给任何不良机构或者控诉某些企业,多从自己方面找原因,这一点,我认为家长、学校、社会三方都应该做好反思。

4 结论

网络上对互联网的夸赞不胜其属,其中就有人认为互联网解放了青少年的思想,固然他拓宽了人们获取知识的渠道,当然随着生活水平的提高,互联网的确给生活带来了极大的便利,但是这仍然无法掩盖互联网是把双刃剑的事实。在这里,最主要的还是家长需要接受教育,思考怎样正确爱孩子,让孩子健康成长。请不要绑架互联网,互联网只是工具,说白了,没有上瘾与不上瘾,只有失败和不失败。这不应该是家长掩盖教育失败这个事实而冠冕堂皇的理由。当然,政府企业也应该重视青少年的发展。建立健全相关法律法规,完善监管制度,让祖国的下一代能够健康成长。

参考


基于Python的防网络沉迷相关信息获取
https://blog.baixf.tk/2020/07/19/python/基于Python的防网络沉迷相关信息获取/
作者
白小飞
发布于
2020年7月19日
许可协议