吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 7941|回复: 35
收起左侧

[Python 原创] 【Python】[新人贴]苏宁易购免费试用申请一键执行 更新1.1版本

  [复制链接]
v.n.lee 发表于 2019-9-28 22:17
本帖最后由 v.n.lee 于 2019-10-27 22:23 编辑

好激动第一次发自己写的码

纯粹的兴趣爱好,工作之余打发闲时间。这是我写的第三个软件了,第一个是自己工作用来就算的,第二个是爬取小草的,还是有妹子才有动力,网上爬妹子图的教程真多

一键操作需要自己在代码中写明账户密码,也可以选择手工登录后再操作。程序也没做什么异常处理,自己用用还可以。
关于浏览器窗口大小的设置,这个可能具体的电脑屏幕分辨率有差异,需要自行设定,我在两台电脑上跑有一台就提示鼠标越界了,得重新设置。
一早摸索设定坐标,搞得我头都大了,后来找了个专门取坐标的软件。

顺便问问我在网上看教程有些说可以用phantomjs来操作的,我在网上搜就卡在第一步了,安装上完全没反应,网上有的说现在已经不支持了。有没有能处理FLEX项目的库呢,
想寻找便利的操作方法,还有就是为啥网上很多给selenium加cookie的教程方法试了都不行呢,用requests可以但是selenium就是不行


这次更新一下代码,更简洁了,也处理了一些异常,不用再模拟鼠标点击


直接上源码
[Python] 纯文本查看 复制代码
# -*- coding: utf-8 -*-
# 主题  : 苏宁易购试用申请
# 版本  : 1.2(Python 3)
# 时间  : 2019.10.27
# 作者  : 池塘里的大鳄鱼
# 说明  : 更新使用cookie登陆功能
import requests
import re
from selenium.webdriver.common.action_chains import ActionChains
from selenium import webdriver
import win32api, win32con
from time import sleep
# from cookies import wap_cookies


# 获取需要申请的商品ID
def get_product_id(driver):
    product_id_list =[]
    for i in range(4):
        url = 'https://try.m.suning.com/mtp-web/api/index/batchCategoryProductBriefInfoByPageList/getFreeTabData-1-10{}--1-1000.jsonp'.format(i)
        driver.get(url)
        info = driver.page_source
        id = re.findall('"applyId":0,.*?"productId":(.*?),', info)
        product_id_list += id
    return product_id_list


# 主程序
def main():
    driver = webdriver.Firefox()
    driver.set_window_size(370, 740)  # 设置浏览器窗口大小
    # 先登陆苏宁账号
    driver.get('https://passport.suning.com/ids/login?service=https://aq.suning.com/asc/auth?targetUrl=https://m.suning.com/&loginTheme=wap_new')
    driver.implicitly_wait(3)
    sleep(1)  # 休眠1秒
    driver.find_element_by_css_selector('.other_btn1').click()
    driver.implicitly_wait(3)
    sleep(1)
    driver.find_element_by_css_selector('#username').send_keys('苏宁账户名称')
    driver.find_element_by_css_selector('#password').send_keys('苏宁账户密码')
    driver.find_element_by_css_selector('div.btnBox:nth-child(7) > a:nth-child(1)').click()
    # driver.delete_all_cookies()

    # driver.delete_all_cookies()
    # driver.get('https://m.suning.com')
    # cookies = wap_cookies()
    # c = 0
    # for cookie in cookies:
        # c += 1
        # driver.add_cookie(cookie)
        # if c % 10 == 0:
        #     print('正在加载cookie...')
        # if c == len(cookies):
            # print('cookies加载完毕!')


    # 等待登陆
    # win32api.MessageBox(0, "请在网页上登录后到Python中继续下一步操作!", "登陆确认", win32con.MB_OK)
    # 等待用户登录
    input('*' * 10 + '按回车键继续操作' + '*' * 10)
    print('-' * 35)
    print('程序正在自动执行中...')
    ids = get_product_id(driver)
    i = 0
    print('共有{}项商品待进行申请'.format(len(ids)))
    for id in ids:
        try:
            url = 'https://c.m.suning.com/sy_content.html?productId=' + id
            driver.get(url)
            sleep(1)
            driver.find_element_by_css_selector('button.applyIt').click()
            try:
                driver.find_element_by_css_selector('.sc_house_shop').click()
                sleep(1)
                driver.find_element_by_css_selector('div.applyIt').click()
                sleep(1)
                driver.find_element_by_css_selector('.fixed_order_submit').click()
                i += 1
                print('已完成{}个申请'.format(i))
            except:
                driver.find_element_by_css_selector('.fixed_order_submit').click()
                i += 1
                print('已完成{}个申请'.format(i))
        except:
            continue
        if i > 50:
            print('已达到当日最大申请数,请明天再申请')
            break
    win32api.MessageBox(0, '共执行{}个任务'.format(i), '执行完毕', win32con.MB_OK)
    print('任务结束,共申请{}个商品。')
    # driver.close()


if __name__ == '__main__':
    main()


1.0版 苏宁试用一键申请.zip (2.04 KB, 下载次数: 56)
1.0版https://www.lanzouj.com/i6gqesf

1.1版 苏宁试用一键申请1.1.rar (1.61 KB, 下载次数: 95)
1.1版https://www.lanzouj.com/i70z5if




免费评分

参与人数 7吾爱币 +6 热心值 +6 收起 理由
jxycer + 1 + 1 1.3版的现在获取不到商品了,请更新一下,谢谢!
superaj + 1 + 1 我很赞同!
hengbohappy + 1 + 1 selenium.common.exceptions.NoSuchElementException: Message: Unable to
superain + 1 热心回复!
wangyulin + 1 + 1 谢谢@Thanks!
baihuaqifang199 + 1 谢谢@Thanks!
18390195208 + 1 + 1 热心回复!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

小白之神111 发表于 2019-9-29 10:18
v.n.lee 发表于 2019-9-28 22:41
我直接上手就是1024,从单帖子开始爬,单帖子成功以后就开始单爬取,单页成功后就开始整个栏目爬取了,成 ...

我原来一开始什么都不会的,后来就自学。一开始也是爬一套图片。但是是很简单的那种。连解析都没有的。就是直接拼接链接。后来直接上手爬整个网站。但是这个网站坑爹,他的图片地址隐藏的很深,加上他每套图的第一张图片就是这套图的链接,所以如果要一整套一张不少的爬下来还要加代码。所以。我整个代码下来就要比其他普通图片网站的多。这也是我最烦的地方。人家代码100行不到就好了 我就要四层循环。wdnmd。这个写前端的真不是人
wanenjie 发表于 2019-10-6 22:04
raceback (most recent call last):
  File "C:/Users/Andrew/Desktop/苏宁试用一键申请/苏宁试用一键申请.py", line 9, in <module>
    from selenium.webdriver.common.action_chains import ActionChains
ModuleNotFoundError: No module named 'selenium'

Process finished with exit code 1
要装selenium这个插件是不是?可否打包成EXE给大家?
skoa 发表于 2019-9-28 22:25
c112130037 发表于 2019-9-28 22:34
学习了,学习了,666666666666
小白之神111 发表于 2019-9-28 22:36
。。。我看到你那句“网上爬妹子图的教程真多‘再加上个偷笑,我会心一笑,我自从上次了写了哪个爬妹子图的源码之后我发现我自己的代码根本看不下去,也不想改了。哇就整个人心态炸了,不知道怎么改,这破网站的图片根本就不老实。你有兴趣就看看我写的
 楼主| v.n.lee 发表于 2019-9-28 22:41
本帖最后由 v.n.lee 于 2020-11-14 10:02 编辑
小白之神111 发表于 2019-9-28 22:36
。。。我看到你那句“网上爬妹子图的教程真多‘再加上个偷笑,我会心一笑,我自从上次了写了哪个爬妹子图的 ...

我从单帖子开始爬,单帖子成功以后就开始单页爬取,单页成功后就开始整个栏目爬取了,成功以后就开始使用Scrapy和scrapy_redis爬取,中间也是遇到各种各样的问题
ying656 发表于 2019-9-28 23:01
新手学习了 谢谢
Xjl955666 发表于 2019-9-28 23:19
新手学习了,谢谢楼主的分享。
wisoft 发表于 2019-9-29 09:24
selenium,学习了
 楼主| v.n.lee 发表于 2019-9-29 10:22
小白之神111 发表于 2019-9-29 10:18
我原来一开始什么都不会的,后来就自学。一开始也是爬一套图片。但是是很简单的那种。连解析都没有的。就 ...

还是你这比较厉害
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-3-28 21:14

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表