Headers = {
'Cookie': '_xsrf=....; tgw_l7_route=...; q_c1=fa50f62d64a347e2b2219e99935d1b4c|1532941819000|1532941819000; _zap=d722d2c4-2d96-4e09-a147-74a2fa53894e; z_c0=2...',
"Content-Type": "application/json",
'User-Agent': 'ZhihuHybrid com.zhihu.android/Futureve/5.21.2 Mozilla/5.0 (Linux; Android 5.1.1; SM-G925F Build/LMY48Z) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/39.0.0.0 Safari/537.36',
'accept': 'application/json, text/plain, */*'
}
responsText= requests.post('https://www.zhihu.com/api/v4/answers/425660092/voters', {
"type":"up" },headers=Headers, timeout=8 ).text
一直出现:
{code:400,
message:"请求错误",
name:"MalformRequestException"}
问题是我在 fiddler 抓到的就是这样的,一模一样....
结果我加了一个:
x-app-za:OS=Android&Release=5.1.1&Model=SM-G925F&VersionName=5.21.2&VersionCode=764&Product=com.zhihu.android&Width=1080&Height=1920&Installer=%E5%BA%94%E7%94%A8%E5%AE%9D-%E5%B9%BF%E5%91%8A&DeviceType=AndroidPhone&Brand=samsung&OperatorType=46000
就可以了,问题是....我在 fiddler 抓到的完全不需要这个参数....
1
NotNil1 2018-07-30 19:18:54 +08:00
反爬虫了解一下
|
2
Cheez OP @ljtletters #1 问题是所有参数全部一样啊,一个在模拟器里面,一个用脚本跑而已.....知乎怎么反...
|
3
maemual 2018-07-30 19:44:06 +08:00 via iPhone
你好好查查你抓的包,肯定是要这个参数的
|
5
alvin666 2018-07-30 19:58:57 +08:00 via Android
知乎的反爬做的很好的,别太高估自己了
|
7
ToT 2018-07-30 21:54:47 +08:00
是不是 user agent 里有 android,所以后台会强制检测 android 版本信息什么的参数?
“问题是我在 fiddler 抓到的就是这样的,一模一样...." 这句话我没懂,fiddler 是能成功抓取还是不能呢? |
8
Cheez OP @ToT #7
我在 fiddler 抓正常的请求,成功接收。 我把所有 headers 都复制到代码里面,用 Python 跑,结果失败了,一直返回 MalformRequestException 错误。 我又加了个 x-app-za 的 header 就突然好了... |
9
Cheez OP 挽尊
|
10
fan776783 2018-07-31 12:37:32 +08:00
x-app-za 这种是自定义头吗
|
12
dongxiaozhuo 2018-07-31 14:49:38 +08:00 via iPhone
这是要脚本刷赞?
如果是,建议别费心了,知乎刷赞的被检测到的话,会退回的。 |
13
Cheez OP @dongxiaozhuo #12 ......我在写个知乎爬虫
|
14
dongxiaozhuo 2018-07-31 14:54:08 +08:00 via iPhone
@Cheez 爬内容不应该是 GET 请求吗?你给的代码是是什么 POST voters 资源…
|
15
Cheez OP @dongxiaozhuo #14 因为我想要完成一个知乎爬虫的所有功能,比如获取赞同者,赞同,取消赞同等等所有操作
|