对于获取cookie也无法自动登陆的网站应该怎么办? 20C

尝试使用python的selenium实现对微人大的自动登陆,先手动登陆一边,抓包cookies后用add_cookie()添加到browser实例中,但属性界面后依然无法自动登陆,仍然停留在输入账号和密码的界面,怎么办?

图片说明

同时无法获得网页真正的html,下载下来的html和f12看到的不一样,没有办法用程序填写账号密码。。。

图片说明图片说明

1个回答

估计是你的验证码不对,这个验证码比较简单,可以尝试ocr识别

https://www.cnblogs.com/guishenyouhuo/p/10121864.html

caozhy
每个人都有一个梦才不会孤单的说话就有天堂 回复叫我PT: 不要去2次访问验证码,那样会造成刷新改变,直接从webdriver得到的html的dom里面抓取
大约 2 个月之前 回复
namespace_Pt
叫我PT 啊,现在问题二解决了,是因为有一个frame,我得切换到frame内部才能找到输入框,但是又出现了一个问题,我想把验证码图片保存,但发现访问验证码的url的话,跳转到的页面里的验证码和当前显示的不一样,应该怎么处理?用截图么?
大约 2 个月之前 回复
namespace_Pt
叫我PT 不,第一种情况是我想用cookie跳过验证码,直接登陆,但是失败了;第二种情况是我想用账号密码和验证码登陆,但是根本找不到输入验证码的框
大约 2 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Android中关于cookie实现App实现自动登录的问题
大神求助,我在登录APP的时候将cookie保存到临时文件中,在下一次进入这个APP的时候我将cookie读出来放到联网的header中实现自动登录,有时候登录是成功了,但是有时候发现服务器返回是成功了,但是貌似服务器得到的信息还是没有登录成功,获取的数据也是没有登录成功的时候的数据,我自动登录完成后刷新数据还是不能改变!求大神帮忙鉴定一下我是不是逻辑有问题还是说不能这样子实现自动登录,应该怎样做?
python中用Selenium模拟登陆获取cookie。但是get_cookies成功过后浏览器就直接自动关闭,请问是什么原因
python中用Selenium模拟登陆获取cookie。但是get_cookies成功过后浏览器就直接自动关闭,请问是什么原因
自动登录Cookie与Session问题
** 第一次登录后,关闭浏览器,再重新打开浏览器,第二次进入之前登录后的页面,要重新登录,无法保存之前的用户数据。 ** 连接的数据表 user: ![图片说明](https://img-ask.csdn.net/upload/201901/13/1547364486_902601.png) 需要的jar包: c3p0-0.9.1.2.jar commons-beanutils-1.8.3.jar commons-dbutils-1.4.jar commons-logging-1.1.1.jar jstl.jar mysql-connector-java-5.1.7-bin.jar standard.jar --- // (login.jsp)页面 ``` <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <form method="post" action="LoginServlet"> 账号:<input type="text" name="username"><br> 密码:<input type="password" name="password"><br> <!-- 可以让自动登录的 on 做判断! --> <input type="checkbox" name="auto_login"> 自动登录<br> <input type="submit" value="登录"> </form> </body> </html> ``` --- //(index.jsp)页面 ``` <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> 这是首页 , <!-- 判断域中有没有username的值 --> <c:if test="${not empty userBean}"> 欢迎您, ${userBean.username }! </c:if> <c:if test="${ empty userBean}"> 您好,请登录! </c:if> </body> </html> ``` ---- //(UserBrean.java)页面 package com.bean.demo; public class UserBean { private int id ; private String username; private String password; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } } --- //(UserDao.java)页面 ``` package com.dao.demo; import java.sql.SQLException; import com.bean.demo.UserBean; public interface UserDao { /** * 执行登录,并且返回该用户的所有信息(Bean的数据) * @param user 执行登录的用户信息 * @return */ UserBean login(UserBean user) throws SQLException; } ``` --- //(UserDaoImpl.java)页面 ``` package com.dao.impl; import java.sql.SQLException; import org.apache.commons.dbutils.QueryRunner; import org.apache.commons.dbutils.handlers.BeanHandler; import com.bean.demo.UserBean; import com.dao.demo.UserDao; import com.util.demo.C3P0Util; public class UserDaoImpl implements UserDao { @Override public UserBean login(UserBean user) throws SQLException { QueryRunner runner = new QueryRunner(C3P0Util.getDateSource()); String sql = "select * from user where username = ? and password = ?"; //把sql数据返回到Bean类 return runner.query(sql, new BeanHandler<UserBean>(UserBean.class) , user.getUsername() , user.getPassword()); } } ``` --- (C3P0Util.java)页面 package com.util.demo; import java.io.InputStream; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Properties; import javax.sql.DataSource; import com.mchange.v2.c3p0.ComboPooledDataSource; public class C3P0Util { /* public static void main(String[] args) { getConn(); }*/ static ComboPooledDataSource dataSource = null; static { dataSource = new ComboPooledDataSource(); } /** * 获取 dataSource变量 * @return dataSource */ public static DataSource getDateSource() { return dataSource; } /** * 获取C3P0连接池的连接 * @throws SQLException */ public static Connection getConn() throws SQLException { return dataSource.getConnection(); } /** * 释放资源方法 */ public static void close(ResultSet rs,Statement stmt,Connection conn) { if(rs != null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); throw new RuntimeException(e); } } if(stmt != null) { try { stmt.close(); } catch (SQLException e) { e.printStackTrace(); throw new RuntimeException(e); } } if(conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); throw new RuntimeException(e); } } } } //(c3p0-config.xml)页面,连接数据库工具的配置文件 <?xml version="1.0" encoding="UTF-8"?> <c3p0-config> <default-config> <property name="jdbcUrl">jdbc:mysql://localhost:3306/conn</property> <property name="user">root</property> <property name="password">root</property> <property name="driverClass">com.mysql.jdbc.Driver</property> </default-config> </c3p0-config> //(CookieUtil.java)页面,Cookie工具类 package com.util.demo; import javax.servlet.http.Cookie; public class CookieUtil { public static Cookie findCookie(Cookie [] cookies , String name){ if(cookies != null){ for (Cookie cookie : cookies) { if(name.equals(cookie.getName())){ return cookie; } } } return null; } } //(LoginServlet.java)页面 package com.servlet.demo; import java.io.IOException; import java.sql.SQLException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.bean.demo.UserBean; import com.dao.demo.UserDao; import com.dao.impl.UserDaoImpl; @WebServlet("/LoginServlet") public class LoginServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { String userName = request.getParameter("username"); String password = request.getParameter("password"); //如果提交的时等于null,说明没选定自动登录,等于on时就是选择自动登录 String autoLogin = request.getParameter("auto_login"); UserBean user = new UserBean(); user.setUsername(userName); user.setPassword(password); UserDao dao = new UserDaoImpl(); UserBean userBean = dao.login(user); if(userBean != null){ //页面提交上来的时候,判断on,是否选择了自动登录 if("on".equals(autoLogin)){ //发送cookie给客户端,cookie的值是账号和密码,#号为分割符 Cookie cookie = new Cookie("auto_login", userName+"#aa#"+password); cookie.setMaxAge(60*60*24*7);//7天有效期 cookie.setPath("/AutoLoginDemo"); //cookie.setPath(request.getContextPath()); //得到的是localhoust后面的目录名字 response.addCookie(cookie); } /*用户再一次访问登录过后的首页,不需要从新登录*/ //成功了,创建Session对象,保存数据,发送到首页 request.getSession().setAttribute("userBean", userBean); response.sendRedirect("index.jsp"); }else{ //不成功... request.getRequestDispatcher("login.jsp").forward(request, response); } } catch (SQLException e) { e.printStackTrace(); } } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } } //(AutoLoginFilter.java)页面 package com.filter.demo; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.annotation.WebFilter; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import com.bean.demo.UserBean; import com.dao.demo.UserDao; import com.dao.impl.UserDaoImpl; import com.util.demo.CookieUtil; @WebFilter("/AutoLoginFilter") public class AutoLoginFilter implements Filter { public void destroy() { } public void doFilter(ServletRequest req, ServletResponse response, FilterChain chain) throws IOException, ServletException { try { HttpServletRequest request = (HttpServletRequest) req; //先判断,现在session中还有没有那个userBean. UserBean userBean = (UserBean) request.getSession().getAttribute("userBean"); //session还有效。 if(userBean != null){ chain.doFilter(request, response); }else{ //代表session失效了, 需要找cookie。 //1. 来请求的时候,先从请求里面取出cookie , 但是cookie有很多的key-value Cookie[] cookies = request.getCookies(); //2. 从一堆的cookie里面找出我们以前给浏览器发的那个cookie Cookie cookie = CookieUtil.findCookie(cookies, "auto_login"); //等于null代表第一次来 if(cookie == null){ chain.doFilter(request, response); }else{ //不是第一次登录, 表明用户现在已经登录过,取出Cookie的值帮用户登录 String value = cookie.getValue(); String username = value.split("#aa#")[0]; String password = value.split("#aa#")[1]; //完成登录 UserBean user = new UserBean(); user.setUsername(username); user.setPassword(password); UserDao dao = new UserDaoImpl(); userBean = dao.login(user); //使用session存这个值到域中,方便下一次未过期前还可以用。 request.getSession().setAttribute("userBean", userBean); chain.doFilter(request, response); } } } catch (Exception e) { //异常这里也需要放行,不然出现异常会导致用户的界面出现空白 e.printStackTrace(); chain.doFilter(req, response); } } public void init(FilterConfig fConfig) throws ServletException { // 有可能在这里面执行10分钟的耗时 } } //(web.xml)页面 <?xml version="1.0" encoding="UTF-8"?> <web-app> <display-name>AutoLoginDemo</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <servlet> <description></description> <display-name>LoginServlet</display-name> <servlet-name>LoginServlet</servlet-name> <servlet-class>com.servlet.demo.LoginServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>LoginServlet</servlet-name> <url-pattern>/LoginServlet</url-pattern> </servlet-mapping> <filter> <display-name>AutoLoginFilter</display-name> <filter-name>AutoLoginFilter</filter-name> <filter-class>com.filter.demo.AutoLoginFilter</filter-class> </filter> <filter-mapping> <filter-name>AutoLoginFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>
如何使用CURL获取织梦5.7后台登录后的cookie值
$curl = curl_init(); $cookie_jar = tempnam('./tmp','cookie'); curl_setopt($curl, CURLOPT_URL,'http://www.xxx.com/dede/login.php');//这里写上处理登录的界面 curl_setopt($curl, CURLOPT_POST, 1); $data = array( "dopost" => "login", "adminstyle" => "newdedecms", "userid" => "admin", "pwd" => "EkDPw3357O" ); curl_setopt($curl, CURLOPT_POSTFIELDS, $data);//传 递数据 curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie_jar);// 把返回来的cookie信息保存在$cookie_jar文件中 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);//设定返回 的数据是否自动显示 curl_setopt($curl, CURLOPT_HEADER, false);//设定是否显示头信 息 curl_setopt($curl, CURLOPT_NOBODY, false);//设定是否输出页面 内容 echo curl_exec($curl);//返回结果 curl_close($curl); //关闭
$upstream_cooke_name 有没有一次性自动获取Set-Cookie里所有值的办法
在开发过程中,我用nginx的代码访问一个url, 然后响应头如下所示 ![图片说明](https://img-ask.csdn.net/upload/201812/26/1545819158_848701.png) 用 ``` $upstream_http_set_cookie ``` 无法获取到Set-Cookie的任何内容(如果返回的Set-Cookie只有一条的话可以取到);然后我用 ``` $upstream_cookie_name ``` 这种方式可以获取到Set-Cookie的值,但这个name是不固定的,不可能用这个方式来做。<br/><font color="red">请问,有没有一次性取到所有的Set-Cookie中的值的方法啊?</font><br/> **openresty版本:openresty-1.13.6.2-win32**
php模拟登录目标网站,为何302没有跟随跳转.cookie已经获得.求解惑.
``` <?php error_reporting(0); $user = 'cckk263'; //邮箱密码 $pass = '54131421'; //登陆 $url = 'https://www.mql5.com/zh/auth_login/'; //创建一个用于存放cookie信息的文件 $cookie= dirname(__FILE__).'/tmp/cookie.txt'; $fields_post = array( 'Login'=> $user, 'Password'=> $pass, 'RedirectAfterLoginUrl'=>'https://www.mql5.com/zh', 'RememberMe'=>false, ); //step 1 //获取一个cookie $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie); $content1 = curl_exec($ch); curl_close($ch); //step 2 //post 数据; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0); curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie); // 从证书中检查SSL加密算法是否存在 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 120); // 自动跟随跳转 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_AUTOREFERER, 1); curl_setopt($ch, CURLOPT_POST, count($fields)); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($fields_post)); $result= curl_exec($ch); curl_close($ch); ```
javaweb 单点登录 如何实现账号密码的登录
网上有很多单点登录的例子 但都是成功后跳转到一个固定页面A和页面B意思意思,没有动态效果,既然单点登录,那么肯定要记录账号密码啊,如何实现页面A登录后,刷新页面B后实现自动登录并且页面展示出A的账号和密码,应该如何实现呢?我猜测是将账号密码放cookie里面,然后刷新B,B判断有没有那个单点登录的cookie,如果有就获取账号密码,然后登陆,登陆成功后跳转页面。。。
WEB项目登录模块中的自动登录功能如何实现检查cookies是否过期
``` private void setLoginRedis(HashCommands commands,Object key, Object hashKey, Object value) { commands.put(RedisBusinessCode.WEB_LOGIN_LIM.getCode(), key, hashKey, value); //保存到redise commands.expire(RedisBusinessCode.WEB_LOGIN_LIM.getCode(), key, 1, TimeUnit.HOURS); } ``` 上面这是保存redis信息,设置失效时间, 我现在不明白的是 他这个失效时间设置了多久?? 在实现自动登录功能的程序中,又该如何从cookies获取到这个时间值并检查是否过期?
C#WinForm程序如何用Cookie记住Web登录状态?
最近一个项目,要和MES系统交互,交互步骤如下: 注塑机设备与MES管理系统交互 实现目标: 通过注塑机设备与Mes系统的交互来实现注塑机设备自动打印条码,Mes系统记录当前条码号、物料erp号。 通过注塑机设备自动打印,代替当前人工打印标签、人工扫码作业。 交互步骤: 1. 注塑机设备用固定用户访问Mes系统。每台注塑机用户不同。 例:用户名为1,密码为123.登录方式: Request URL:http://127.0.0.1/obj/sysuser?chan=receive(no)|login Request Method:Post Form Date值为No:1 Password:123 2. 作业者在注塑机设备点击获取成型计划。 注塑机设备发送Url请求,Mes系统返回成型计划信息。 例Request URL:http://127.0.0.1/obj/sysuser?chan=tag(getplanraw,1) Request Method:Get 注释:tag(getplanraw,1)中的1为机台标号,当第二个机台请求时应为tag(getplanraw,2) 系统返回结果示例: {"data":[{"No":"20171219001","Key2":"1","Workgroup":"2","Itemno":"VNJMQD0A011A","Descr":"BoramqbD"},{"No":"20171219002","Key2":"1","Workgroup":"2","Itemno":"VNJMQD0A012A","Descr":"BoramqbA"}]} 数据示例: 计划号 机台 班组 物料 描述 20171219001 1 2 VNJMQD0A011A BoramqbD 20171219002 1 2 VNJMQD0A012A BoramqbA 3. 打印标签前,注塑机设备发送获取条码号的Url,Mes系统生成并输出条码号。 Request URL:http://127.0.0.1/obj/item?chan=tag(getprdfileno) Request Method:Get Mes系统返回结果为: {"data":[{"No":"192"}]}。 4. 注塑机设备接收并打印的条码号为192,编码规则为code128。自动化作业完成后提交该条码号、计划号、机台、班组、零件号、是否合格。 数据示例: 长度 描述 示例 11 计划号 20171212001 2 机台 2 1 班组 1 12 物料号 VNJMQD0A011A 1 是否合格(1合格,0不合格) 1 10 条码号 0123456789 YorN:为是否合格标识,1表示合格,2标识不合格。 用Post方式提交 http://127.0.0.1/obj/prdfile?chan=call(postprdfileno)&No=20171219001&Key2=2&Workgroup=1&Itemno= VNJMQD0A011A&YorN=1&Code=0123456789 5. Mes系统保持并记录。 接口协议为http 接口方式为Rest 如何记住登录信息,不必每次查询MES的时候都重新登录?
C#模拟登录中国联通获取用户通话详单
我写一个根据手机号码和服务密码自动登录中国联通官网 然后获取通话详单json的类,第一步模拟登录返回的数据没有问题 但是第二步获取通话详单的时候总是报500错误 有人知道解决方法吗? public static string GetCalldetails(string userName, string password) { string content=""; CookieContainer cookie = new CookieContainer(); string postUrl = "https://uac.10010.com/portal/Service/MallLogin?callback=jQuery17202691898950318097_1403425938090&redirectURL=http://www.10010.com&userName="+userName+"&password="+password+"&pwdType=01&productType=01&redirectType=01&rememberMe=1"; HttpWebRequest httpRequset = (HttpWebRequest)WebRequest.Create(postUrl); httpRequset.CookieContainer = cookie;//设置cookie httpRequset.Method = "GET"; httpRequset.ContentType = "text/html;charset=UTF-8"; HttpWebResponse httpresponse = (HttpWebResponse)httpRequset.GetResponse(); Stream myResponseStream = httpresponse.GetResponseStream(); StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8")); string retString = myStreamReader.ReadToEnd(); myStreamReader.Close(); myResponseStream.Close(); if (Convert.ToInt32(httpresponse.StatusCode) == 200) { if (retString.Contains("resultCode:\"0000\"")) { string billurl = "http://iservice.10010.com/e3/static/query/callDetail?_=1450840337718&menuid=000100030001"; string strdata = "pageNo=1&pageSize=100&beginDate=2015-12-01&endDate=2015-12-23"; byte[] byteArray = Encoding.UTF8.GetBytes(strdata); //string billurl = "http://iservice.10010.com/e3/static/check/checklogin/?_=1450857473494"; // HttpWebRequest Requset = (HttpWebRequest)WebRequest.Create(billurl); HttpWebRequest Requset = (HttpWebRequest)WebRequest.Create(billurl); Requset.Method = "POST"; Requset.CookieContainer = cookie; Requset.ContentType = "application/x-www-form-urlencoded"; Stream stream = Requset.GetRequestStream(); using (StreamWriter myStreamWriter = new StreamWriter(stream, Encoding.GetEncoding("UTF-8"))) { myStreamWriter.Write(byteArray); } HttpWebResponse response = (HttpWebResponse)Requset.GetResponse(); //if (Convert.ToInt32(response.StatusCode) == 200) //{ using (Stream responsestream = response.GetResponseStream()) { using (StreamReader sr = new StreamReader(responsestream, Encoding.GetEncoding("utf-8"))) { content = sr.ReadToEnd(); //return content; } } return content; } else { return "登录失败:" + retString + ""; } } else { int num = Convert.ToInt32(httpresponse.StatusCode); return "数据传输失败:" + num+""; } }
Spring-session服务概率性session乱窜怎么解决?
# 环境 SpringBoot 2.0.4 SpringSession 2.0.5 Session存在Redis 两个服务,分别跑在两台服务器上 都使用的Chrom浏览器,版本可能不一样 项目中都是在方法里getSession()未曾使用静态变量持有session 客户端->Apache->服务 获取Session统一使用这种方式: ``` java Application.getSession(); ``` Application: ``` java public class Application{ // ... public static HttpServletRequest getRequest() { return ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); } public static HttpSession getSession() { return getRequest().getSession(); } // ... } ``` # 现象 在登录的用户中无规律的某个在线用户A突然就变成了另一个在线用户B, 用户A登录时使用PC1,用户B登录时使用PC2, 也就是说PC1上登录的用户突然从用户A变成了用户B,并且能以用户B的身份正常操作 通过后台日志发现,变化后,PC1对应的sessionId已经变成了用户B登录时的sessionId,但是requestHeader中携带的cookie值没变。 如下,sessionId和cookie中的SESSION的值不一样了(spring-session默认cookie中SESSION的值是sessionId使用Base64编码之后的,此处说的是解码后比较) ``` java public void heartbeat(){ // ... String sessionId = Application.getSession().getId(); String cookie = Application.getRequest().getHeader("cookie"); // ... } ``` # 暂时处理办法 目前使用前后端结合检测到session串了之后自动T下线 ps: 如果我这边表达的看不太懂,也可以看这两篇,现象是一样的 [率性的 session 乱串](https://www.iteye.com/problems/78097) [session串了,该怎么解决](https://www.iteye.com/problems/20459)
爬虫 JSESSIONID 问题
写爬虫时碰到问题,cookie里需要 JSESSIONID 这个参数,怎么能自动获取到呢,省的手动复制粘贴
JAVA的爬虫大神请进来看看帮帮忙~跪谢~
情况是这样 我再爬https://auth.dxy.cn/accounts/login这个网站 目前进度是后面逻辑都完成了但是 headers.put("Cookie", ""); 每次我都要去页面上登录后获取cookie来这里然后执行才可以爬数据 现在需求是这样的说是不能人工干预需要自动爬 所以我需要自动登录获取cookie 但是呢我在页面上登录后获取的cookie是这样的(谷歌浏览器) Cookie:__asc=060e17db15aa2a899b0a81b001e; __auc=789c084915a59fdb8580135a791; __utmt=1; DRUGSSESSIONID=34EE460CF1254F6295136909C11520A4-n1; _gat=1; JUTE_BBS_DATA=30bbf27867b703a02b80e1ac7becfbb8aff0bce294145fdad02fedb7ae99e6381843225bafd700c0f9db4e482bdaf0f99e5130ce9b266abd077eb04920b96abbf3e93bd7bbeb3dce; _ga=GA1.2.282899927.1487568505; JUTE_SESSION_ID=dc5a17a0-ca5f-4b3b-a471-f829739ab75e; __utmt=1; __utma=17875052.282899927.1487568505.1488787707.1488787707.1; __utmb=17875052.1.10.1488787707; __utmc=17875052; __utmz=17875052.1488787707.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); CMSSESSIONID=41DC305C1614AFBEA4AF3A829576698C-n2; Hm_lvt_8a6dad3652ee53a288a11ca184581908=1487568483,1488787707; Hm_lpvt_8a6dad3652ee53a288a11ca184581908=1488787708; DXY_USER_GROUP=86; JUTE_SESSION=c5f211f2bc7d9474eff536ef071a255ddb49f6ecae2c5eddde965121920fe93fc0afa9d03d1c820140de2e1f8188c0a958ea713353a44e0948d132319d2fbd96b0e31f12a5cc75ee; __utma=129582553.633390142.1487568493.1488783828.1488787643.9; __utmb=129582553.5.10.1488787643; __utmc=129582553; __utmz=129582553.1487638797.2.2.utmcsr=baidu|utmccn=(organic)|utmcmd=organic; Hm_lvt_d1780dad16c917088dd01980f5a2cfa7=1487725429,1488161294,1488348968,1488768294; Hm_lpvt_d1780dad16c917088dd01980f5a2cfa7=1488787718 但是呢我自己按照网上教程写了一段自动登录获取cookie的代码.请求成功了返回200和ok...但是呢获取到的cookie是 "Set-Cookie: route=6f2d12ae997a6e0b502275db208a27c1; Path=/" "Set-Cookie: JSESSIONID=0FFB4D352F307AC351230CD7F075E381-n2; Path=/; HttpOnly" 这样的少了非常多.而且参数也对不上.我拿去试过也不能用 我对爬虫一脸蒙蔽.求大神帮帮忙. 如果有可能能不能写段代码示例给我看看然后发到360687243@qq.com最好了. 在此跪谢~
spring cloud关于session共享问题
在使用spring cloud时,用zuul部署api gateway,后端服务通过网关自动发现寻找。 想利用spring session将session对象共享在redis中。 问题是,每次通过api gateway访问的时候,在下面应用中获取的sessionId每次都不一样。(同一个页面刷新访问) 我在api gateway配置: zuul: sensitive-headers: Cookie,Set-Cookie 但始终没有效果。请教各位大神!! PS:在没有通过api gateway访问各个应用的时候,已经可以共享session,每次获取的sessionId都一致。
C# 如何使用 HttpWebReques 编写baidu(百度)自动登录,请高手帮忙看看,如何解决?
下面是我写的代码,不知道那里出错,实现不了登录,请帮忙解决...先说声谢谢啦代码: ---------- string postdata = "ppui_logintime=482599&charset=utf-8&codestring=&token=e80e24119525675ba6ee9e0e15c6a8be&isPhone=false&index=0&u=&safeflg=0&staticpage=http%3A%2F%2Fwww.baidu.com%2Fcache%2Fuser%2Fhtml%2Fjump.html&loginType=1&tpl=mn&callback=parent.bdPass.api.login._postCallback&username=xx&password=xx&verifycode=&mem_pass=on"; string url = "https://passport.baidu.com/v2/api/?login"; //准备发送请求 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); Encoding myEncoding = Encoding.GetEncoding("UTF-8"); byte[] data = myEncoding.GetBytes(postdata); CookieContainer cc=new CookieContainer(); request.Method = "POST"; request.ContentType = "application/x-www-form-urlencoded"; request.Accept = "image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*"; request.KeepAlive = true; request.UserAgent = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E))"; request.CookieContainer=cc; request.ContentLength = data.Length; // //发送数据 Stream webStream = request.GetRequestStream(); webStream.Write(data, 0, data.Length); //webStream.Close(); webStream.Flush(); //获取返回数据 HttpWebResponse webResponse = (HttpWebResponse)request.GetResponse(); StreamReader reader = new StreamReader(webResponse.GetResponseStream(), myEncoding ); postdata = reader.ReadToEnd(); Console.WriteLine(postdata); webResponse.Close(); postdata.Trim(); //Cookies CookieContainer cs = new System.Net.CookieContainer(); System.Net.CookieCollection cc1 = cc.GetCookies(new Uri("https://passport.baidu.com/v2/api/?login")); foreach (System.Net.Cookie item in cc1) { Console.WriteLine(item.Name); Console.WriteLine(item.Value); } webBrowser1.Navigate("www.baidu.com");
cookiecontainer问题,折腾一天了求帮助谢谢
我把httpwebresponse.cokies添加add()到cookiecontaoner里,然后遍历出来,里面的cookie不全(还就是关键的几个cookie没在),然后我又直接遍历httpwebresponse.cokies,里面的cookie又全在,请问下这是怎么回事?? ``` /// <summary>   /// 通过get方式请求页面,传递一个实例化的cookieContainer   /// </summary>   /// <param name="postUrl"></param>   /// <param name="cookie"></param>   /// <returns></returns>   public static ArrayList GetHtmlData(string postUrl, CookieContainer cookie)   {       HttpWebRequest request;       HttpWebResponse response;       ArrayList list = new ArrayList();       request = WebRequest.Create(postUrl) as HttpWebRequest;       request.Method = "GET";       request.UserAgent = "Mozilla/4.0";       request.CookieContainer = cookie;       request.KeepAlive = true;          request.CookieContainer = cookie;       try       {           //获取服务器返回的资源           using (response = (HttpWebResponse)request.GetResponse())           {               using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.Default))               {                   cookie.Add(response.Cookies);                   //保存Cookies                   list.Add(cookie);                   list.Add(reader.ReadToEnd());                   list.Add(Guid.NewGuid().ToString());//图片名               }           }       }       return list; } ```
网上下载的项目-导入ssm小米商城的后台项目访问登录界面login的时候无法跳转到其他页面是怎么回事?
在网上下载的ssm小米商城的后台项目 1:项目没有错误,,, 2:在访问登录界面login的时候- 却无法跳转到其他页面 3:数据库不知道是不是正常 4:我的数据库设置了管理员登录:admin 密码123456 5: 写了个generatorConfig.xml 6:::新增:看到有人回复说数据库的名字没有改: 我用的是mysql 数据库名是:shop 密码是:1234 userId我不知道是要赋值什么值,,一般不是userName吗??但是这个项目中的确实userId ,,所以我也给他 赋值了数据库的用户名 “root”但是这样配置根本就没有用,,同样无法跳转页面:::: 如果配置错了,,麻烦指出来,,非常感谢,,新手新手,,实力有限抱歉 求大神帮助,,,呜呜,,还是跳转不了 数据库图片: ![图片说明](https://img-ask.csdn.net/upload/201812/26/1545786449_770158.png) 数据库配置图: ![图片说明](https://img-ask.csdn.net/upload/201812/26/1545786860_325497.png) 按照网友提出的问题:修改数据库名和密码: 我把connectionURL 的 work_attendance也改成了shop,, 如下: //connectionURL="jdbc:mysql://localhost:3306/work_attendance" connectionURL="jdbc:mysql://localhost:3306/shop" <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/shop" userId="root" password="1234"> </jdbcConnection> 但是还是没有用,,,依然无法跳转,,总感觉没有错误,,,不知道错在哪了。。。。,,,,大神,,大神们求帮助中 代码如下: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd" > <generatorConfiguration> <!--classPathEntry:数据库的JDBC驱动 --> <!-- location="D:\Develop\MvnRepo\mysql\mysql-connector-java\5.1.34\mysql-connector-java-5.1.34.jar"/> --> <classPathEntry location="D:\Users\lydia\workspaceSSH\shopCMS\src\main\webapp\WEB-INF\lib\mysql-connector-java-5.1.34.jar"/> <context id="MysqlTables" targetRuntime="MyBatis3"> <!-- 注意这里面的顺序确定的,不能随变更改 --> <!-- 自定义的分页插件 <plugin type="com.deppon.foss.module.helloworld.shared.PaginationPlugin"/> --> <!-- 可选的(0 or 1) --> <!-- 注释生成器 --> <commentGenerator> <!-- 是否去除自动生成的注释 true:是 : false:否 --> <property name="suppressAllComments" value="true"/> </commentGenerator> <!-- 必须的(1 required) --> <!--数据库连接的信息:驱动类、连接地址、用户名、密码 connectionURL="jdbc:mysql://localhost:3306/work_attendance" --> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/shop" userId="root" password="1234"> </jdbcConnection> ,, 登录界面 ![图片说明](https://img-ask.csdn.net/upload/201812/24/1545659180_616623.jpg) 每次一点击登录: console界面就显示: [DEBUG][2018-12-24 21:47:08] org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:845) DispatcherServlet with name 'SpringMVC' processing POST request for [/shopCMS/login/check] [DEBUG][2018-12-24 21:47:08] org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.getHandlerInternal(AbstractHandlerMethodMapping.java:297) Looking up handler method for path /login/check [DEBUG][2018-12-24 21:47:08] org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.getHandlerInternal(AbstractHandlerMethodMapping.java:302) Returning handler method [public java.lang.String com.shop.shopmanager.controller.LoginController.checkLogin(javax.servlet.http.HttpServletRequest) throws java.io.UnsupportedEncodingException,java.security.NoSuchAlgorithmException] [DEBUG][2018-12-24 21:47:08] org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:248) Returning cached instance of singleton bean 'loginController' [DEBUG][2018-12-24 21:47:08] org.mybatis.spring.SqlSessionUtils.getSqlSession(SqlSessionUtils.java:104) Creating a new SqlSession [DEBUG][2018-12-24 21:47:08] org.mybatis.spring.SqlSessionUtils.getSqlSession(SqlSessionUtils.java:140) SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@7738ee46] was not registered for synchronization because synchronization is not active [DEBUG][2018-12-24 21:47:08] org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:110) Fetching JDBC Connection from DataSource [DEBUG][2018-12-24 21:47:08] org.mybatis.spring.transaction.SpringManagedTransaction.openConnection(SpringManagedTransaction.java:86) JDBC Connection [com.alibaba.druid.proxy.jdbc.ConnectionProxyImpl@41131e6d] will not be managed by Spring [DEBUG][2018-12-24 21:47:08] org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debug(BaseJdbcLogger.java:139) ==> Preparing: SELECT cu.user_id AS user_id4, login_name, login_password, salt, user_name, real_name, sex, age, pic_img, cu.`status` AS status4, email, telephone, cu.create_time AS create_time4, cu.update_time AS update_time4, cr.role_id AS role_id2, role_name, role_sign, is_system, cr.`status` AS status2, cr.create_time AS create_time2, cr.update_time AS update_time2, cr.remarks AS remarks2, cm.menu_id AS menu_id1, parent_id, menu_type, menu_code, menu_name, sort, href, icon, cm.`status` AS status1, permission, cm.create_time AS create_time1, cm.update_time AS update_time1, cm.remarks AS remarks1 FROM cms_menu cm, cms_role cr, cms_role_menu crm, cms_user cu, cms_user_role cur WHERE crm.role_id = cr.role_id AND crm.menu_id = cm.menu_id AND cur.user_id = cu.user_id AND cur.role_id = cr.role_id AND cu.login_name = ?; [DEBUG][2018-12-24 21:47:08] org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debug(BaseJdbcLogger.java:139) ==> Parameters: admin(String) [DEBUG][2018-12-24 21:47:08] org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debug(BaseJdbcLogger.java:139) <== Total: 73 [DEBUG][2018-12-24 21:47:08] org.mybatis.spring.SqlSessionUtils.closeSqlSession(SqlSessionUtils.java:168) Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@7738ee46] [DEBUG][2018-12-24 21:47:08] org.springframework.jdbc.datasource.DataSourceUtils.doReleaseConnection(DataSourceUtils.java:327) Returning JDBC Connection to DataSource [DEBUG][2018-12-24 21:47:08] org.apache.shiro.realm.AuthenticatingRealm.getAuthenticationInfo(AuthenticatingRealm.java:569) Looked up AuthenticationInfo [admin] from doGetAuthenticationInfo [DEBUG][2018-12-24 21:47:08] org.apache.shiro.realm.AuthenticatingRealm.cacheAuthenticationInfoIfPossible(AuthenticatingRealm.java:507) AuthenticationInfo caching is disabled for info [admin]. Submitted token: [org.apache.shiro.authc.UsernamePasswordToken - admin, rememberMe=false]. [DEBUG][2018-12-24 21:47:08] org.mybatis.spring.SqlSessionUtils.getSqlSession(SqlSessionUtils.java:104) Creating a new SqlSession [DEBUG][2018-12-24 21:47:08] org.mybatis.spring.SqlSessionUtils.getSqlSession(SqlSessionUtils.java:140) SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@33b81d6e] was not registered for synchronization because synchronization is not active [DEBUG][2018-12-24 21:47:08] org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:110) Fetching JDBC Connection from DataSource [DEBUG][2018-12-24 21:47:08] org.mybatis.spring.transaction.SpringManagedTransaction.openConnection(SpringManagedTransaction.java:86) JDBC Connection [com.alibaba.druid.proxy.jdbc.ConnectionProxyImpl@41131e6d] will not be managed by Spring [DEBUG][2018-12-24 21:47:08] org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debug(BaseJdbcLogger.java:139) ==> Preparing: SELECT cu.user_id AS user_id4, login_name, login_password, salt, user_name, real_name, sex, age, pic_img, cu.`status` AS status4, email, telephone, cu.create_time AS create_time4, cu.update_time AS update_time4, cr.role_id AS role_id2, role_name, role_sign, is_system, cr.`status` AS status2, cr.create_time AS create_time2, cr.update_time AS update_time2, cr.remarks AS remarks2, cm.menu_id AS menu_id1, parent_id, menu_type, menu_code, menu_name, sort, href, icon, cm.`status` AS status1, permission, cm.create_time AS create_time1, cm.update_time AS update_time1, cm.remarks AS remarks1 FROM cms_menu cm, cms_role cr, cms_role_menu crm, cms_user cu, cms_user_role cur WHERE crm.role_id = cr.role_id AND crm.menu_id = cm.menu_id AND cur.user_id = cu.user_id AND cur.role_id = cr.role_id AND cu.login_name = ?; [DEBUG][2018-12-24 21:47:08] org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debug(BaseJdbcLogger.java:139) ==> Parameters: admin(String) [DEBUG][2018-12-24 21:47:08] org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debug(BaseJdbcLogger.java:139) <== Total: 73 [DEBUG][2018-12-24 21:47:08] org.mybatis.spring.SqlSessionUtils.closeSqlSession(SqlSessionUtils.java:168) Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@33b81d6e] [DEBUG][2018-12-24 21:47:08] org.springframework.jdbc.datasource.DataSourceUtils.doReleaseConnection(DataSourceUtils.java:327) Returning JDBC Connection to DataSource 原密码:123456Dts7jk 加密之后的密码为:lZQ/OoEBjTylEoEfxoyWeQ== [DEBUG][2018-12-24 21:47:08] org.apache.shiro.web.servlet.SimpleCookie.addCookieHeader(SimpleCookie.java:226) Added HttpServletResponse Cookie [rememberMe=deleteMe; Path=/shopCMS; Max-Age=0; Expires=Sun, 23-Dec-2018 13:47:08 GMT] [DEBUG][2018-12-24 21:47:08] org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdviceChain.invoke(ResponseBodyAdviceChain.java:61) Invoking ResponseBodyAdvice chain for body=login_fail [DEBUG][2018-12-24 21:47:08] org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdviceChain.invoke(ResponseBodyAdviceChain.java:83) After ResponseBodyAdvice chain body=login_fail [DEBUG][2018-12-24 21:47:08] org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:163) Written [login_fail] as "text/plain;charset=ISO-8859-1" using [org.springframework.http.converter.StringHttpMessageConverter@395cf6a4] [DEBUG][2018-12-24 21:47:08] org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1018) Null ModelAndView returned to DispatcherServlet with name 'SpringMVC': assuming HandlerAdapter completed request handling [DEBUG][2018-12-24 21:47:08] org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:996) Successfully completed request [DEBUG][2018-12-24 21:47:08] org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:248) Returning cached instance of singleton bean 'sqlSessionFactory' [DEBUG][2018-12-24 21:47:08] org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:845) DispatcherServlet with name 'SpringMVC' processing GET request for [/shopCMS/login] [DEBUG][2018-12-24 21:47:08] org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.getHandlerInternal(AbstractHandlerMethodMapping.java:297) Looking up handler method for path /login [DEBUG][2018-12-24 21:47:08] org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.getHandlerInternal(AbstractHandlerMethodMapping.java:302) Returning handler method [public java.lang.String com.shop.shopmanager.controller.LoginController.login()] [DEBUG][2018-12-24 21:47:08] org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:248) Returning cached instance of singleton bean 'loginController' [DEBUG][2018-12-24 21:47:08] org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:931) Last-Modified value for [/shopCMS/login] is: -1 [DEBUG][2018-12-24 21:47:08] org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1225) Rendering view [org.springframework.web.servlet.view.JstlView: name 'login'; URL [/WEB-INF/views/login.jsp]] in DispatcherServlet with name 'SpringMVC' [DEBUG][2018-12-24 21:47:08] org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:166) Forwarding to resource [/WEB-INF/views/login.jsp] in InternalResourceView 'login' [DEBUG][2018-12-24 21:47:08] org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:996) Successfully completed request [DEBUG][2018-12-24 21:47:08] org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:248) Returning cached instance of singleton bean 'sqlSessionFactory' ``` ``` 我的数据库中有admin和密码 123456,,但是就是无法跳转到登录后的页面希望大佬能帮我看看是什么原因》》》 ------------------------------------ 后续添加,,,,麻烦大佬结合上述和下述看看是什么问题,,拜托拜托, 1:数据库用户表信息: ![图片说明](https://img-ask.csdn.net/upload/201812/28/1545962958_570862.png) 2:我的项目结构: ![图片说明](https://img-ask.csdn.net/upload/201812/28/1545962858_134226.png) 3:以下是登录控制器“LoginController”的代码: package com.shop.shopmanager.controller; import java.io.UnsupportedEncodingException; import java.security.NoSuchAlgorithmException; import javax.servlet.http.HttpServletRequest; import org.apache.shiro.SecurityUtils; import org.apache.shiro.authc.UsernamePasswordToken; import org.apache.shiro.subject.Subject; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import com.shop.shopmanager.service.CmsUserService; /** * @Author 康健 * @Date 2017/8/14 14:54 */ @Controller @RequestMapping("login") public class LoginController { @Autowired private CmsUserService cmsUserService; /** * @Author JackWang [www.coder520.com] * @Date 2017/6/18 12:47 * @Description 登录页面 */ @RequestMapping public String login() { return "login"; } /** * @Author JackWang [www.coder520.com] * @Date 2017/6/18 12:47 * @Description 校验登录 */ @RequestMapping("/check") @ResponseBody public String checkLogin(HttpServletRequest request) throws UnsupportedEncodingException, NoSuchAlgorithmException { String username = request.getParameter("username"); String pwd = request.getParameter("password"); UsernamePasswordToken token = new UsernamePasswordToken(username, pwd); // token.setRememberMe(true); Subject subject = SecurityUtils.getSubject(); try { subject.login(token); SecurityUtils.getSubject().getSession().setTimeout(1800000); } catch (Exception e) { return "login_fail"; } return "login_succ"; } /* @RequestMapping("/register") @ResponseBody public String register(@RequestBody User user) throws UnsupportedEncodingException, NoSuchAlgorithmException { userService.createUser(user); return "succ"; }*/ } 4:UsernamePasswordToken 我没有这个类,这好像是一个方法-------网上好像说这是个认证机制,,不知道跳转不了跟这个有没有关系 网上解释:是最常见的用户名/密码的认证机制;同时,由于它实现了RememberMeAuthenticationToken接口,我们可以通过令牌设置“记住我”的功能。 但是,“已记住”和“已认证”是有区别的: 已记住的用户仅仅是非匿名用户,你可以通过subject.getPrincipals()获取用户信息。但是它并非是认证通过的用户,当你访问需要认证用户的功能时,你仍然需要重新提交认证信息。 这一区别可以参考淘宝网站,网站会默认记住登录的用户,再次访问网站时,对于非敏感的页面功能,页面上会显示记住的用户信息,但是当你访问网站账户信息时仍然需要再次进行登录认证。 5: 我的自定义数据库配置“jdbc.properties”: driverClassName=com.mysql.jdbc.Driver validationQuery=SELECT 1 jdbc_url=jdbc:mysql://localhost:3306/shop?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false jdbc_username=root jdbc_password=1234 6:"generatorConfig.xml" 这个就是上面的数据库驱动的配置 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd" > <generatorConfiguration> <!--classPathEntry:数据库的JDBC驱动 --> <!-- location="D:\Develop\MvnRepo\mysql\mysql-connector-java\5.1.34\mysql-connector-java-5.1.34.jar"/> --> <classPathEntry location="D:\Users\lydia\workspaceSSH\shopCMS\src\main\webapp\WEB-INF\lib\mysql-connector-java-5.1.34.jar"/> <context id="MysqlTables" targetRuntime="MyBatis3"> <!-- 注意这里面的顺序确定的,不能随变更改 --> <!-- 自定义的分页插件 <plugin type="com.deppon.foss.module.helloworld.shared.PaginationPlugin"/> --> <!-- 可选的(0 or 1) --> <!-- 注释生成器 --> <commentGenerator> <!-- 是否去除自动生成的注释 true:是 : false:否 --> <property name="suppressAllComments" value="true"/> </commentGenerator> <!-- 必须的(1 required) --> <!--数据库连接的信息:驱动类、连接地址、用户名、密码 connectionURL="jdbc:mysql://localhost:3306/work_attendance" --> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/shop" userId="root" password="1234"> </jdbcConnection> <!-- 可选的(0 or 1) --> <!-- 类型转换器或者加类型解析器 --> <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer true,把JDBC DECIMAL 和 NUMERIC 类型解析为java.math.BigDecimal --> <javaTypeResolver> <property name="forceBigDecimals" value="false"/> </javaTypeResolver> <!-- 必须的(1 required) --> <!-- java模型生成器 --> <!-- targetProject:自动生成代码的位置 --> <javaModelGenerator targetPackage="com.coder520.user.entity" targetProject="D:\Develop\IDEAWorkPlace\work-attendance\src\main\java" > <!--TODO enableSubPackages:是否让schema作为包的后缀 --> <property name="enableSubPackages" value="true"/> <!-- 从数据库返回的值被清理前后的空格 --> <property name="trimStrings" value="true"/> </javaModelGenerator> <!-- 必须的(1 required) --> <!-- map xml 生成器 <sqlMapGenerator targetPackage="com.coder520.user.dao" targetProject="D:\Develop\IDEAWorkPlace\work-attendance\src\main\java"> <property name="enableSubPackages" value="true"/> </sqlMapGenerator> --> <sqlMapGenerator targetPackage="com.coder520.user.dao" targetProject="D:\Users\lydia\workspaceSSH\shopCMS\src\main\java"> <property name="enableSubPackages" value="true"/> </sqlMapGenerator> <!-- 可选的(0 or 1) --> <!-- mapper 或者就是dao接口生成器 --> <javaClientGenerator targetPackage="com.coder520.user.dao" targetProject="D:\Users\lydia\workspaceSSH\shopCMS\src\main\java" type="XMLMAPPER"> <property name="enableSubPackages" value="true"/> </javaClientGenerator> <!-- 必须的(1...N) --> <!-- pojo 实体生成器 --> <!-- tableName:用于自动生成代码的数据库表;domainObjectName:对应于数据库表的javaBean类名 --> <!-- schema即为数据库名 可不写 --> <table tableName="role" domainObjectName="Role" enableInsert="true" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"> <!-- 忽略字段 可选的(0 or 1) --> <!-- <ignoreColumn column="is_use" /> --> <!--//无论字段是什么类型,生成的类属性都是varchar。 可选的(0 or 1) 测试无效 --> <!-- <columnOverride column="city_code" jdbcType="VARCHAR" /> --> </table> <table tableName="permission" domainObjectName="Permission" enableInsert="true" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"> <!-- 忽略字段 可选的(0 or 1) --> <!-- <ignoreColumn column="is_use" /> --> <!--//无论字段是什么类型,生成的类属性都是varchar。 可选的(0 or 1) 测试无效 --> <!-- <columnOverride column="city_code" jdbcType="VARCHAR" /> --> </table> </context> </generatorConfiguration> 万分感谢大佬,,,,,帮我解决这问题我就认你当师傅,,,大佬 ,,拜托了,,,还需要什么麻烦留下言哈
PHP爬虫如何爬取图片?
有这样一个网站http://ironcreek.net/phpsyntaxtree/ 提交串字符串后会得到一个png图片 请问怎么用php代码把它爬下来呢 我尝试用post把字符串post 上去,但是不知道接下来怎么做了 ``` <?php //初始化 $curl = curl_init(); //设置抓取的url curl_setopt($curl, CURLOPT_URL, 'http://ironcreek.net/phpsyntaxtree/?'); //设置头文件的信息作为数据流输出 curl_setopt($curl, CURLOPT_HEADER, 1); //设置获取的信息以文件流的形式返回,而不是直接输出 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //设置post方式提交 curl_setopt($curl, CURLOPT_POST, 1); //设置post数据 $post_data = array( "data" => "[a]" ); curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data); //执行命令 curl_close($curl); print_r($data); ?> ``` 另外,当我进入http://ironcreek.net/phpsyntaxtree/? 这个网址的时候,它会自动显示上一次的字符串,请问这个是网站保存在cookie里的吗? 这个网站的源码可以在https://github.com/FrankTianTT/phpSyntaxTree上找到 谢谢
SpringBoot集成shiro-redis遇到的问题(已解决)
在通过***(SysUser) SecurityUtils.getSubject().getPrincipal()*** 获取当前登录对象时,**SecurityUtils.getSubject().getPrincipal()**是正确的对象。 当强转时报错com.spring.model.system.SysUser cannot be cast to com.spring.model.system.SysUser。 求解本人猜测是redis对象序列化反序列化导致,因为shiro没有集成redis时是正确的,但是经过测试,不走shiro单独存储读取对象是没有问题的,这块不是太懂,求大神解答 下面是相关的配置代码 redis配置 ``` @Configuration @EnableCaching @EnableRedisHttpSession public class RedisConfig extends CachingConfigurerSupport { @Bean public CacheManager cacheManager(RedisTemplate<?, ?> redisTemplate) { RedisCacheManager manager = new RedisCacheManager(redisTemplate); manager.setDefaultExpiration(3600);//设置默认过期时间 return manager; } @Bean public RedisTemplate<String, String> redisTemplate(RedisConnectionFactory factory) { StringRedisTemplate template = new StringRedisTemplate(factory); Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<>(Object.class); ObjectMapper om = new ObjectMapper(); om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); jackson2JsonRedisSerializer.setObjectMapper(om); template.setValueSerializer(jackson2JsonRedisSerializer); template.afterPropertiesSet(); return template; } @Bean public KeyGenerator keyGenerator() { return new KeyGenerator() { @Override public Object generate(Object target, Method method, Object... params) { StringBuilder sb = new StringBuilder(); sb.append(target.getClass().getName()); sb.append(method.getName()); for (Object obj : params) { sb.append(obj.toString()); } return sb.toString(); } }; } } ``` ``` shiro配置 @Configuration public class ShiroConfig { @Value("${spring.redis.host}") private String host; @Value("${spring.redis.port}") private int port; @Value("${spring.redis.timeout}") private int timeout; @Value("${spring.redis.password}") private String password; @Bean public ShiroDialect shiroDialect() { return new ShiroDialect(); } @Bean public ShiroFilterFactoryBean shirFilter(SecurityManager securityManager) { ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean(); shiroFilterFactoryBean.setSecurityManager(securityManager); //拦截器. Map<String, String> filterChainDefinitionMap = new LinkedHashMap<>(); // 配置不会被拦截的链接 顺序判断 filterChainDefinitionMap.put("/doLogin", "anon"); filterChainDefinitionMap.put("/css/**", "anon"); filterChainDefinitionMap.put("/images/**", "anon"); filterChainDefinitionMap.put("/js/**", "anon"); filterChainDefinitionMap.put("/libs/**", "anon"); // 如果不设置默认会自动寻找Web工程根目录下的"/login.jsp"页面 shiroFilterFactoryBean.setLoginUrl("/login"); //未授权界面; shiroFilterFactoryBean.setUnauthorizedUrl("/403"); // 配置需要验证登录后访问的链接 filterChainDefinitionMap.put("/**", "authc"); // 从数据库获取 // List<AdminMenu> list = systemService.selectAllMenu(); // // for (AdminMenu menu : list) { // filterChainDefinitionMap.put(menu.getMenuUrl(), "authc"); // } shiroFilterFactoryBean.setFilterChainDefinitionMap(filterChainDefinitionMap); return shiroFilterFactoryBean; } /** * 凭证匹配器 * (由于我们的密码校验交给Shiro的SimpleAuthenticationInfo进行处理了) * * @return */ @Bean public HashedCredentialsMatcher hashedCredentialsMatcher() { HashedCredentialsMatcher hashedCredentialsMatcher = new HashedCredentialsMatcher(); hashedCredentialsMatcher.setHashAlgorithmName("md5");//散列算法:这里使用MD5算法; hashedCredentialsMatcher.setHashIterations(1);//散列的次数 return hashedCredentialsMatcher; } @Bean public SecurityManager securityManager() { DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager(); securityManager.setRealm(myShiroRealm()); // 自定义缓存实现 使用redis securityManager.setCacheManager(cacheManager()); // 自定义session管理 使用redis securityManager.setSessionManager(sessionManager()); //注入记住我管理器; securityManager.setRememberMeManager(rememberMeManager()); return securityManager; } /** * 身份认证realm; (自定义,账号密码校验;权限等) * * @return */ @Bean public MyShiroRealm myShiroRealm() { MyShiroRealm myShiroRealm = new MyShiroRealm(); myShiroRealm.setCredentialsMatcher(hashedCredentialsMatcher()); return myShiroRealm; } /** * 配置shiro redisManager * <p> * 使用的是shiro-redis开源插件 * * @return */ public RedisManager redisManager() { RedisManager redisManager = new RedisManager(); redisManager.setHost(host); redisManager.setPort(port); redisManager.setExpire(1800);// 配置缓存过期时间 redisManager.setTimeout(timeout); redisManager.setPassword(password); return redisManager; } /** * cacheManager 缓存 redis实现 * <p> * 使用的是shiro-redis开源插件 * * @return */ @Bean public RedisCacheManager cacheManager() { RedisCacheManager redisCacheManager = new RedisCacheManager(); redisCacheManager.setRedisManager(redisManager()); return redisCacheManager; } /** * RedisSessionDAO shiro sessionDao层的实现 通过redis * <p> * 使用的是shiro-redis开源插件 */ @Bean public RedisSessionDAO redisSessionDAO() { RedisSessionDAO redisSessionDAO = new RedisSessionDAO(); redisSessionDAO.setRedisManager(redisManager()); return redisSessionDAO; } /** * Session Manager * <p> * 使用的是shiro-redis开源插件 */ @Bean public DefaultWebSessionManager sessionManager() { DefaultWebSessionManager sessionManager = new DefaultWebSessionManager(); sessionManager.setSessionDAO(redisSessionDAO()); return sessionManager; } /** * cookie对象; * * @return */ public SimpleCookie rememberMeCookie() { //这个参数是cookie的名称,对应前端的checkbox的name = rememberMe SimpleCookie simpleCookie = new SimpleCookie("rememberMe"); //<!-- 记住我cookie生效时间7天 ,单位秒;--> simpleCookie.setMaxAge(604800); return simpleCookie; } /** * cookie管理对象;记住我功能 * * @return */ @Bean public CookieRememberMeManager rememberMeManager() { CookieRememberMeManager cookieRememberMeManager = new CookieRememberMeManager(); cookieRememberMeManager.setCookie(rememberMeCookie()); //rememberMe cookie加密的密钥 建议每个项目都不一样 默认AES算法 密钥长度(128 256 512 位) cookieRememberMeManager.setCipherKey(Base64.decode("3AvVhmFLUs0KTA3Kprsdag==")); return cookieRememberMeManager; } /** * 开启shiro aop注解支持. * 使用代理方式;所以需要开启代码支持; * * @param securityManager * @return */ @Bean public AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor(SecurityManager securityManager) { AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor = new AuthorizationAttributeSourceAdvisor(); authorizationAttributeSourceAdvisor.setSecurityManager(securityManager); return authorizationAttributeSourceAdvisor; } } ``` # 去除spring-boot-devtools热部署jar包即可,具体原因不详
在中国程序员是青春饭吗?
今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...
《MySQL 性能优化》之理解 MySQL 体系结构
本文介绍 MySQL 的体系结构,包括物理结构、逻辑结构以及插件式存储引擎。
程序员请照顾好自己,周末病魔差点一套带走我。
程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。
Python+OpenCV实时图像处理
目录 1、导入库文件 2、设计GUI 3、调用摄像头 4、实时图像处理 4.1、阈值二值化 4.2、边缘检测 4.3、轮廓检测 4.4、高斯滤波 4.5、色彩转换 4.6、调节对比度 5、退出系统 初学OpenCV图像处理的小伙伴肯定对什么高斯函数、滤波处理、阈值二值化等特性非常头疼,这里给各位分享一个小项目,可通过摄像头实时动态查看各类图像处理的特点,也可对各位调参、测试...
2020年一线城市程序员工资大调查
人才需求 一线城市共发布岗位38115个,招聘120827人。 其中 beijing 22805 guangzhou 25081 shanghai 39614 shenzhen 33327 工资分布 2020年中国一线城市程序员的平均工资为16285元,工资中位数为14583元,其中95%的人的工资位于5000到20000元之间。 和往年数据比较: yea...
为什么猝死的都是程序员,基本上不见产品经理猝死呢?
相信大家时不时听到程序员猝死的消息,但是基本上听不到产品经理猝死的消息,这是为什么呢? 我们先百度搜一下:程序员猝死,出现将近700多万条搜索结果: 搜索一下:产品经理猝死,只有400万条的搜索结果,从搜索结果数量上来看,程序员猝死的搜索结果就比产品经理猝死的搜索结果高了一倍,而且从下图可以看到,首页里面的五条搜索结果,其实只有两条才是符合条件。 所以程序员猝死的概率真的比产品经理大,并不是错...
害怕面试被问HashMap?这一篇就搞定了!
声明:本文以jdk1.8为主! 搞定HashMap 作为一个Java从业者,面试的时候肯定会被问到过HashMap,因为对于HashMap来说,可以说是Java集合中的精髓了,如果你觉得自己对它掌握的还不够好,我想今天这篇文章会非常适合你,至少,看了今天这篇文章,以后不怕面试被问HashMap了 其实在我学习HashMap的过程中,我个人觉得HashMap还是挺复杂的,如果真的想把它搞得明明白...
毕业5年,我问遍了身边的大佬,总结了他们的学习方法
我问了身边10个大佬,总结了他们的学习方法,原来成功都是有迹可循的。
python爬取百部电影数据,我分析出了一个残酷的真相
2019年就这么匆匆过去了,就在前几天国家电影局发布了2019年中国电影市场数据,数据显示去年总票房为642.66亿元,同比增长5.4%;国产电影总票房411.75亿元,同比增长8.65%,市场占比 64.07%;城市院线观影人次17.27亿,同比增长0.64%。 看上去似乎是一片大好对不对?不过作为一名严谨求实的数据分析师,我从官方数据中看出了一点端倪:国产票房增幅都已经高达8.65%了,为什...
推荐10个堪称神器的学习网站
每天都会收到很多读者的私信,问我:“二哥,有什么推荐的学习网站吗?最近很浮躁,手头的一些网站都看烦了,想看看二哥这里有什么新鲜货。” 今天一早做了个恶梦,梦到被老板辞退了。虽然说在我们公司,只有我辞退老板的份,没有老板辞退我这一说,但是还是被吓得 4 点多都起来了。(主要是因为我掌握着公司所有的核心源码,哈哈哈) 既然 4 点多起来,就得好好利用起来。于是我就挑选了 10 个堪称神器的学习网站,推...
这些软件太强了,Windows必装!尤其程序员!
Windows可谓是大多数人的生产力工具,集娱乐办公于一体,虽然在程序员这个群体中都说苹果是信仰,但是大部分不都是从Windows过来的,而且现在依然有很多的程序员用Windows。 所以,今天我就把我私藏的Windows必装的软件分享给大家,如果有一个你没有用过甚至没有听过,那你就赚了????,这可都是提升你幸福感的高效率生产力工具哦! 走起!???? NO、1 ScreenToGif 屏幕,摄像头和白板...
阿里面试,面试官没想到一个ArrayList,我都能跟他扯半小时
我是真的没想到,面试官会这样问我ArrayList。
曾经优秀的人,怎么就突然不优秀了。
职场上有很多辛酸事,很多合伙人出局的故事,很多技术骨干被裁员的故事。说来模板都类似,曾经是名校毕业,曾经是优秀员工,曾经被领导表扬,曾经业绩突出,然而突然有一天,因为种种原因,被裁员了,...
C语言荣获2019年度最佳编程语言
关注、星标公众号,不错过精彩内容作者:黄工公众号:strongerHuang近日,TIOBE官方发布了2020年1月编程语言排行榜单。我在前面给过一篇文章《2019年11月C语言接近Ja...
大学四年因为知道了这32个网站,我成了别人眼中的大神!
依稀记得,毕业那天,我们导员发给我毕业证的时候对我说“你可是咱们系的风云人物啊”,哎呀,别提当时多开心啦????,嗯,我们导员是所有导员中最帅的一个,真的???? 不过,导员说的是实话,很多人都叫我大神的,为啥,因为我知道这32个网站啊,你说强不强????,这次是绝对的干货,看好啦,走起来! PS:每个网站都是学计算机混互联网必须知道的,真的牛杯,我就不过多介绍了,大家自行探索,觉得没用的,尽管留言吐槽吧???? 社...
良心推荐,我珍藏的一些Chrome插件
上次搬家的时候,发了一个朋友圈,附带的照片中不小心暴露了自己的 Chrome 浏览器插件之多,于是就有小伙伴评论说分享一下我觉得还不错的浏览器插件。 我下面就把我日常工作和学习中经常用到的一些 Chrome 浏览器插件分享给大家,随便一个都能提高你的“生活品质”和工作效率。 Markdown Here Markdown Here 可以让你更愉快的写邮件,由于支持 Markdown 直接转电子邮...
看完这篇HTTP,跟面试官扯皮就没问题了
我是一名程序员,我的主要编程语言是 Java,我更是一名 Web 开发人员,所以我必须要了解 HTTP,所以本篇文章就来带你从 HTTP 入门到进阶,看完让你有一种恍然大悟、醍醐灌顶的感觉。 最初在有网络之前,我们的电脑都是单机的,单机系统是孤立的,我还记得 05 年前那会儿家里有个电脑,想打电脑游戏还得两个人在一个电脑上玩儿,及其不方便。我就想为什么家里人不让上网,我的同学 xxx 家里有网,每...
史上最全的IDEA快捷键总结
现在Idea成了主流开发工具,这篇博客对其使用的快捷键做了总结,希望对大家的开发工作有所帮助。
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
这种新手都不会范的错,居然被一个工作好几年的小伙子写出来,差点被当场开除了。
谁是华为扫地僧?
是的,华为也有扫地僧!2020年2月11-12日,“养在深闺人不知”的华为2012实验室扫地僧们,将在华为开发者大会2020(Cloud)上,和大家见面。到时,你可以和扫地僧们,吃一个洋...
AI 没让人类失业,搞 AI 的人先失业了
最近和几个 AI 领域的大佬闲聊 根据他们讲的消息和段子 改编出下面这个故事 如有雷同 都是巧合 1. 老王创业失败,被限制高消费 “这里写我跑路的消息实在太夸张了。” 王葱葱哼笑一下,把消息分享给群里。 阿杰也看了消息,笑了笑。在座几位也都笑了。 王葱葱是个有名的人物,21岁那年以全额奖学金进入 KMU 攻读人工智能博士,累计发表论文 40 余篇,个人技术博客更是成为深度学习领域内风向标。 ...
2020年,冯唐49岁:我给20、30岁IT职场年轻人的建议
点击“技术领导力”关注∆每天早上8:30推送 作者|Mr.K 编辑| Emma 来源|技术领导力(ID:jishulingdaoli) 前天的推文《冯唐:职场人35岁以后,方法论比经验重要》,收到了不少读者的反馈,觉得挺受启发。其实,冯唐写了不少关于职场方面的文章,都挺不错的。可惜大家只记住了“春风十里不如你”、“如何避免成为油腻腻的中年人”等不那么正经的文章。 本文整理了冯...
一份王者荣耀的英雄数据报告
咪哥杂谈本篇阅读时间约为 6 分钟。1前言前一阵写了关于王者的一些系列文章,从数据的获取到数据清洗,数据落地,都是为了本篇的铺垫。今天来实现一下,看看不同维度得到的结论。2环境准备本次实...
作为一名大学生,如何在B站上快乐的学习?
B站是个宝,谁用谁知道???? 作为一名大学生,你必须掌握的一项能力就是自学能力,很多看起来很牛X的人,你可以了解下,人家私底下一定是花大量的时间自学的,你可能会说,我也想学习啊,可是嘞,该学习啥嘞,不怕告诉你,互联网时代,最不缺的就是学习资源,最宝贵的是啥? 你可能会说是时间,不,不是时间,而是你的注意力,懂了吧! 那么,你说学习资源多,我咋不知道,那今天我就告诉你一个你必须知道的学习的地方,人称...
那些年,我们信了课本里的那些鬼话
教材永远都是有错误的,从小学到大学,我们不断的学习了很多错误知识。 斑羚飞渡 在我们学习的很多小学课文里,有很多是错误文章,或者说是假课文。像《斑羚飞渡》: 随着镰刀头羊的那声吼叫,整个斑羚群迅速分成两拨,老年斑羚为一拨,年轻斑羚为一拨。 就在这时,我看见,从那拨老斑羚里走出一只公斑羚来。公斑羚朝那拨年轻斑羚示意性地咩了一声,一只半大的斑羚应声走了出来。一老一少走到伤心崖,后退了几步,突...
一个程序在计算机中是如何运行的?超级干货!!!
强烈声明:本文很干,请自备茶水!???? 开门见山,咱不说废话! 你有没有想过,你写的程序,是如何在计算机中运行的吗?比如我们搞Java的,肯定写过这段代码 public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!"); } ...
【蘑菇街技术部年会】程序员与女神共舞,鼻血再次没止住。(文末内推)
蘑菇街技术部的年会,别开生面,一样全是美女。
那个在阿里养猪的工程师,5年了……
简介: 在阿里,走过1825天,没有趴下,依旧斗志满满,被称为“五年陈”。他们会被授予一枚戒指,过程就叫做“授戒仪式”。今天,咱们听听阿里的那些“五年陈”们的故事。 下一个五年,猪圈见! 我就是那个在养猪场里敲代码的工程师,一年多前我和20位工程师去了四川的猪场,出发前总架构师慷慨激昂的说:同学们,中国的养猪产业将因为我们而改变。但到了猪场,发现根本不是那么回事:要个WIFI,没有;...
为什么程序猿都不愿意去外包?
分享外包的组织架构,盈利模式,亲身经历,以及根据一些外包朋友的反馈,写了这篇文章 ,希望对正在找工作的老铁有所帮助
Java校招入职华为,半年后我跑路了
何来 我,一个双非本科弟弟,有幸在 19 届的秋招中得到前东家华为(以下简称 hw)的赏识,当时秋招签订就业协议,说是入了某 java bg,之后一系列组织架构调整原因等等让人无法理解的神操作,最终毕业前夕,被通知调往其他 bg 做嵌入式开发(纯 C 语言)。 由于已至于校招末尾,之前拿到的其他 offer 又无法再收回,一时感到无力回天,只得默默接受。 毕业后,直接入职开始了嵌入式苦旅,由于从未...
立即提问