当前位置:淡墨SEO首页 > 未命名 > sou狗快排刷参配合redis代理ip池进行发包

sou狗快排刷参配合redis代理ip池进行发包

admin2年前 (2022-09-01)未命名16440

某狗发包刷参原理利用就是请求参数,进行接口请求,从而实现用户访问目标网站。此次刷参较某度简单一些,直接请求访问到目标网站即可,不做停留和页面浏览访问。但是目前一直在测试阶段,可以在百度统计里看到某狗引擎访问的流量记录,效果方面还在测试。下面进行简单步骤和思路的讲解。


正常访问sou狗搜索都会进行请求,而请求包的记录都会被加载出来,这里我们可以通过fiddler抓包工具进行分析,查看搜索某个关键词产生的请求加载记录。这里可以看到已经有一条请求url是访问的记录。接下来就要对参数进行分析

1662016448705.jpg

通过参数分析,可以看到这些参数大概主要是以随机时间为主。


image.png

那么在python代码中我们对访问请求参数模拟,这样就可以造出大概差不多相似的请求url了。

def reqUrl(self,page):
        params = {
            'sut':random.choice(range(200,15000)),
            'query':self.keyword,
            '_asf':'www.sogou.com',
            'w':'01019900',
            'p':'40040100',
            'ie':'utf8',
            'from':'index-nologin',
            's_from':'index',
            'sst0':int(time.time()*1000),
            'lkt':'0,0,0',
            'sugsuv':str(int(datetime.datetime.today().replace(microsecond=0).timestamp())-1000)+'523480',
            'sugtime':int(time.time()*1000),
            'page':str(page)
        }
        url = urljoin(self.base_url,'web?'+urlencode(params))
        return self.resHtml(url)

紧接着就是页面排名网站进行解析

def resHtml(self,url):
     self.session.get(url=self.vsogou_url)
        try:
            self.randHeaders = Headers(headers=True).generate()
            headers = {
                 'User-Agent':self.randHeaders['User-Agent'],
            }
            resp = self.session.get(url=url,headers=headers,verify=False)
            resp.encoding = resp.apparent_encoding
            return resp.text
        except Exception as e:
            print(e)
            
def parseHtml(self,html):
        e_obj = etree.HTML(html)
        divs = e_obj.xpath("//div[@id='main']//div[@class='vrwrap']")
        # print(divs)
        for index,div in enumerate(divs):
            i = div.xpath("./div[@class='citeurl']/i")
            if i:
                yu_name = div.xpath("./div[@class='citeurl']/span[2]/text() | .//div[contains(@class,'citeurl')]/span[1]/text()")
                # print(yu_name)
            else:
                yu_name = div.xpath("./div[@class='citeurl']/span[1]/text() | .//div[contains(@class,'citeurl')]/span[1]/text()")
                # print(yu_name)
            if yu_name:
                if self.web_name in yu_name[0]:
                    index = index + 1 if index == 0 else index
                    print()
                    href = div.xpath(".//h3[contains(@class,'vr-title')]/a/@href")[0]
                    clickUrl = urljoin(self.base_url,href)
                    print(index,clickUrl)
                    return index,clickUrl

获取目标网站url为:https://video.sogou.com/link?url=DSOYnZeCC_pqdWOAmU_iycCnzIJwuQYD32GD08viWW4. 再对这个url进行请求访问。这样就可以对目标网站产生一次点击了。


image.png


第二部分就是配置代理ip了,代理ip我们可以做一个代理ip池,进行循环利用,保证每一个ip都是最大程度的利用。在某某代理ip平台获取到代理ip接口后,接下来就可以单独写一个py模块,进行代理ip池的设置,这里利用redis列表类型进行ip的压入压出,每次保存10个长度。如下代码

def get_ip():
    url = 'http://http.tiqu.letecs.com/getip3?xxxxxxxxxxxns=&gm=4'
    while True:
        res = requests.get(url=url).json()
        try:
            # print(res)
            ip = res['data'][0]['ip']
            port = res['data'][0]['port']
            dl_ip = '%s:%s'%(ip,port)
        except:
            # print(res)
            continue
        else:
            r.lpush('IP', dl_ip)
            # print('成功加入代理ip%s' % dl_ip)
            break

def get_num():
    while True:
        num = r.llen('IP')
        if num < 10:
            get_ip()
        else:
            # print(num)
            ip = pop_ip()
            return ip
            
 def pop_ip():
    ip = r.rpop('IP').decode()
    # print(ip)
    return ip

def check_ip():
    while True:
        ip = get_num()
        proxies = {
            'http':f'http://{ip}',
            'https':f'http://{ip}'
        }
        try:
            url = 'http://httpbin.org/ip'
            res = requests.get(url=url,proxies=proxies).json()
            # print(res)
            r.lpush('IP',ip)
            # print(f'目标ip:{ip}')
            return ip
        except:
            # print(f'删除ip{ip}')
            get_ip()



if __name__ == '__main__':
    # get_ip()
    check_ip()
    # pop_ip()
    # t()

在redis桌面工具,可以看到已经压入的10个待取代理ip

image.png


最后在代码中导入代理ip模块,从redis中获取ip后,用代理ip进行整个搜索访问过程的模拟。从而达到不同ip访问目标网站。进行了简单的刷参发包。

扫描二维码推送手机访问

文章内容均为原创,禁止转载!

本文链接:http://www.seoyiwu.com/news/11.html

标签: 搜狗快排

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。