您的位置:首页 > 其它

短时间连续访问新浪微博搜索页面致使“你的行为有些异常,请输入验证码:”解决方法

2013-04-12 19:40 363 查看
近期在做新浪微博的抓取,需要在短时间内对新浪微博搜索页面进行访问,可是如果程序在短时间内运行几次,新浪会认为你的行为存在异常,无法获取到正常返回的页面源码。分析原因:

各大网站都有自己的保护机制,如果发现存在进程短时间持续对网站服务器进行访问,它会认为该进程的行为有异常,许多黑客正是利用这种对网站的大规模并发访问,致使防护性较差的网站瘫痪。

为了解决“你的行为有些异常,请输入验证码:”这个问题,我尝试使用更换ip的方法。因为既然新浪已经将当前的IP地址认为是产生异常行为的地址,所以在短时间内不会对该IP地址解封(一般2-3天以后才会解封)。所以得使用其他的IP对微博页面进行爬取。

在实验室局域网内,ip地址是根据MAC地址固定分配。所以想要改成局域网内其他的ip地址,得需要知道局域网内有哪些ip地址可用。

COLOR 0A
CLS
@ECHO Off
Title 查询局域网内在线电脑IP
:send
@ECHO off&setlocal enabledelayedexpansion
ECHO 正在获取本机的IP地址,请稍等...
for /f "tokens=3 skip=2 delims=: " %%i in ('nbtstat -n') do (
set "IP=%%i"
set IP=!IP:~1,-1!
ECHO 本机IP为:!IP!
goto :next
)
:next
for /f "delims=. tokens=1,2,3,4" %%i in ("%IP%") do set range=%%i.%%j.%%k
ECHO.&ECHO 正在获取本网段内的其它在线计算机名,请稍等...
ECHO 本网段【%range%.*】内的计算机有:
for /f "delims=" %%i in ('net view') do (
set "var=%%i"
::查询在线计算机名称
if "!var:~0,2!"=="\\" (
set "var=!var:~2!"
ECHO !var!
ping -n 1 !var!>nul
))
ECHO.
ECHO 正在获取本网段内的其它在线计算机IP,请稍等...
for /f "skip=3 tokens=1,* delims= " %%i in ('arp -a') do ECHO IP: %%i 正在使用
ECHO.
ECHO 查询完毕,按任意键退出...
pause>nul


将以上代码存放在文本中,修改后缀名为.bat,以管理员的身份运行,可以查看当前网络中其他主机的ip地址。



有了这些ip地址,再使用NBTSTAT -a 目的IP 得到目的IP的MAC地址。



修改本机的MAC地址为以上查询到的MAC地址,可以使用MAC地址修改器,或者直接打开网络和共享中心,打开本地连接的属性,配置,选择“高级”,选择网络地址,填写要修改的MAC地址。



不久,IP地址就会根据更改后的MAC地址重新分配,现在相当于两台主机共同分得网络流量使用,你可以使用这个IP重新运行程序,爬去新浪微博。

这都是在出现“你的行为有些异常,请输入验证码:”之后的解决方法。如果想避免出现这种情况,最好是在运行程序时,不要短时间内多次运行,最好间隔一定的时间运行一次。

本文为xyw_Eliot原创,转载请注明出处:http://blog.csdn.net/xyw_eliot/article/details/8791987
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐