近期在写一个爬虫,目标站点是:http://zx.bjmemc.com.cn/。可能是为了防止被爬取数据,它给自身数据加了密。

用谷歌自带的抓包工具也不能捕获到数据。

于是下了Fiddler。

    Fiddler的爬取结果例如以下:

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

    解决的方法之中的一个就是获取此字符串的十六进制编码。将Fiddler切换至Hexview。例如以下图所看到的:

    当中蓝色部分是header头信息,黑色字体就是传送的数据。

你还能够右键-》取消勾选show header,这样显示的便都是数据信息。

    我们程序中能够将这个十六进制字符长串转化成字符串,然后发送到webserver中。

    转化的程序例如以下所看到的:

public static byte[] GetByteArray(string frame)
{
byte[] buffer = new byte[frame.Length / 2]; //注意每两个十六进制字符代表一个二进制编码
for (int i = 0; i < frame.Length / 2; i++)
{
int t = GetData(frame[2 * i]) * 16 + GetData(frame[2 * i + 1]);
buffer[i] = (byte)t;
}
return buffer;
} static int GetData(char p) //获得ASCII编码
{
if (p <= '9' && p >= '0')
{
return p - '0';
}
else
{
return p - 'a' + 10;
}
}

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。切换到替换标签,然后点击替换全部button,这样将全部的空格都替换成了空字符串,也就删除了全部空格。

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

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

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

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

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

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

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

  4. PHP创建文件命名中文乱码解决的方法

    PHP创建文件命名中文乱码解决的方法 <pre>iconv('utf-8', 'gbk', $dir); </pre> 因为系统环境是gbk 所以里面的字符也要gbk 编码一致 ...

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

    当向 MySQL 数据库插入一条带有中文的数据形如 insert into employee values(null,'张三','female','1995-10-08','2015-11-12',' ...

  6. MySQL 插入数据时,中文乱码???问题的解决

    在终端,mysql -u root -p 登录: show variables like 'character%'; 来查看当前数据库的相关编码集. client 为客户端使用的字符集. connec ...

  7. MySQL 插入数据时,中文乱码问题的解决

    当向 MySQL 数据库插入一条带有中文的数据形如 insert into employee values(null,'张三','female','1995-10-08','2015-11-12',' ...

  8. Java 前台后台数据传递、中文乱码解决方法

    1.向前台传递数据;2.向后台传递数据;3.ajax post 提交数据到服务端时中文乱码解决方法;4.数组类型参数传递; 1.向前台传递数据:1.1 字符串数据传递:  这种方式只是单一的向前台传递 ...

  9. easyui datagrid 没数据时显示滚动条的解决方法

    今天解决了一个bug,因为datagrid有多列,可是当没有数据的时候,后面的列无法通过滚动条拉动来显示,比较麻烦,而需求要求没有数据也要拉动滚动条查看后面有什么列,一开始在网上找了一些资料,发现都不 ...

随机推荐

  1. 紫书 例题 10-20 UVa 10900(连续概率)

    分两类,当前第i题答或不答 如果不回答的话最大期望奖金为2的i次方 如果回答的话等于p* 下一道题的最大期望奖金 那么显然我们要取最大值 所以就要分类讨论 我们设答对i题后的最大期望奖金为d[i] 显 ...

  2. 【SRM 717 div2 B】LexmaxReplace

    Problem Statement Alice has a string s of lowercase letters. The string is written on a wall. Alice ...

  3. 给一个执行在windows 7和NAT下的VMWARE虚拟机分配固定IP

    虚拟机上装了个oracleserver,每次vmware重新启动或者resume时总要分配新的IP地址,这样就得改动windows下的client配置,所以须要想办法把IP地址固定住. DHCP服务在 ...

  4. ORA-01555错误总结(二)

    这篇文章紧接着上一篇"ORA-01555错误总结(一)".主要描写叙述延迟块清除导致的ORA-01555错误. 以下是一些简介(上一遍已经介绍过) ORA-01555错误是一种在o ...

  5. Sqoop 数据导入导出实践

    Sqoop是一个用来将hadoop和关系型数据库中的数据相互转移的工具,可以将一个关系型数据库(例如:mysql,oracle,等)中的数据导入到hadoop的HDFS中,也可以将HDFS的数据导入到 ...

  6. codeforces 710A King Moves(水)

    output standard output The only king stands on the standard chess board. You are given his position ...

  7. Multi-process Resource Loading

    For Developers‎ > ‎Design Documents‎ > ‎ Multi-process Resource Loading 目录 1 This design doc n ...

  8. 2008R2域控环境中 应用组策略 实现禁用USB设备使用

    本文介绍如何在Windows Server 2008 AD中禁用客户端USB端口.本文使用的系统:Windows Server 2008 R2 企业版.域功能级别:Windows Server 200 ...

  9. 变量对象、作用域链和This

    变量对象 作用域链 This 整理自:https://www.cnblogs.com/TomXu/archive/2011/12/15/2288411.html 系列文章中变量对象,作用域链和this ...

  10. BFC 和 haslayout

    在解释 BFC 是什么之前,需要先介绍 Box.Formatting Context的概念. Box: CSS布局的基本单位 Box 是 CSS 布局的对象和基本单位, 直观点来说,就是一个页面是由很 ...