0728.im 发布的文章

近期有朋友说需要增加自己网站的流量,故用python写了一个简单的脚本,配合IP池或者动态IP都可以刷,当然最爽的是单窗口单IP。

说明

作弊可耻!

环境

python3.8 + selenium + 动态ip(或单窗口单ip)

代码

#-*- coding:utf-8 -*-
from selenium import webdriver
import time,requests,random
from selenium.common.exceptions import NoSuchElementException
chromeOptions = webdriver.ChromeOptions()

i = 0
while True:
    #免费IP池的话设置在下方,这边本地使用了单窗口单ip所以注销
    #ip = 'http://' + requests.get('http://localhost:5555/random').text
    # 设置代理
    #chromeOptions.add_argument("--proxy-server=%s"%ip)
    chromeOptions.add_argument('--headless')
    chromeOptions.add_argument('--disable-gpu')
    b = webdriver.Chrome(options = chromeOptions)
    try:
        b.get("目标网站")
        time.sleep(2)
        for k in range(1,5):
            j = random.randint(1,10)
            b.find_element_by_xpath('随机开几个网站div[{}]/ul/li[{}]/a'.format(k,j)).click()
            time.sleep(3)
        b.find_element_by_link_text("随机点几个栏目").click()
        j = random.randint(1,10)
        b.find_element_by_xpath('随机开几个网站ul[1]/li[{}]/a'.format(j)).click()
        time.sleep(5)
        b.find_element_by_link_text('随机点几个栏目').click()
        time.sleep(3)
        i += 1
        print('已刷新--',i,'--次')
    except Exception as e:
        print(e)
    b.quit()

使用说明

  1. 免费ip可自行搭建IP池
  2. 本案例之前采用的单窗口单ip,新建一个bat文件将脚本开N个进程一起刷贼快。
  3. 也可以使用动态IP但只能单进程刷,单窗口单IP刷量是动态IP的N倍。

缘起

之前公司找外面网络公司做某些业务相关关键词排名,了解了一下相关的情况,网络公司只需要我们提供网站地址和需要做的关键词即可,故猜想他们采取的方式应该是通过模拟用户搜索提升网站权重进而提升排名。

不过后续公司的网站卡在第二页那个公司一直也没能把排名做到首页,因为赶巧百度推出了惊雷算法打击这种刷排名的方式。

但这个算法实际的打击面应该并不会很精准,现在也依然还有很多公司在做这方面的业务。

之前接触到selenium,了解了一些基本的功能,今天尝试实现一下百度搜索相关关键词然后定位目标网站进行访问等基本操作。

注意事项

既然说到刷,必然涉及到使用海量的IP。

  • 自建IP池

一般可以自己搭建IP池,通过程序爬取各类免费IP网站上的IP和端口号,然后进行验证,可以用的就入库,不能用的就删掉。

但是免费的永远是最最贵的,虽然搭建比较简单,但IP的有效率很低且能用的基本速度也非常慢。

  • 购买IP

现在有很多IP服务商都提供爬虫接口,我试用过芝麻、牛魔、IP精灵、站大爷、ET等很多提供此类服务的服务商家的测试套餐,然鹅基本上都比我自建的IP池的质量都差,当然没有购买过收费套餐就暂不评论。

但是我就是想做个学习的测试就没有必要购买此类收费服务了,不过我发现了个非常靠谱的IP服务商。。他们家的免费测试的IP都能直接看爱奇艺720p,真心666,只想低调使用就不透漏了。

代码部分


from selenium import webdriver
import requests,time

#自建IP池
def get_proxy():
    r = requests.get('http://127.0.0.1:5555/random')
    return r.text

# 使用兔子IP免费爬虫代理
import random

FILE = './tuziip.txt'  # 读取的txt文件路径

# 获取代理IP
def proxy_ip():
    ip_list = []
    with open(FILE, 'r') as f:
        while True:
            line = f.readline()
            if not line:
                break
            ip_list.append(line.strip())
    ip_port = random.choice(ip_list)
    return ip_port


def bd():
    chromeOptions = webdriver.ChromeOptions()

    # 设置代理
    chromeOptions.add_argument("--proxy-server=http://"+proxy_ip())
    # 一定要注意,=两边不能有空格,不能是这样--proxy-server = http://202.20.16.82:10152
    browser = webdriver.Chrome(chrome_options = chromeOptions)

    # 查看本机ip,查看代理是否起作用
    browser.get("https://www.baidu.com/")
    browser.find_element_by_id("kw").send_keys("ip")
    browser.find_element_by_id("su").click()
    time.sleep(2)
    browser.find_element_by_id("kw").clear()
    time.sleep(1)
    browser.find_element_by_id("kw").send_keys("ip代理")
    browser.find_element_by_id("su").click()
    time.sleep(2)
    browser.find_element_by_id("kw").clear()
    time.sleep(1)
    browser.find_element_by_id("kw").send_keys("兔子ip代理")
    browser.find_element_by_id("su").click()
    time.sleep(2)
    browser.find_element_by_id("kw").clear()
    time.sleep(1)
    browser.close()
    # 退出,清除浏览器缓存
    browser.quit()
if __name__ ==  "__main__":
    while True:
        print(proxy_ip)
        bd()

运行程序,程序可自动打开浏览器,进入百度,搜索关键词IP,停顿2秒,清除搜索框内容,停一秒输入“IP代理”,然后停顿、清除、再搜索"目标关键词",然后清楚缓存退出浏览器,再更换IP开始新一轮。

如果要实现搜索目标关键词,选择目标网站点击进入目标网站,就需要使用selenium相关的元素选择了,这个就不多介绍了,很简单看下selenium的相关文档就ok了。

说明

闲着也是闲着,一堆废旧手机好几个微信账号,每天薅个早餐钱吧。

需求

监控线报网站有线报更新发送微信信息提醒。

from wxpy import *
import platform,sqlite3,time,requests
from bs4 import BeautifulSoup

#微信机器人配置
console_qr=(False if platform.system() == 'Windows' else True)
bot = Bot('bot.pkl', console_qr=console_qr)
tuling = Tuling('图灵接口自动回复')
my_friend = bot.friends()
tt = bot.groups().search('群名称')[0]

@bot.register(tt)
def send(msg):
    tt.send(msg)

@bot.register(my_friend)
def tuling_reply(msg):
    tuling.do_reply(msg)

@bot.register(msg_types=FRIENDS)
def auto_accept_friends(msg):
    new_friend = msg.card.accept()
    new_friend.send('您好,有什么可以帮您的吗?')

#创建数据库
#只采集链接和标题发送到微信群
conn = sqlite3.connect("./xianbao.db", check_same_thread=False)
cursor = conn.cursor()
try:
    sql = 'CREATE TABLE xianbao(id integer primary key autoincrement, via text NOT NULL UNIQUE,title text,pubtime datetime) '
    cursor.execute(sql)
except Exception as e:
    print("表已存在")
finally:
    conn.commit()

#线报采集以科学刀为例
def kxdao():
    site = '科学刀'
    r = requests.get('https://www.kxdao.net/forum-42-1.html')
    html = r.text
    bs = BeautifulSoup(html,'lxml')
    links = bs.findAll('a',class_='s xst')
    for link in links:
        url = link['href']
        title = link.text
        pubtime = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
        msg = title + '\n' + url
        w = cursor.execute('INSERT INTO "xianbao" ("via", "title", "pubtime") VALUES (?, ?, ?)',
                       [url,title, pubtime])
        if w == True:
            print(msg)
            conn.commit()

#设置间隔时间五分钟
while 1:
    kxdao()
    time.sleep(300)

今天在N1盒子上安装了 VS Code Server,简单的记录一下。

安装docker

  • Docker一键安装脚本
$ sudo wget -qO- https://get.docker.com/ | bash

$ # 如果上面的不行,执行下面两句
$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh

$ # 安装成功执行下面语句,如果有类似回显,说明安装成功
$ docker --version
Docker version 18.06.1-ce, build e68fc7a
  • Docker相关操作
sudo systemctl start docker # 启动
sudo systemctl stop docker # 停止
sudo systemctl status docker # 状态
sudo systemctl enable docker # 设置开机启动

VSCode Server搭建

  • 下载源码部署
  1. 拉取最新版代码,地址:github.com/cdr/code-server
  2. 解压,cd到解压目录。
  3. 设置登录密码启动。
export PASSWORD="设置登录密码"
./code-server --host="0.0.0.0"
  1. 浏览器打开 http://ip:8080 输入设置好的密码即可使用。
  • Docker部署
docker run -it -d -p 8080:8080 \
  -v "$PWD:/home/coder/project" \
  -e PASSWORD='设置你的登录密码' \
  -u "$(id -u):$(id -g)" \
  codercom/code-server:latest

运行成功,访问http://ip:8080 输入设置好的密码即可使用。

汉化及其他插件

点击右侧的扩展图片,输入chinese下载简体中文语言包即可使用中文。

平常写个markdown文档或python什么的还是很方便的。

记录一下Linux设置Frp开机启动的方法

  • 在/etc/systemd/system下添加frps.service或frpc.service
[Unit]
Description=frpc daemon
After=syslog.target  network.target
Wants=network.target

[Service]
Type=simple
ExecStart=/root/frpc/frpc -c /root/frpc/frpc.ini #启动命令根据自己情况填写目录
Restart= always
RestartSec=1min
ExecStop=/usr/bin/killall frpc


[Install]
WantedBy=multi-user.target
  • 相关命令
systemctl enable frpc(frps) #设置开机启动
systemctl start frpc(frps) #启动
systemctl stop frpc(frps) #停止
systemctl status frpc(frps) #状态