爬虫-抽屉半自动点赞

爬虫实现抽屉半自动点赞

思路: 公司项目就是大量的获取cookie 然后拿着不同的cookie做操作

 1 使用selenium 半自动登录---》取到cookie   遇到验证码自己手动输入
 2 使用requests模块,解析出点赞的请求地址---》模拟发送请求---》携带cookie

第一步自动登录并保存cookies

import json

from selenium import webdriver
from selenium.webdriver.common.by import By
import requests
import time

bro = webdriver.Chrome(executable_path='chromedriver_mac64')
1.生成一个操作浏览器的对象


try:
    bro.get('https://dig.chouti.com/')
    bro.maximize_window()
    bro.implicitly_wait(10)
    2.用浏览器对象打开网址并等待加载完成

    login_btn = bro.find_element(By.ID, value='login_btn')
    # 这样按钮不可以直接点击,需要使用js点击
    bro.execute_script('arguments[0].click()',login_btn)
    3.找到登录按钮 并用 js代码来执行点击
    time.sleep(2)
    user_login = bro.find_element(By.CSS_SELECTOR,value='body > div.login-dialog.dialog.animated2.scaleIn > div > div.login-type > a.link-normal.active.phone-login')
    4.找到用户登录tab
    user_login.click()
    username = bro.find_element(By.NAME,value='phone')
    password = bro.find_element(By.NAME,value='password')
    username.send_keys('18338952552')
    password.send_keys('wujinbo123')
    5.找到输入用户名和密码input标签 并输入用户名和密码
    time.sleep(2)
    user_login_btn = bro.find_element(By.CSS_SELECTOR,value='body > div.login-dialog.dialog.animated2.scaleIn > div > div.login-footer > div:nth-child(4) > button')
    user_login_btn.click()
    6.点击确认登录
    time.sleep(2)
    input('')
    7.手动查看网址是否有验证码 有的话手动填写验证码 后 再继续程序
    with open('chouti.json','w',encoding='utf-8')as f:
        json.dump(bro.get_cookies(),f)
    8.登录成功将cookies 写入文件中 ,登录后cookies可以使用get_cookies来获取



    # 使用js触发点击  arguments[0]意思=传入的要执行的对象login_btn

except Exception as f:
    print(f)

第二步带着cookies去点赞,带着cookies就相当于已登录状态***

    with open('chouti.json', 'r', encoding='utf-8') as f:
        cookies = json.load(f)

    # selenium 的cookie不能直接给requests模块使用,需要额外处理一下
    request_cookies = {}
    for cookie in cookies:
        request_cookies[cookie['name']] = cookie['value']
        # 把cookies里面所有的cookies name和value都加入到 request_cookies中

    headers = {
        'User-Agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Mobile Safari/537.36'
    }
    # 在访问投中加入User-Agent识别

    res = requests.get('https://dig.chouti.com/top/24hr?_=1679277434856',headers=headers)
    # 访问热搜排行接口,获得数据,分析数据 拿到文章id
    for item in res.json().get('data'):
        id_link = item.get('id')
        data = {
            'linkId':id_link
            # 分析接口 需要传入数据linkId
        }
        res2 = requests.post('https://dig.chouti.com/link/vote',data=data,headers=headers,cookies=request_cookies)
        print(res2.text)
        # 想点赞接口发送请求,携带数据id_link 请求头和用户token
        # 这样就完成了自动化点赞
posted @   Python-moon  阅读(18)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示