爬虫爬数据时,post数据乱码解决的方法
近期在写一个爬虫,目标站点是: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数据乱码解决的方法的更多相关文章
- (转)MySQL 插入数据时,中文乱码问题的解决
MySQL 插入数据时,中文乱码问题的解决 原文:http://www.cnblogs.com/sunzn/archive/2013/03/14/2960248.html 当向 MySQL 数据库插 ...
- 在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权限,缺省表 ...
- PHP创建文件命名中文乱码解决的方法
PHP创建文件命名中文乱码解决的方法 <pre>iconv('utf-8', 'gbk', $dir); </pre> 因为系统环境是gbk 所以里面的字符也要gbk 编码一致 ...
- MySQL 插入数据时,中文乱码问题的解决(转)
当向 MySQL 数据库插入一条带有中文的数据形如 insert into employee values(null,'张三','female','1995-10-08','2015-11-12',' ...
- MySQL 插入数据时,中文乱码???问题的解决
在终端,mysql -u root -p 登录: show variables like 'character%'; 来查看当前数据库的相关编码集. client 为客户端使用的字符集. connec ...
- MySQL 插入数据时,中文乱码问题的解决
当向 MySQL 数据库插入一条带有中文的数据形如 insert into employee values(null,'张三','female','1995-10-08','2015-11-12',' ...
- Java 前台后台数据传递、中文乱码解决方法
1.向前台传递数据;2.向后台传递数据;3.ajax post 提交数据到服务端时中文乱码解决方法;4.数组类型参数传递; 1.向前台传递数据:1.1 字符串数据传递: 这种方式只是单一的向前台传递 ...
- easyui datagrid 没数据时显示滚动条的解决方法
今天解决了一个bug,因为datagrid有多列,可是当没有数据的时候,后面的列无法通过滚动条拉动来显示,比较麻烦,而需求要求没有数据也要拉动滚动条查看后面有什么列,一开始在网上找了一些资料,发现都不 ...
随机推荐
- 紫书 例题 10-20 UVa 10900(连续概率)
分两类,当前第i题答或不答 如果不回答的话最大期望奖金为2的i次方 如果回答的话等于p* 下一道题的最大期望奖金 那么显然我们要取最大值 所以就要分类讨论 我们设答对i题后的最大期望奖金为d[i] 显 ...
- 【SRM 717 div2 B】LexmaxReplace
Problem Statement Alice has a string s of lowercase letters. The string is written on a wall. Alice ...
- 给一个执行在windows 7和NAT下的VMWARE虚拟机分配固定IP
虚拟机上装了个oracleserver,每次vmware重新启动或者resume时总要分配新的IP地址,这样就得改动windows下的client配置,所以须要想办法把IP地址固定住. DHCP服务在 ...
- ORA-01555错误总结(二)
这篇文章紧接着上一篇"ORA-01555错误总结(一)".主要描写叙述延迟块清除导致的ORA-01555错误. 以下是一些简介(上一遍已经介绍过) ORA-01555错误是一种在o ...
- Sqoop 数据导入导出实践
Sqoop是一个用来将hadoop和关系型数据库中的数据相互转移的工具,可以将一个关系型数据库(例如:mysql,oracle,等)中的数据导入到hadoop的HDFS中,也可以将HDFS的数据导入到 ...
- codeforces 710A King Moves(水)
output standard output The only king stands on the standard chess board. You are given his position ...
- Multi-process Resource Loading
For Developers > Design Documents > Multi-process Resource Loading 目录 1 This design doc n ...
- 2008R2域控环境中 应用组策略 实现禁用USB设备使用
本文介绍如何在Windows Server 2008 AD中禁用客户端USB端口.本文使用的系统:Windows Server 2008 R2 企业版.域功能级别:Windows Server 200 ...
- 变量对象、作用域链和This
变量对象 作用域链 This 整理自:https://www.cnblogs.com/TomXu/archive/2011/12/15/2288411.html 系列文章中变量对象,作用域链和this ...
- BFC 和 haslayout
在解释 BFC 是什么之前,需要先介绍 Box.Formatting Context的概念. Box: CSS布局的基本单位 Box 是 CSS 布局的对象和基本单位, 直观点来说,就是一个页面是由很 ...