首页
畅所欲言
友情链接
壁纸大全
数据统计
推荐
工具箱
在线白板
Search
1
职教云小助手重构更新,职教云助手最新版下载地址【已和谐】
14,536 阅读
2
职教云-智慧职教,网课观看分析(秒刷网课)
11,824 阅读
3
gradle-5.4.1-all.zip下载
9,810 阅读
4
职教云-智慧职教,签到补签分析(逆天改命系列)
8,300 阅读
5
一个优秀的程序员从写文档开始:免费领14个月语雀云笔记会员
7,116 阅读
学习笔记
Web
Python
转载文章
算法刷题
JS逆向
综合笔记
安卓
物联网
Java
C
资源收集
软件收藏
网络资源
影视专辑
TED英语角
随便写写
随手拍
登录
/
注册
Search
Lan
累计撰写
622
篇文章
累计收到
632
条评论
首页
栏目
学习笔记
Web
Python
转载文章
算法刷题
JS逆向
综合笔记
安卓
物联网
Java
C
资源收集
软件收藏
网络资源
影视专辑
TED英语角
随便写写
随手拍
页面
畅所欲言
友情链接
壁纸大全
数据统计
推荐
工具箱
在线白板
搜索到
622
篇与
的结果
2021-01-04
visio2013,2019下载
{cloud title="cn_visio_professional_2013_x86_1138439.exe" type="default" url="https://mo.own-cloud.cn/#/s/4rgjTa" password=""/}{cloud title="cn_visio_professional_2013_x64_1138440.exe" type="default" url="https://mo.own-cloud.cn/#/s/0LlLtD" password=""/}{cloud title="VisioPro2019Retail.img" type="default" url="https://mo.own-cloud.cn/s/XA2GSg" password=""/}
2021年01月04日
659 阅读
0 评论
2 点赞
2021-01-03
最新版的pycharm对于Django框架里面的models相关的提示都消失了
这个问题是好几天前出现的了,今天才有时(xin)间(qing)出来总结一下,一开始我百度说是pycharm没有识别出这事一个Django项目,但是好像不是这样的,即使我设置之后,与models相关的代码提示依旧没有出现。我开始怀疑是环境问题,因为自上次用pycharm写Django之后,安装了一些与数据处理相关的环境,然后我将此删除之后,并重新新建虚拟环境去新建Django项目,发现问题尚未解决,于是我考虑到可能是pycharm的版本问题,中间更新了好几次,但因为比赛原因也没有去写Django,于是我在官网上下载了2020.1版本,这也是我上一次使用的正常的版本,然后问题解决了。于是我去jetbrans官网提交了问题,在12月31日晚十一点的时候得到了回复果然我不是一个人,已经有相同问题的人。https://youtrack.jetbrains.com/issue/PY-45879好吧,好像问题还没得到解决,那就先用旧版本的吧,不得不说,pycharm要是没了这个功能,写代码效率真的降低了好多,12月30日几乎一整天都在想办法解决这个问题
2021年01月03日
849 阅读
0 评论
0 点赞
2020-12-30
使用pycharm建Django项目,tools工具栏无Run manage.py task
使用pycharm建的Django项目,使用一段时间,然后发现模板文件中的static路径无法识别了。然后Tools栏目里面也没有run manage.py task猜想可能和安卓studio无法识别安卓项目一样,pycharm没将此项目当做Django了,于是百度后。打开Files->settings->Language&Frameworks->Django进行相关设置。保存之后即可。
2020年12月30日
668 阅读
0 评论
0 点赞
2020-12-19
Week5 情话网小爬虫
太久没写爬虫了,手生到连xpath怎么提取出来都忘记了,requests取回的数据编码都忘记怎么转换了于是乎在百度上随便搜了一个情话网,来进行爬取。目标地址:https://www.qinghuawang.net/一如既往的习惯,打开网站后F12,看是不是ajax请求也是,看着就很老的一个网站怎么会用ajax呢,想多了。于是就用原始的Xpath咯。打开浏览器里面的xpath helper按住shift键,去选择文章标题这样就获取到了一条标题的内容,然后就是稍微修改修改xpath,从原始的/html/body[@class='listBody']/div[@class='bodyMain']/div[@class='bodyMainBody']/div[@class='infoList']/ul[@class='infoListUL mt5']/li[1]/a[@class='articleTitle fl']修改一下//li/a[@class='articleTitle fl']就可以取到所有的标题了。但是这样取出来的数据并不是纯文本,他还包含了一些html标签,于是乎在后面加上一个/text()//li/a[@class='articleTitle fl']/text()这样就可以获取到一页中的标题了用python随便写一下试试。发现取出来之后是乱码,那就肯定是编码问题了,打开F12,查看html中的head,发现是gb2312提笔忘字之,怎么转换编码来着,百度了一下。res = requests.get(url).content res = res.decode("gb2312")以前怎么写的忘记了,但应该不是这么麻烦的。然后是这样的获取了一页的标题后,然后再获取详情页的链接,因为是a标签,所以只需要在xpath后面加一句/@href就可以获取到这个属性了//li/a[@class='articleTitle fl']/@href还得进入里面去获取文章内容咯,于是随便点进去看一下,详情页地址:https://www.qinghuawang.net/a/1808.htmlxpath发现,都是包含在p标签内于是只要把/p后面的[1]去掉就可以获取到所有的段落咯,再加上一个text()就可以获取到文本了。然后放到python里面试一下。然后又报错了,大概意思是gb2312无法解析0xfd于是百度了一下,解决之后。然后就是将这些话保存至txt咯。最后加几个For循环去爬取所有的内容咯最后整理代码如下,没进行清洗了,就开了个多线程:# -*- coding: utf-8 -*- """ ------------------------------------------------- @ Author :Lan @ Blog :www.lanol.cn @ Date : 2020/12/19 @ Description:I'm in charge of my Code ------------------------------------------------- """ import parsel import requests import threading def getContet(urls): for i in urls: url = 'https://www.qinghuawang.net/' + i res = requests.get(url).content res = res.decode("gb2312", errors='ignore') xpath = parsel.Selector(res) content = xpath.xpath("//p/text()").extract() with open('sentence.txt', 'a+', encoding='utf8') as f: for j in content: f.write(j + " ") print(j) def getAll(): for i in range(1, 20): url = f'https://www.qinghuawang.net/qinghua/list_1_{i}.html' res = requests.get(url).content xpath = parsel.Selector(res.decode('gb2312')) urlList = xpath.xpath("//li/a[@class='articleTitle fl']/@href").extract() threading.Thread(target=getContet, args=(urlList,)).start() if __name__ == '__main__': getAll()废了,废了
2020年12月19日
755 阅读
0 评论
0 点赞
2020-11-24
Android为属性组件动画无效
本来我的代码是这样的然后发现这动画只能在窗体onCreate的时候使用有效。放在点击事件之类的就不行了。后经百度发现需要开始动画而不是设置动画carImg.startAnimation(animation);
2020年11月24日
684 阅读
0 评论
0 点赞
2020-11-18
JavaScript调用Android方法,显示Echarts
开个坑,以后写
2020年11月18日
743 阅读
3 评论
0 点赞
2020-10-30
安卓实时获取数据并刷新图表
先来个效果图吧然后直接上代码,解说以后有机会我再补上assets>index.html<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <script src="./js/echarts.min.js"></script> <title>Document</title> </head> <body> <div id="main" style="width: 400px;height:400px;"></div> <script type="text/javascript" src="./js/echarts.min.js"></script> <script> var myChart = echarts.init(document.getElementById('main')); function updateData(jsonstr) { var shuju = JSON.parse(jsonstr); option = { xAxis: { type: 'category', data: shuju.data, }, yAxis: { type: 'value' }, series: [{ data: shuju.wendu, type: 'line' }] }; myChart.setOption(option); } </script> </body> </html>Mainactivity.javapackage cn.lanol.wendu; import androidx.annotation.NonNull; import androidx.annotation.UiThread; import androidx.appcompat.app.AppCompatActivity; import android.annotation.SuppressLint; import android.content.ContentValues; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.util.Log; import android.view.View; import android.webkit.JavascriptInterface; import android.webkit.WebView; import android.widget.Button; import com.google.gson.Gson; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.JsonParser; import java.io.IOException; import java.sql.Time; import java.util.Timer; import java.util.TimerTask; import cn.lanol.wendu.Helper.GetContext; import cn.lanol.wendu.Helper.SQLiteDBhelper; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; public class MainActivity extends AppCompatActivity { private SQLiteDBhelper dBhelper = new SQLiteDBhelper(GetContext.getContext(), "DATA", null, 1); private SQLiteDatabase db = dBhelper.getReadableDatabase(); private WebView webView; private Handler handler; @SuppressLint({"SetJavaScriptEnabled", "HandlerLeak"}) @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //初始化数据库 new Thread(new Runnable() { @Override public void run() { Timer timer = new Timer(); timer.schedule(new TimerTask() { @Override public void run() { getWenDuData(); Message msg = new Message(); msg.what = 1; handler.sendMessage(msg); } }, 0, 60000); } }).start(); webView = findViewById(R.id.echartsView); webView.getSettings().setAllowFileAccess(true); webView.getSettings().setJavaScriptEnabled(true); webView.loadUrl("file:///android_asset/index.html"); handler = new Handler() { @Override public void handleMessage(@NonNull Message msg) { super.handleMessage(msg); Log.d("标签", "handleMessage: " + msg.what); webView.loadUrl("javascript:updateData('" + getNewData() + "')"); } }; try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } } public String getNewData() { dBhelper.getWritableDatabase(); String wenduJson = "["; String timeJson = "["; Cursor a = db.query("WenDu", null, null, null, null, null, "ID desc", "5"); if (a.moveToFirst()) { do { String time = a.getString(a.getColumnIndex("time")); String wendu = a.getString(a.getColumnIndex("wendu")); wenduJson += """ + wendu + "","; timeJson += """ + time + "","; } while (a.moveToNext()); } timeJson = timeJson.substring(0, timeJson.length() - 1) + ']'; wenduJson = wenduJson.substring(0, wenduJson.length() - 1) + ']'; String result = "{"data":" + timeJson + ","wendu":" + wenduJson + "}"; return result; } public void getWenDuData() { OkHttpClient okHttpClient = new OkHttpClient(); Request request = new Request.Builder().url("https://api.565.ink/json").get().build(); try { Response response = okHttpClient.newCall(request).execute(); String res = response.body().string(); JsonObject a = JsonParser.parseString(res).getAsJsonObject(); String time = a.get("time").getAsString(); String wendu = a.get("wendu").getAsString(); Cursor cursor = db.query("WenDu", null, "time like '%" + time + "%'", null, null, null, null); if (cursor.moveToFirst()) { Log.d("已存在", time); } else { ContentValues values = new ContentValues(); values.put("time", time); values.put("wendu", wendu); db.insert("WenDu", null, values); Log.d("不存在", time); } Log.d("结果", time + "," + wendu); } catch (IOException e) { e.printStackTrace(); } } }activity_main.xml<?xml version="1.0" encoding="utf-8"?> <androidx.drawerlayout.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" tools:ignore="WebViewLayout"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:text="温度" /> <WebView android:id="@+id/echartsView" android:layout_width="match_parent" android:layout_height="400dp" /> </LinearLayout> <com.google.android.material.navigation.NavigationView android:id="@+id/navigationView" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="start" /> </androidx.drawerlayout.widget.DrawerLayout>AndroidMainifest.xml<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" package="cn.lanol.wendu"> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme" android:name=".Helper.GetContext" tools:ignore="GoogleAppIndexingWarning"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>SQLiteDBHelper.javapackage cn.lanol.wendu.Helper; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.widget.Toast; import androidx.annotation.Nullable; public class SQLiteDBhelper extends SQLiteOpenHelper { private Context mcontext; private static final String CREATE_WENDU = "create table WenDu(id integer primary key autoincrement,time text,wendu integer)"; public SQLiteDBhelper(@Nullable Context context, @Nullable String name, @Nullable SQLiteDatabase.CursorFactory factory, int version) { super(context, name, factory, version); mcontext = context; } @Override public void onCreate(SQLiteDatabase db) { db.execSQL(CREATE_WENDU); Toast.makeText(GetContext.getContext(), "欢迎使用温度实时监控系统", Toast.LENGTH_SHORT).show(); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } }GetContext.javapackage cn.lanol.wendu.Helper; import android.app.Application; import android.content.Context; public class GetContext extends Application { private static Context context; @Override public void onCreate() { super.onCreate(); context = getApplicationContext(); } public static Context getContext() { return context; } }目录结构
2020年10月30日
894 阅读
0 评论
0 点赞
1
...
39
40
41
...
89