python模拟登录网站,网站为了安全经常会出现滑动条,我们为了获取数据,就要实现过滑动条。滑动条要先下载本地,然后计算滑块的距离,再模拟实现滑动条滑动,所以下载滑动条图片是成功的第一步。

文章提供了两个Python代码示例,分别用于下载抖音产品页和登录页的滑条图片。代码中包含了类`DouYinConfig`用于获取随机的产品ID,以及使用`requests`和`OpenCV`库进行图像下载和处理。同时,文中强调了技术使用时的道德和网络安全问题。
摘要由CSDN通过智能技术生成

序言

实例代码百分百原创,部分做了脱敏处理,仅共学习和研究

douyin_config.py代码

import random
class DouYinConfig:
    @staticmethod
    def get_rand_productId():
        word_list = ["3615906767613088252","3617220823661851201","3439065368059070084","3462249265097799232"]
        return random.choice(word_list)

    which_server = "loc1"
    if_reboot_router = "0"
    sec_ch_ua  = '"Not.A/Brand";v="8", "Chromium";v="114", "Google Chrome";v="114"'
    User_Agent  = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'

产品页滑条下载代码

import base64
from urllib.parse import urlparse
import cv2
import numpy as np
import requests
requests.packages.urllib3.disable_warnings()
from douyin_config import DouYinConfig
resize = (340, 212)


#yuming_source = "fxg.jinritemai.com"
#yuming_source_base64_1 = base64.b64encode(yuming_source.encode('utf-8'))


yuming_1_encode = 'cDYtY2F0cGNoYS5ieXRlaW1nLmNvbQ=='
#解密
yuming1 = base64.b64decode(yuming_1_encode).decode("utf-8")
print("解密的结果:",yuming1)

yuming_2_encode = 'ZnhnLmppbnJpdGVtYWkuY29t'
#解密
yuming2 = base64.b64decode(yuming_2_encode).decode("utf-8")
print("解密的结果:",yuming2)



img_path = f"https://{yuming1}/tos-cn-i-188rlo5p4y/86d5fdcd133d490b8240351fbcc13fac~tplv-188rlo5p4y-2.jpeg"
img_name = "bg"

payload = {}
headers = {
  'Accept': 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
  'Accept-Encoding': 'gzip, deflate, br',
  'Accept-Language': 'zh-CN,zh;q=0.9',
  "Host": urlparse(img_path).hostname,
  'Referer': f'https://{yuming2}/',
  'Sec-Ch-Ua': DouYinConfig.sec_ch_ua,
  'Sec-Ch-Ua-Mobile': '?0',
  'Sec-Ch-Ua-Platform': '"Windows"',
  'Sec-Fetch-Dest': 'image',
  'Sec-Fetch-Mode': 'no-cors',
  'Sec-Fetch-Site': 'cross-site',
  'User-Agent': DouYinConfig.User_Agent
}

resp = requests.get(url=img_path, headers=headers, verify=False)
print(resp.content)
if resp.status_code == 200:
  img_path = f'./image/{img_name}.jpg'
  image = np.asarray(bytearray(resp.content), dtype="uint8")
  image = cv2.imdecode(image, cv2.IMREAD_COLOR)
  if resize:
    image = cv2.resize(image, dsize=resize)
    # pass
  cv2.imwrite(img_path, image)
  #return img_path
  print(img_path)
else:
  print('下载失败,状态码为:{}'.format(resp.status_code))

登录页滑动条下载代码

import base64
from urllib.parse import urlparse
import cv2
import numpy as np
import requests
requests.packages.urllib3.disable_warnings()
from douyin_config import DouYinConfig

#yuming_source = "fxg.jinritemai.com"
#yuming_source_base64_1 = base64.b64encode(yuming_source.encode('utf-8'))


yuming_1_encode = 'cDYtY2F0cGNoYS5ieXRlaW1nLmNvbQ=='
#解密
yuming1 = base64.b64decode(yuming_1_encode).decode("utf-8")
print("解密的结果:",yuming1)

yuming_2_encode = 'ZnhnLmppbnJpdGVtYWkuY29t'
#解密
yuming2 = base64.b64decode(yuming_2_encode).decode("utf-8")
print("解密的结果:",yuming2)


resize = (340, 212)
img_path = f"https://{yuming1}/tos-cn-i-188rlo5p4y/c0dd8dcdebf84273a54b489d871d2d84~tplv-188rlo5p4y-2.jpeg"
img_name = "bg"
payload = {}
headers = {
  'Accept': 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
  'Accept-Encoding': 'gzip, deflate, br',
  'Accept-Language': 'zh-CN,zh;q=0.9',
  "Host": urlparse(img_path).hostname,
  'Referer': f'https://{yuming2}/',
  'Sec-Ch-Ua': DouYinConfig.sec_ch_ua,
  'Sec-Ch-Ua-Mobile': '?0',
  'Sec-Ch-Ua-Platform': '"Windows"',
  'Sec-Fetch-Dest': 'image',
  'Sec-Fetch-Mode': 'no-cors',
  'Sec-Fetch-Site': 'cross-site',
  'User-Agent': DouYinConfig.User_Agent
}

resp = requests.get(url=img_path, headers=headers, verify=False)
print(resp.content)
if resp.status_code == 200:
  img_path = f'./image/{img_name}.jpg'
  image = np.asarray(bytearray(resp.content), dtype="uint8")
  image = cv2.imdecode(image, cv2.IMREAD_COLOR)
  if resize:
    image = cv2.resize(image, dsize=resize)
    # pass
  cv2.imwrite(img_path, image)
  #return img_path
  print(img_path)
else:
  print('下载失败,状态码为:{}'.format(resp.status_code))

总结

技术可以改变世界和未来,技术掌握在不正当人手中,技术就会危害网络安全。所以我们掌握技术之前一定要先要树立好的三观。希望代码有助于您技术的提升。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

逆向导师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值