运行下载和分析脚本时拒绝访问CloudFlare

2024-09-29 23:32:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在处理一个法律问题,并建立了一个脚本,这样我就不用手动搜索网站了。在

脚本:

import sys, urllib

servno = 2000
servernomax = 2676
alldat = ""

while True:
    newdat = ""
    url = "http://coc-servers.com/servers/"+str(servno)
    wp = str(urllib.urlopen(url).read())
    print wp
    ind1 = wp.find('"IP: "')
    if ind1 != -1:
        ind1 += 7
        ind2 = wp.find('http',ind1)
        ind3 = wp.find('"',ind2)
        IPurl = wp[ind2:ind3]
        newdat += IPurl
    ind4 = wp.find("<th>Webiste</th>")
    if ind4 != -1:
        ind4 +=22
        ind5 = wp.find('http',ind4)
        ind6 = wp.find('"',ind5)
        Website = wp[ind5:ind6]
        newdat += ", "
        newdat += Website
    alldat += newdat
    servno +=1
    #print ind1, ind4
    if servno > 2676: break

print alldat
sys.exit()

没有Bug,但是有些值需要调整。在

输出?在

^{pr2}$

好吧,那就等一下。。什么?拒绝访问?我被禁止了?基于我的浏览器?在

我怎么才能避开这个?我知道CloudFlare是用来防止DDoS攻击的,但是,这根本不是DDoS。在

我将尝试实现延迟,但是,从第一个到最后一个响应是相同的消息。在

实现多个浏览器代理和一个延迟可以修复它吗,还是我已经完蛋了?在


Tags: 脚本httpifsysfindurllibwpprint
1条回答
网友
1楼 · 发布于 2024-09-29 23:32:11

http://wolfprojects.altervista.org/articles/change-urllib-user-agent/上的文档之后,我成功地运行了脚本,没有错误,也没有cloudflare禁止我。在

新脚本是:

import sys
from urllib import FancyURLopener

servno = 2224 #2000
servernomax = 2676
alldat = ""

class MyOpener(FancyURLopener):
    version = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11'

mopen = MyOpener()

while True:
    newdat = ""
    url = "http://coc-servers.com/servers/"+str(servno)
    wp = str(mopen.open(url).read())#str(urlopen(url).read())
    #print wp
    ind1 = wp.find('IP: ')
    if ind1 != -1:
        ind1 += 7
        ind2 = wp.find('http',ind1)
        ind3 = wp.find('"',ind2)
        IPurl = wp[ind2:ind3]
        newdat += IPurl
    ind4 = wp.find("<th>Website</th>")
    if ind4 != -1:
        ind4 +=22
        ind5 = wp.find('http',ind4)
        ind6 = wp.find('"',ind5)
        Website = wp[ind5:ind6]
        newdat += ", "
        newdat += Website
    newdat += ";;;  "
    alldat += newdat
    servno +=1
    #print ind1, ind4
    if servno > 2676: break

print alldat
sys.exit()

谁知道FancyURLOpener会如此有用?:)

相关问题 更多 >

    热门问题