http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 2605|回复: 8

[其他] 获取不同IE cookie设置的问题

[复制链接]
发表于 2017-12-21 20:18:04 | 显示全部楼层 |阅读模式
本帖最后由 2949497060 于 2017-12-21 20:20 编辑

我现在对2个IE进程分别设置了不同的cookie缓存路径,然后前面一个打开IE后读取cookie正常,然后再更改cookie缓存路径后再打开第2个IE后再读取第2个cookie也正常,但是这样效率有点低,因为中间的操作比较费时间,要读取第2个IE的cookie的整个操作都必须要等第一个IE执行完读取cookie后才能进行。我现在想第1个IE打开后就马上更改cookie路径后再打开第2个IE,然后2个IE的cookie可以同时读取,请问要怎么读取呢?注,读取cookie目前我采用的是public static extern bool InternetGetCookie(string lpszUrlName, string lbszCookieName, StringBuilder lpszCookieData, ref int lpdwSize);这个wininet.dll的方法



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
 楼主| 发表于 2017-12-21 20:20:18 | 显示全部楼层
不知道有没有其它方法读取cookie的并可以设置读取cookie缓存文件夹路径的呢?
发表于 2017-12-21 20:59:43 | 显示全部楼层
路过打个酱油 不是很懂
 楼主| 发表于 2017-12-21 21:16:44 | 显示全部楼层
范范 发表于 2017-12-21 20:59
路过打个酱油 不是很懂

就是ie设置不同的cookie缓存路径后,怎么同时读取各个缓存路径下面的cookie的问题
发表于 2017-12-22 09:03:31 | 显示全部楼层
单线程,可以尝试开多个线程来解决
 楼主| 发表于 2017-12-22 10:52:26 | 显示全部楼层
本帖最后由 2949497060 于 2017-12-22 10:58 编辑
站长苏飞 发表于 2017-12-22 09:03
单线程,可以尝试开多个线程来解决

不好意思飞哥,我还没想通,这个跟多线程有关系吗?我现在多开IE相当于已经是多进程在控制了,但是问题是如果IE都先打开了,就是对应到相同的cookie缓存文件夹,所以只能分别依次打开IE,读取cookie倒是可以在主进程里面多线程,但是读取的地方难道不是都是最后设置的那个cookie缓存路径了吗?感觉还是没有分开吧?比如先设置路径为c:\cookies1文件夹,然后打开一个IE比如说是1号IE,1号IE的cookie缓存就是对应到c:\cookies1,这个时候软件的1号线程去读cookie就是读到c:\cookies1里的cookie吧,然后再设置IE缓存路径为c:\cookies2,再打开一个IE比如说是2号IE,那么这个时候软件的两个线程无论是控制1号IE的还是控制2号IE的,去读取cookie的话都是读取的c:\cookies2里的cookie了,线程1也没法再读取到c:\cookies1里的cookie了吧?
 楼主| 发表于 2017-12-24 09:32:37 | 显示全部楼层
站长苏飞 发表于 2017-12-22 09:03
单线程,可以尝试开多个线程来解决

哦,我好像有点思路了,你的意思是不是类似这个意思:因为打开2个IE后,每个IE已经确定是分别对应2个cookie缓存了,即使这个时候在主软件里更改缓存设置,对这2个IE也不会起作用,而这个时候就只是读取cookie的问题了,就可以通过在读取前,用一个lock操作,每个线程先设置一下缓存路径再马上读取,这样就能保证每个线程读取的都是它自己所需要的缓存路径下面的cookie了。
比如线程1:lock(_object)
{
  //重新设置缓存路径回1号IE的cookie路径
  //读取cookie,用InternetGetCookie
}
这样理解对吧?
发表于 2017-12-25 08:58:18 | 显示全部楼层
聪明
回复

使用道具 举报

 楼主| 发表于 2017-12-25 20:51:31 | 显示全部楼层

多谢飞哥提醒,高手就是不一样,一语中的
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-4-20 19:41

© 2014-2021

快速回复 返回顶部 返回列表