Skip to content

Instantly share code, notes, and snippets.

View chinacaozheng's full-sized avatar

chinacaozheng

View GitHub Profile
Java File类文件类
File在java表示文件或文件夹(目录)
下面是如何用File来创建文件夹
public class Test
{
public static void main(String[] args)
{
//1.创建目录 直接在磁盘目录下
// File file = new File("c:/caozheng ");
@chinacaozheng
chinacaozheng / 天汇智码_曹正_Java多线程爬虫
Last active June 12, 2019 15:48
通过两个线程爬取小说,存入数据库,通过python调用数据库,阿里巴巴小程序展示爬取的数据
爬虫数据的代码前面有,但是在爬取数据时注意要lists.clear();(清理数据)
还有要注意爬取信息的格式
String title = e.select(".info h3 a").text();
爬取数据标题是test格式
String flag = e.select(".info h3 a").attr("href");
爬取数据连接,在这里要注意数据是否完整,能否直接点击获取,有些链接有安全措施要注意。在这里的爬取小说的链接就是有缺陷的,我们要人为补充数据
String author = e.select(".d1").text();
String imgurl = e.select(".fl img").attr("src");
@chinacaozheng
chinacaozheng / 天汇智码_曹正_多线程爬虫与数据库互联
Created June 10, 2019 15:16
通过Java爬虫技术爬取大众点评的数据,在存入数据库中
学习Java一段时间后,我们可以通过实列来展示Java语言的魅力,下面是我通过爬取大众点评来展示
在爬虫时要注意爬取的位置的抓取点 有id用#表示,class用 . 来表示。
还有当遇见有反爬虫机制时我们应改这样
![image.png](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABGIAAAFBCAYAAAA8MwmgAAAgAElEQVR4Aey9bWwdR5rv96dWgXKDIJ8kQi8YOtqYk0gi5iry2ojEgUwxAy7sMQx9IETI0MpcYG3CXkMSDBgZSmMtY4/EAAYMS9B6LuVFImsEC1T4QfD12AmxOHqJKQHWWtAalJUdGlcxfWUqpBLkyyYjIFkGVd3VXV2nqrr6nD6Hb/8DkN1d9dRTT/26urr76XppmZ+fn0eNv8ePH2PNmjU1pmYyEiABEiABEiABEiABEiABEiABEiABElhZBFatrOKytCRAAiRAAiRAAiRAAiRAAiRAAiRAAiSwcAToiFk49syZBEiABEiABEiABEiABEiABEiABEhghRGgI2aFnXAWlwRIgARIgARIgARIgARIgARIgARIYOEI0BGzcOyZMwk0jMB3pzrR0tKCloEvysnjiwG0tAygJG0121R6uVyWfHcKnYKf+us8he8yst/hVKcW39KCslBnsmn6wRcYWDZlaTo8ZkgCJEACJEACJEACJEACQQRWDQ4OIvo7hStz2TRiHt9/98ND/C+37uJ/uva13IrjOub3zWawJI5+xPXOfRhqeQvXs29iGesfnXoLQy1CLv7rvIxHGYn0IJH1yKTSDd777hauD7yFD+u1JVDPoip7INpiNt/CmKwDp3EvUH8jxXZtba9fvXBKPH8Wuz54C88Z2hLHSOyw6DxluUhip0aZjopSymWUpfpwFz6Ympft3fzEYTyZEXgShyfiuKkPsCsTt5QPnsNbH+zC2eeXi2NpKZ8L2k4CJEACJEACJEACJLBcCawaHh6G+HuzBxh/P3XGCGfL9Vv38MPD/xNP/GQD/uy//C/kVhyL8
@chinacaozheng
chinacaozheng / 天汇智码_曹正_多线程爬虫与数据库互联
Created June 10, 2019 15:06
通过Java爬虫技术爬取大众点评的数据,在存入数据库中
学习Java一段时间后,我们可以通过实列来展示Java语言的魅力,下面是我通过爬取大众点评来展示
在爬虫时要注意爬取的位置的抓取点 有id用#表示,class用 . 来表示。
还有当遇见有反爬虫机制时我们应改这样
![image.png](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABGIAAAFBCAYAAAA8MwmgAAAgAElEQVR4Aey9bWwdR5rv96dWgXKDIJ8kQi8YOtqYk0gi5iry2ojEgUwxAy7sMQx9IETI0MpcYG3CXkMSDBgZSmMtY4/EAAYMS9B6LuVFImsEC1T4QfD12AmxOHqJKQHWWtAalJUdGlcxfWUqpBLkyyYjIFkGVd3VXV2nqrr6nD6Hb/8DkN1d9dRTT/26urr76XppmZ+fn0eNv8ePH2PNmjU1pmYyEiABEiABEiABEiABEiABEiABEiABElhZBFatrOKytCRAAiRAAiRAAiRAAiRAAiRAAiRAAiSwcAToiFk49syZBEiABEiABEiABEiABEiABEiABEhghRGgI2aFnXAWlwRIgARIgARIgARIgARIgARIgARIYOEI0BGzcOyZMwk0jMB3pzrR0tKCloEvysnjiwG0tAygJG0121R6uVyWfHcKnYKf+us8he8yst/hVKcW39KCslBnsmn6wRcYWDZlaTo8ZkgCJEACJEACJEACJEACQQRWDQ4OIvo7hStz2TRiHt9/98ND/C+37uJ/uva13IrjOub3zWawJI5+xPXOfRhqeQvXs29iGesfnXoLQy1CLv7rvIxHGYn0IJH1yKTSDd777hauD7yFD+u1JVDPoip7INpiNt/CmKwDp3EvUH8jxXZtba9fvXBKPH8Wuz54C88Z2hLHSOyw6DxluUhip0aZjopSymWUpfpwFz6Ympft3fzEYTyZEXgShyfiuKkPsCsTt5QPnsNbH+zC2eeXi2NpKZ8L2k4CJEACJEACJEACJLBcCawaHh6G+HuzBxh/P3XGCGfL9Vv38MPD/xNP/GQD/uy//C/kVhyL8JXlj
@chinacaozheng
chinacaozheng / 天汇智码_曹正_Java多线程3
Created June 5, 2019 15:20
Java多线程 用wait和notify来控制多个线程执行顺序
wait语句会使线程阻塞从而不执行下面代码,通过通信标识位和notify另一个线程就会启动,执行完成后就会再通过标识位和notify来唤醒第一个线程,这样2个线程就会重复执行,下面是代码和效果演示。
设置一个标识位和一个int类
public class Number {
int i=1;
boolean flag;
}
一个打印偶数的线程
public class ThreadA extends Thread {
private Number n;
@chinacaozheng
chinacaozheng / 天汇智码_曹正_Java多线程2
Created June 4, 2019 14:53
Java多线程的通信 ,通过 XX.wait(); 来对当前运行的线程持有XX对象的锁,在此被阻塞,线程不会再往下执行。
当我们学习了synchroized安全锁之后知道线程是由JVM来随机控制的,是无序的。我们程序员是不可以控制的,但是在wait语句下我们可以阻塞这个线程,来达到人工控制线程的进度。
public class Test {
public static void main(String[] args)
{
//int a=10;
Object obj = new Object();
UserThread ut = new UserThread(obj);
ut.start();
@chinacaozheng
chinacaozheng / 天汇智码_曹正_Java的多线程1
Created June 4, 2019 14:30
本章讲的是牺牲性能来提高安全的线程方法
Java的多线程执行是无序的由JVM随机操控,但是我们可以通过synchronized方法或者synchronized同步块,使线程的安全性提高。(**注意**:synchronized 安全锁的对象只能作用于一个,不然锁不住)
如我们通过银行卡,微信,支付宝,同时对一个账户进行存取钱的操作。账户是对象,银行卡,微信,支付宝是三个线程
三个线程随机开始进入
synchronized (this)
{ System.out.println(Thread.currentThread().getName()+",欢迎来到工商银行!!");
this.money+=opmoney; System.out.println(Thread.currentThread().getName()+
",操作的金额为:"+opmoney+","+"现在账户的金额为:"+this.money);
System.out.println(Thread.currentThread().getName()+",谢谢你的操作,银行阶乘为你服务!!");
}
三个线程操作数据
@chinacaozheng
chinacaozheng / 天汇智码_曹正_微信小程序,python,MySQL交互
Created June 4, 2019 00:33
我们对小程序登陆和注册,可以通过python实施对MySQL的数据访问和操作
微信小程序通过ngrok服务和语法糖来和python进行数据连接
wx.request({
url: 'http://cz.free.idcfengye.com/login',
data: { "uname": this.data.namevalue, "upwd": this.data.pwdvalue },
success: (resp) => {
var flag = resp.data
console.log(flag);
if (flag == "成功") {
//跳转页面