爬虫爬数据时,post数据乱码解决办法
最近在写一个爬虫,目标网站是:http://zx.bjmemc.com.cn/,可能是为了防止被爬取数据,它给自身数据加了密。用谷歌自带的抓包工具也不能捕获到数据。于是下了Fiddler。
Fiddler的爬取结果如下:
可见,除了头信息之外,下面的数据信息显示成了乱码。这样就不能用程序模拟浏览器发送数据了。
解决办法之一就是获取此字符串的十六进制编码。将Fiddler切换至Hexview,如下图所示:
其中蓝色部分是header头信息,黑色字体就是传送的数据。你还可以右键-》取消勾选show header,这样显示的便都是数据信息。
我们程序中可以将这个十六进制字符长串转化成字符串,然后发送到web服务器中。
转化的程序如下所示:
- 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,切换到替换标签,然后点击替换所有按钮,这样将所有的空格都替换成了空字符串,也就删除了所有空格。
爬虫爬数据时,post数据乱码解决办法的更多相关文章
- (转)MySQL 插入数据时,中文乱码问题的解决
MySQL 插入数据时,中文乱码问题的解决 原文:http://www.cnblogs.com/sunzn/archive/2013/03/14/2960248.html 当向 MySQL 数据库插 ...
- 向hive上传数据时,中文乱码
sudo -u hive hive -e "use dataplat;load data local inpath '/home/dlht/data/test/2_times.csv' ov ...
- 在MyBatis中查询数据、涉及多参数的数据访问操作、插入数据时获取数据自增长的id、关联表查询操作、动态SQL、关于配置MyBatis映射没有代码提示的解决方案
1. 单元测试 在单元测试中,每个测试方法都需要执行相同的前置代码和后置代码,则可以自定义2个方法,分别在这2个方法中执行前置代码和后置代码,并为这2个方法添加@Before和@After注解,然后, ...
- 关于IMP由拥有DBA权限的用户EXP数据时,数据存放表空间的几种情况(IMP-00013) -1
关于IMP由拥有DBA权限的用户EXP数据时,数据存放表空间的几种情况(IMP-00013) -1 ORACLE公司来培训BIEE,带了一个DEMO的DMP文件,其导出用户DBO具有DBA权限,缺省表 ...
- Redis 3.0版本启动时出现警告的解决办法
原文:http://m.blog.csdn.net/article/details?id=50864933 Redis 3.0.7版本启动时出现警告的解决办法 发表于2016/3/12 12:52:4 ...
- 使用httpclient post请求中文乱码解决办法
使用httpclient post请求中文乱码解决办法 在使用httpclient发送post请求的时候,接收端中文乱码问题解决. 正文: 我们都知道,一般情况下使用post请求是不会出现中文乱码 ...
- Oracle导入中文乱码解决办法
Oracle导入中文乱码解决办法 一.确保各个客户端字符集的编码同服务器字符集编码一致 1- 确定sqlplus字符集编码,如果是windows设置环境变量. 2- 确保Sec ...
- uploadify上传控件中文的乱码解决办法
uploadify上传控件中文的乱码解决办法 网站用的gb2312的编码,用uploadify上传控件上传中文时在IE能部分成功,FF,Chrome则完全失败,查找了一天原因,结果发现是页面编码问题, ...
- PHPmailer发送邮件时的常见问题及解决办法
来源:http://www.chinastor.com/a/jishu/mailserver/0G392262014.html 使用PHPmailer发送邮件时的常见问题总结: 一,没有定义发送邮箱$ ...
随机推荐
- JS中 计算器的简单制作
今天学习的是JS中的if语句,除此之外老师还教给我们switch语句的用法, 我们用来写了简单计算器的算法,如下: <script> var a=prompt("请输入一个数字& ...
- Java泛型 E、T、K、V、N
中的标记符含义: E - Element (在集合中使用,因为集合中存放的是元素) T - Type(Java 类) K - Key(键) V - Value(值) N - Number(数值类型) ...
- Spark standalone HA
配置Spark standalone HA 主机:node1,node2,node3 master: node1,node2 slave:node2,node3 修改配置文件: node1,node3 ...
- mvc 4 ActionFilterAttribute 特性,进行权限验证
权限验证: /// <summary> /// 管理员身份验证 /// </summary> public class BasicAuthenticationAttribute ...
- Oracle以及SDE维护常用命令-查看表空间等
之前现场反馈一个数据更新的问题,查看感觉是因为表空间满了导致的(错误在之前的博客随笔中写过),因此远程对服务器进行查看.个人平常都是通过Oracle客户端的Entreprise Manager Con ...
- hdu 5534 (完全背包) Partial Tree
题目:这里 题意: 感觉并不能表达清楚题意,所以 Problem Description In mathematics, and more specifically in graph theory, ...
- java: R文件重复
导入eclipse工程到intellij里面, 然后出现各种错误, xxx.R文件重复, 各种资源id在R文件中找不到, 后来发现是intellij默认将整个项目以及gen文件夹作为源代码目录了, 在 ...
- css中图片等比例缩放
li img{ display: inline-block; max-height: 60px; max-width: 60px; vertical-align: middle; }
- 正确获得android设备的IP地址
网上此类获得android设备IP地址相关的文章有不少,有一篇是比较通用的,但有一个问题:有些设备默认的是IPv6的地址,那段代码获得的就是IPv6的地址.但这显然不是我们想要的,我们需要的是IPv4 ...
- app启动速度
跟踪代码发现,应用启动时的白屏会持续到draw调用完成,这个过程中任何耗时操作将导致白屏时间增长. 1.adb shell am start -W -n yourpakagename/MainActi ...
