最近在写一个爬虫,目标网站是:http://zx.bjmemc.com.cn/,可能是为了防止被爬取数据,它给自身数据加了密。用谷歌自带的抓包工具也不能捕获到数据。于是下了Fiddler。

    Fiddler的爬取结果如下:

    可见,除了头信息之外,下面的数据信息显示成了乱码。这样就不能用程序模拟浏览器发送数据了。

    解决办法之一就是获取此字符串的十六进制编码。将Fiddler切换至Hexview,如下图所示:

    其中蓝色部分是header头信息,黑色字体就是传送的数据。你还可以右键-》取消勾选show header,这样显示的便都是数据信息。

    我们程序中可以将这个十六进制字符长串转化成字符串,然后发送到web服务器中。

    转化的程序如下所示:

[csharp] view
plain
copy

  1. public static byte[] GetByteArray(string frame)
  2. {
  3. byte[] buffer = new byte[frame.Length / 2];    //注意每两个十六进制字符代表一个二进制编码
  4. for (int i = 0; i < frame.Length / 2; i++)
  5. {
  6. int t = GetData(frame[2 * i]) * 16 + GetData(frame[2 * i + 1]);
  7. buffer[i] = (byte)t;
  8. }
  9. return buffer;
  10. }
  11. static int GetData(char p)    //获得ASCII编码
  12. {
  13. if (p <= '9' && p >= '0')
  14. {
  15. return p - '0';
  16. }
  17. else
  18. {
  19. return p - 'a' + 10;
  20. }
  21. }

1、先选中你要导出的十六进制字符长串-》右键-》save selected bytes-》到一文件中。    但是遇到一个问题就是,如何将Fiddler的十六进制字符串拷贝出来,若手动抄写,很不现实,一来太长,二来怕错。可以借助Notepad++或者UltraEdit转化过来。本人用Notepad++实验成功:

2、用Notepad++打开此文件,发现仍然是乱码

    3、下载十六进制显示插件下载:HexEditor_0_9_5_UNI_dll.zip

    4、解压后将HexEditor.dll文件放在Notepad++安装目录的plugins目录下,重启notepad++

5、再次用Notepad++打开文件,plugins->HEX-Editor->View in HEX,显示如下:

6、选中你要复制的十六进制字符串,复制,然后新建文本,粘贴,就是一个带有空格的字符串了。去除空格和换行即可。

    7、有一种快速去除空格的方法,选中一个空格,ctrl+f,切换到替换标签,然后点击替换所有按钮,这样将所有的空格都替换成了空字符串,也就删除了所有空格。

爬虫爬数据时,post数据乱码解决办法的更多相关文章

  1. (转)MySQL 插入数据时,中文乱码问题的解决

    MySQL 插入数据时,中文乱码问题的解决  原文:http://www.cnblogs.com/sunzn/archive/2013/03/14/2960248.html 当向 MySQL 数据库插 ...

  2. 向hive上传数据时,中文乱码

    sudo -u hive hive -e "use dataplat;load data local inpath '/home/dlht/data/test/2_times.csv' ov ...

  3. 在MyBatis中查询数据、涉及多参数的数据访问操作、插入数据时获取数据自增长的id、关联表查询操作、动态SQL、关于配置MyBatis映射没有代码提示的解决方案

    1. 单元测试 在单元测试中,每个测试方法都需要执行相同的前置代码和后置代码,则可以自定义2个方法,分别在这2个方法中执行前置代码和后置代码,并为这2个方法添加@Before和@After注解,然后, ...

  4. 关于IMP由拥有DBA权限的用户EXP数据时,数据存放表空间的几种情况(IMP-00013) -1

    关于IMP由拥有DBA权限的用户EXP数据时,数据存放表空间的几种情况(IMP-00013) -1 ORACLE公司来培训BIEE,带了一个DEMO的DMP文件,其导出用户DBO具有DBA权限,缺省表 ...

  5. Redis 3.0版本启动时出现警告的解决办法

    原文:http://m.blog.csdn.net/article/details?id=50864933 Redis 3.0.7版本启动时出现警告的解决办法 发表于2016/3/12 12:52:4 ...

  6. 使用httpclient post请求中文乱码解决办法

    使用httpclient post请求中文乱码解决办法   在使用httpclient发送post请求的时候,接收端中文乱码问题解决. 正文: 我们都知道,一般情况下使用post请求是不会出现中文乱码 ...

  7. Oracle导入中文乱码解决办法

    Oracle导入中文乱码解决办法 一.确保各个客户端字符集的编码同服务器字符集编码一致 1-       确定sqlplus字符集编码,如果是windows设置环境变量. 2-       确保Sec ...

  8. uploadify上传控件中文的乱码解决办法

    uploadify上传控件中文的乱码解决办法 网站用的gb2312的编码,用uploadify上传控件上传中文时在IE能部分成功,FF,Chrome则完全失败,查找了一天原因,结果发现是页面编码问题, ...

  9. PHPmailer发送邮件时的常见问题及解决办法

    来源:http://www.chinastor.com/a/jishu/mailserver/0G392262014.html 使用PHPmailer发送邮件时的常见问题总结: 一,没有定义发送邮箱$ ...

随机推荐

  1. 关于js原型继承

    js的每个类都有一个prototype对象 访问对象的属性时,会先访问到对象自身是否有定义这个属性 如果没有定义,就会去访问对象所属类型的prototype对象是否有此属性 原型继承就是把类型的pro ...

  2. android中string.xml中%1$s、%1$d等的用法

    今天在研究前辈写的代码的时候,突然发现string里面出现了<stringname="item_recent_photo">最近拍摄%1$s</string> ...

  3. Linux Windows 修改键盘映射

    Linux 下是编辑 ~/.Xmodmap 文件 remove Lock = Caps_Lockkeysym Escape = Caps_Lockkeysym Caps_Lock = Escapead ...

  4. 解决跑twoBitToFa时出现“/admin/exe/linux.x86_64/twoBitToFa: Permission denied”的问题

    出现这种问题时,一般要加上以下命令: chmod ugo+x ./admin/exe/linux.x86_64/twoBitToFa 运行成功后,再将twobit格式转化为fa格式 ./admin/e ...

  5. JQuery源码解析-- 对象的创建

    使用 $("a") 返回的对象就不再是一个简单的DOM对象了,而是一个复杂的JQuery对象. 那么JQuery是怎么创建对象的. 为了便于分析,我将JQuery中复杂的代码简化了 ...

  6. 错误:E:Unable to locate package ...

    安装NFS软件包: sudo apt-get install nfs-common 安装tftp软件: sudo apt-get install tftpd-hpa tftp-hpa 均出现此错误:E ...

  7. Centos7.0安装配置PHP7.0

    YUM安装所需开发包 yum install wget make gcc gcc-c++ bison autoconf patch \ pcre-devel zlib-devel openssl-de ...

  8. C++ STL 助记1:vector

    vector<, ); // Creates vector of 10 ints with value 100 vector<, "hello"); vector< ...

  9. 建站阿里云、amh主机面版

    阿里云 Nginx+tomcat7+Mencached负载均衡集群配置 http://blog.csdn.net/zht666/article/details/38515147 apache2.2.1 ...

  10. tomcat 内存问题 xms xmx permsize maxPermsize

    转自:http://www.cnblogs.com/koik/p/4452029.html tomcat -Xms -Xmx -XX:PermSize -XX:MaxPermSize     在做ja ...