python模拟seo快排vps点击代码实操

本期主要是介绍一下利用vps拨号的方法去运行用户点击行为,俗称seo模拟快排,那么顾名思义,快排的运行方式需要在一台拨号服务器上进行,本次模拟快排的代码是采用python中的pyppeteer库,这个库运行自动化浏览器,比较顺畅且快速。

运行逻辑

每次运行一次点击后,自动重新拨号一次,然后再重新打开浏览器进行下一个关键词的运行点击,关键词使用数据库轮询方式,每次点击一个关键词后,自动切换下一个关键词

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
async def connect(self, name, username, password):
    '''ADSL拨号连接'''
    cmd_str = "rasdial %s %s %s" % (name, username, password)
    os.system(cmd_str)
    await asyncio.sleep(random.choice(range(1,4)))
    print("ADSL拨号成功")

async def disconnect(self, name):
    '''ADSL断开连接'''
    cmd_str = "rasdial %s /disconnect" % name
    os.system(cmd_str)
    await asyncio.sleep(random.choice(range(1,4)))
    print("ADSL拨号断开")
    
async def getKeyword(self):
    try:
        while True:
            sql = 'select keywords,mode,web_name,web_url,click_now_count,click_ready_count from seo_kuaipai limit %s,%s' % (
                (self.pn - 1), 1)
            self.cur.execute(sql)
            info = self.cur.fetchone()
            self.keyword = info[0]
            self.mode = info[1]
            self.web_name = info[2]
            self.web_url = info[3]
            self.click_now_count = int(info[4] if info[4] else 0)
            self.click_ready_count = int(info[5] if info[5] else 10)
            if self.click_now_count > self.click_ready_count:
                self.pn += 1
            else:
                logger.info(f'正在优化的关键词是{self.keyword}')
                break
            except TypeError:
                logger.error('关键词已经全部点完')
                return True

在某度输入关键词后以及点击轨迹也做了一定的处理,其目的是为了规避机器点击,真实的模拟真人点击。

点击元素上,做了随机选取元素的坐标位置,然后进行鼠标的移动点击。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
async def btn_element_position(self):
    element = await self.page.evaluate('''
                                       () =>{
                                        return {  
                                         x: document.querySelector('#su').getBoundingClientRect().x,
                                         y: document.querySelector('#su').getBoundingClientRect().y,
                                         width: document.querySelector('#su').getBoundingClientRect().width,
                                         height: document.querySelector('#su').getBoundingClientRect().height
                                         }}
                                        ''')
    x = element['x'] + random.choice(range(1, int(element['width']) + 1))
    y = element['y'] + random.choice(range(1, int(element['height']) + 1))
    await self.mousemove_click(x,y)
        

消除浏览器指纹特征

代码里通过对浏览器的header头进行了处理,包括(随机UA,随机cookie、随机分辨率)、以及浏览器的启动特征webdriver进行屏蔽,屏蔽webdriver用到了pyppeteer-stealth库,这个库是puppeteer-extra-plugin-stealth的Python移植版,可以有效的防止机器人检测

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
await stealth(self.page)  #消除浏览器特征
    
await self.page.authenticate({'username': '649307714', 'password': 'a2063ror'})
     #设置浏览器ua
await self.page.setUserAgent(await self.rand_ua())
     #设置浏览器大小
await self.page.setViewport({'width':self.rand_fbl["width"]-16,'height':self.rand_fbl["height"]-60})
  #设置浏览器cookie
async def add_Cookies(self):
 with open('common/cookies.txt','r',encoding='utf-8') as f:
     cookies_list = f.read().splitlines()
     # 50%实用百度cookies
     rand_cookies = random.choice(cookies_list).split('=')
     if random.choice(range(0, 2)) == 0:
         logger.info(f'本次使用cookies为{rand_cookies}')
         await self.page.setCookie({'name':rand_cookies[0],'value':rand_cookies[1],'domain':'www.baidu.com'})
     else:
         logger.info('本次不使用cookies')

清除缓存文件

清除缓存文件,可以每次运行浏览器模拟的时候,可以将本地缓存给清理掉,让每次启动浏览器的时候都是无缓存的状态,而且也会释放本地内存,不会造成卡顿。

这就是用python实现模拟快排整体思路了,当然还有更多的优化措施可以进一步的优化,现在可以在vps服务器里顺畅的运行了。此次我也将代码进行封装了。大家在购买这款模拟快排软件不需要安装python环境,就可以运行了。

有需要购买的话,可以进入安全提示 - 985.so短网址 进行购买,又不懂的地方,也可以加我vx进行沟通:dan_moln

                ​​​​​​​

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值