爬虫-抽屉半自动点赞
爬虫实现抽屉半自动点赞
思路: 公司项目就是大量的获取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
# 这样就完成了自动化点赞
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了