访问用户主页面之后,会留下最近来访的痕迹。如果使用程序把所有用户个人主页全部爬过一遍,那很多用户的个人主页上都是你的足迹。
这次还是用curl实现,主要是因为fiddler抓包可保存会话成curl script,不用自己手动构造HTTP头。
**根据我用的尝试算了一下curl发包的速度,只用一个curl进程,14个小时发了七万包,将近是一分钟可以发一百个包。这是在网络好且稳定的情况下的结果。
**
chocolatey速度很慢,于是这次又介绍新玩具了---
Batch-CN#
介绍页面http://www.bathome.net/thread-32322-1-1.html
**#Batch-CN# 是一个第一方windows 下的第三方命令行软件管理工具,由国人开发和维护,可以为windows 批处理提供各种第三方命令行工具下载,安装管理,查看使用说明等功能。
**
类似linux下的apt-get,windows下的同类的软件包管理器chocolatey。
安装#Batch-CN#后,一行命令就可以完成下载安装curl了,速度很快:
gt curl
使用fiddler 抓包,访问一个用户的主页,保存会话为curl script,记事本打开xxx.bat得到以下一行命令:
curl -k -i --raw -o 0.dat "https://www.shiyanlou.com/user/1" -H "Host: www.shiyanlou.com" -H "Connection: keep-alive" -H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8" -H "Upgrade-Insecure-Requests: 1" -H "User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36" -H "DNT: 1" -H "Referer: https://www.shiyanlou.com/courses/1" -H "Accept-Encoding: gzip, deflate, sdch" -H "Accept-Language: zh-CN,zh;q=0.8,en;q=0.6" -H "Cookie: remember_token=71302|adgg1304sdfe82ce1f6c15484f53b0797c60f02e; session=c8eb7ggg-2e8f-4c9c-ab4b-9802a4ea898b.Jz0GE_43ZH_cJjK_7h--gtNw22k"
作一下修改,使用set /a n=%n%+1 实现用户ID的自增,就可以穷举所有的用户ID了:
@echo off
set n=1
:g
set /a n=%n%+1
echo %n%
curl -k -i --raw -o 0.dat "https://www.shiyanlou.com/user/%n%" -H "Host: www.shiyanlou.com" -H "Connection: keep-alive" -H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8" -H "Upgrade-Insecure-Requests: 1" -H "User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36" -H "DNT: 1" -H "Referer: https://www.shiyanlou.com/courses/1" -H "Accept-Encoding: gzip, deflate, sdch" -H "Accept-Language: zh-CN,zh;q=0.8,en;q=0.6" -H "Cookie: remember_token=71302|gggg30497a982ce1f6c15484f53b0797c60f02e; session=gggg7ac5-2e8f-4c9c-ab4b-9802a4ea898b.Jz0GE_43ZH_cJjK_7h--gtNw22k"
goto g
**
多开几个批处理就是使用多个进程同时发包了。不过最终应该是会被封号封IP的。
**