V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
CriseLYJ
V2EX  ›  Python

各大网站登陆方式, 包括爬虫,麻麻再也不用担心我学习爬虫啦,哈哈

  •  9
     
  •   CriseLYJ · 2019-03-07 10:01:18 +08:00 · 15087 次点击
    这是一个创建于 2114 天前的主题,其中的信息可能已经有所发展或是发生改变。

    python 模拟各大网站登陆方式,以及一些爬虫程序

    • 仅供练习使用,代码注释很详细

    • 收集了一些各大网站登陆方式, 和一些网站的爬虫程序,有的是通过 selenium 登录,有的是通过抓包直接模拟登录,有的是利用 scrapy,希望对小白有所帮助,本项目用于研究和分享各大网站的模拟登陆方式,和爬虫程序,会持续更新。。。

    • 昨天加了个班,对一些老代码进行了重构和测试,大部分都可以用。

    • 欢迎 star

    模拟登录一些常见的网站

    • 如果你有什么比较难登陆的网站,比如发现用了 selenium+webdriver 都还登陆不了的网站,欢迎给我提 issue
    1. requests
    2. selenium
    3. rsa
    4. phantomjs

    项目地址

    Github

    关于

    模拟登陆基本采用的是直接登录或者使用 selenium+webdriver 的方式,有的网站直接登录难度很大,比如 qq 空间,B 站,如果采用 selenium 就相对轻松一些。

    虽然在登录的时候采用的是 selenium,为了效率,我们可以在登录过后得到的 cookie 维护起来,然后调用 requests 或者 scrapy 等进行数据采集,这样数据采集的速度可以得到保证。

    已完成

    tips of pull request

    • 欢迎大家一起来 pull request

    问题

    • 有的验证码需要手动,之后我会尽量改正
    • 代码失效:由于网站策略或者样式改变,导致代码失效,请给我提 issue,如果你已经解决,可以提 PR,谢谢!

    另外

    • 如果你有什么比较难登陆的网站,比如发现用了 selenium+webdriver 都还登陆不了的网站,欢迎给我提 issue
    • 如果该 repo 对大家有帮助,给个 star 鼓励鼓励吧

    欢迎你们

    1. 项目写了一段时间后,发现代码的风格和程序的易用性,可扩展性,代码的可读性,都存在一定的问题,所以接下来最重要的是重构代码,让大家可以更容易的做出一些自己的小功能。
    2. 如果你觉得某个网站的登录很有代表性,欢迎在 issue 中提出

    测试

    Bilibili 自动登录测试正常,成功率 98%

    web 微信

    Alt text

    图虫爬虫

    项目地址

    Github

    最后

    • 大佬们慢点喷,小弟有点承受不住,---_---
    118 条回复    2019-04-26 00:26:10 +08:00
    1  2  
    CriseLYJ
        1
    CriseLYJ  
    OP
       2019-03-07 10:09:29 +08:00   ❤️ 1
    顶一下
    ThunderMonkey
        2
    ThunderMonkey  
       2019-03-07 10:10:10 +08:00
    已 star,正好学习
    zhihaofans
        3
    zhihaofans  
       2019-03-07 10:10:28 +08:00 via Android
    厉害
    kylix
        4
    kylix  
       2019-03-07 10:12:19 +08:00
    顶一下,已 star
    zhila
        5
    zhila  
       2019-03-07 10:12:46 +08:00
    感谢大佬分享
    zhihaofans
        6
    zhihaofans  
       2019-03-07 10:13:13 +08:00 via Android
    Done 的 github 打错了
    CallMeReznov
        7
    CallMeReznov  
       2019-03-07 10:14:52 +08:00
    zhangneww
        8
    zhangneww  
       2019-03-07 10:22:34 +08:00
    支持一下!

    项目里并没有 V2EX 的登录呀?
    senggai
        9
    senggai  
       2019-03-07 10:25:03 +08:00
    妙啊...
    ARhen
        10
    ARhen  
       2019-03-07 10:45:21 +08:00
    厉害
    toono
        11
    toono  
       2019-03-07 10:48:50 +08:00 via iPhone
    优秀
    CriseLYJ
        12
    CriseLYJ  
    OP
       2019-03-07 10:56:50 +08:00
    多谢支持,真心感谢
    CriseLYJ
        13
    CriseLYJ  
    OP
       2019-03-07 10:58:41 +08:00
    @zhihaofans 我去改掉,嘻嘻
    hayi
        14
    hayi  
       2019-03-07 11:00:43 +08:00
    @zhangneww 杠精
    hellojay
        15
    hellojay  
       2019-03-07 11:02:09 +08:00
    厉害厉害
    exceloo
        16
    exceloo  
       2019-03-07 11:03:18 +08:00
    验证码是怎么解决的?
    bonfy
        17
    bonfy  
       2019-03-07 11:06:59 +08:00
    好像 repo 里没有 V2 啊,我没看错吧
    coeo91
        18
    coeo91  
       2019-03-07 11:12:23 +08:00 via iPhone
    验证码怎么过的
    newmind
        19
    newmind  
       2019-03-07 11:15:04 +08:00
    这么多网站 也是个强人
    zxcvsh
        20
    zxcvsh  
       2019-03-07 11:29:57 +08:00 via iPhone
    项目没看,但是楼主有自动化识别验证码方面的研究可以单独开贴讲解一下
    CriseLYJ
        21
    CriseLYJ  
    OP
       2019-03-07 11:31:36 +08:00
    @bonfy 写错了。。。。。。。
    CriseLYJ
        22
    CriseLYJ  
    OP
       2019-03-07 11:31:52 +08:00
    @zxcvsh 可以的可以的,
    claymore94
        23
    claymore94  
       2019-03-07 11:33:42 +08:00
    验证码看了下是下载验证码图片到本地 input 阻塞,手动输入的
    tanranran
        24
    tanranran  
       2019-03-07 11:35:08 +08:00
    666


    mobaidalao
    CriseLYJ
        25
    CriseLYJ  
    OP
       2019-03-07 11:37:23 +08:00
    还是要你们多多支持,嘻嘻
    Lninn
        26
    Lninn  
       2019-03-07 12:26:52 +08:00 via Android
    不得不承认你很强👍
    fazero
        27
    fazero  
       2019-03-07 12:33:42 +08:00 via iPhone
    雪球网可以吗
    zwpaper
        28
    zwpaper  
       2019-03-07 12:39:14 +08:00 via iPhone
    解决了广大爬虫的第一步,有想法
    CriseLYJ
        29
    CriseLYJ  
    OP
       2019-03-07 12:59:11 +08:00
    @zwpaper 哈哈从头开始
    CriseLYJ
        30
    CriseLYJ  
    OP
       2019-03-07 12:59:30 +08:00
    我会去尝试你们给我提的建议!
    daydaydayup
        31
    daydaydayup  
       2019-03-07 13:00:21 +08:00 via iPhone
    star 一波
    CriseLYJ
        32
    CriseLYJ  
    OP
       2019-03-07 13:00:49 +08:00
    @daydaydayup 多谢支持,哈哈😆
    wulin
        33
    wulin  
       2019-03-07 13:15:55 +08:00
    star 支持一波
    CriseLYJ
        34
    CriseLYJ  
    OP
       2019-03-07 13:21:05 +08:00
    @wulin 感谢感谢
    CriseLYJ
        35
    CriseLYJ  
    OP
       2019-03-07 13:22:08 +08:00
    评论是怎样加图片的啊啊啊啊啊啊
    exip
        36
    exip  
       2019-03-07 13:27:30 +08:00 via Android
    像微信这种需要手机端扫码的怎么破?
    CriseLYJ
        37
    CriseLYJ  
    OP
       2019-03-07 13:34:22 +08:00
    @exip 这个你必须要手动扫码哦!
    leesymbol
        38
    leesymbol  
       2019-03-07 13:41:59 +08:00
    谢谢
    xpresslink
        39
    xpresslink  
       2019-03-07 13:45:23 +08:00
    star 为敬。
    CriseLYJ
        40
    CriseLYJ  
    OP
       2019-03-07 13:55:54 +08:00
    @xpresslink 多谢兄弟
    Etuloser
        41
    Etuloser  
       2019-03-07 13:57:40 +08:00
    CriseLYJ
        42
    CriseLYJ  
    OP
       2019-03-07 14:01:47 +08:00
    谢谢你们🙏
    martyartrt1
        43
    martyartrt1  
       2019-03-07 14:05:15 +08:00
    1688 搞一个
    CriseLYJ
        44
    CriseLYJ  
    OP
       2019-03-07 14:09:24 +08:00
    OOK
    CriseLYJ
        45
    CriseLYJ  
    OP
       2019-03-07 14:09:54 +08:00
    @martyartrt1 可以尝试
    wutiaojian
        46
    wutiaojian  
       2019-03-07 14:12:13 +08:00
    验证码是滑块的,请问有么?
    justff
        47
    justff  
       2019-03-07 14:13:46 +08:00
    淘宝登录脚本 测试结果是
    File "taobao.py", line 32, in login
    login_links.click()
    selenium.common.exceptions.ElementNotVisibleException: Message: element not visi
    ble
    WaJueJiPrince
        48
    WaJueJiPrince  
       2019-03-07 14:14:18 +08:00
    @CriseLYJ 嗨,我看了您的 github 中的采集淘宝的爬虫代码,您采用的是 Sphash 的方式,但是淘宝应该需要登陆才能采集商品页面吧?也就是当我点击一类商品的时候会出现这种页面
    https://i.loli.net/2019/03/07/5c80b61730d91.png
    也就是要求登陆,请问您是怎么解决的呢?而且我在代码中似乎没有看到有关 Cookie 的信息。
    beneo
        49
    beneo  
       2019-03-07 14:18:05 +08:00
    @WaJueJiPrince 我也有同样的疑问,哈哈
    CriseLYJ
        50
    CriseLYJ  
    OP
       2019-03-07 14:22:21 +08:00
    @wutiaojian bilibili 那个就是
    WaJueJiPrince
        51
    WaJueJiPrince  
       2019-03-07 14:31:01 +08:00
    @beneo 您破解过淘宝登陆的验证码的那个吗?淘宝现在好像又升级了,似乎能检测到 Selenium,您有什么解决方案吗?
    CriseLYJ
        52
    CriseLYJ  
    OP
       2019-03-07 14:35:25 +08:00
    等我写说明文档
    tikazyq
        53
    tikazyq  
       2019-03-07 14:45:20 +08:00 via iPhone
    支持,可以加入到 crawlab 做测试哈
    CriseLYJ
        54
    CriseLYJ  
    OP
       2019-03-07 14:49:26 +08:00
    @tikazyq 多谢啦
    Liang
        55
    Liang  
       2019-03-07 14:52:13 +08:00
    大众点评、美团
    CriseLYJ
        56
    CriseLYJ  
    OP
       2019-03-07 14:52:52 +08:00
    @Liang 比较挑战性哦
    dadama
        57
    dadama  
       2019-03-07 14:52:59 +08:00 via Android
    想问一下淘宝的登录,验证码
    CriseLYJ
        58
    CriseLYJ  
    OP
       2019-03-07 14:53:00 +08:00
    哈哈
    ligthdawn
        59
    ligthdawn  
       2019-03-07 15:18:56 +08:00
    楼主有试过淘宝登录的吗?公司的电脑,不管上淘宝的哪个商品网页,一律要登录,手动拉滑动条都登录不了。因为前阵子一直在用 selenium 绕过淘宝的登录,也绕不过去,一直提示拉滑动条,后面不了了之。怀疑公司的 ip 给拉进淘宝的恶意名单了,不管上哪个淘宝商品网页就要登录,切到另一个淘宝商品网页又要登录,很烦。楼主有好办法吗?
    littleangel
        60
    littleangel  
       2019-03-07 15:19:29 +08:00
    star 已递给大佬
    woshipanghu
        61
    woshipanghu  
       2019-03-07 15:20:55 +08:00
    美团外卖试试看 挺难搞定的
    jucelin
        62
    jucelin  
       2019-03-07 16:03:46 +08:00
    LZ 试试这个 http://wsjs.saic.gov.cn
    oszlso
        63
    oszlso  
       2019-03-07 16:12:19 +08:00
    登陆 Apple ID
    saltxy
        64
    saltxy  
       2019-03-07 16:34:37 +08:00
    大佬,已 star
    konikoo
        65
    konikoo  
       2019-03-07 16:35:43 +08:00
    淘宝的反爬虫很厉害,不知道 lz 这个的成功率是多少。
    之前查过比较好的解决方案是用 pyppeteer
    konikoo
        66
    konikoo  
       2019-03-07 16:39:19 +08:00
    @ligthdawn 用 pyppeteer, 不要用 selenium,webdriver 一启动就直接被判定为爬虫,之后哪怕手动输入密码都不会验证通过。
    或者玄学一下,用 firefox59.0.2 这个版本。同样的脚本和 selenium。这个版本的火狐绝大概率不会出现反爬虫。
    WaJueJiPrince
        67
    WaJueJiPrince  
       2019-03-07 16:45:53 +08:00
    @konikoo 淘宝的判断 Selenium 的原理是什么呢?
    laoyuan
        68
    laoyuan  
       2019-03-07 16:55:33 +08:00
    没有煎蛋妹子图差评
    konikoo
        69
    konikoo  
       2019-03-07 17:04:08 +08:00
    @WaJueJiPrince 你可以上网搜下,记得是会检查一个属性是不是为真。直接在浏览器的控制台也可以查看,手动启动和 selenium 启动之后的属性是相反的。
    CriseLYJ
        70
    CriseLYJ  
    OP
       2019-03-07 17:18:23 +08:00
    被禁言了。。。
    ismyyym
        71
    ismyyym  
       2019-03-07 17:23:25 +08:00
    你这个背景颜色,看着字好难受
    CriseLYJ
        72
    CriseLYJ  
    OP
       2019-03-07 17:24:21 +08:00
    @ismyyym 我争取换一个。。。。哈哈
    aoe2ex
        73
    aoe2ex  
       2019-03-07 17:27:03 +08:00
    加星星,加星星
    whitewolf
        74
    whitewolf  
       2019-03-07 17:28:50 +08:00
    赶紧 star 一下 t
    CriseLYJ
        75
    CriseLYJ  
    OP
       2019-03-07 17:31:51 +08:00
    @whitewolf 多谢大哥照顾,哈哈
    halfer53
        76
    halfer53  
       2019-03-07 17:38:32 +08:00
    @WaJueJiPrince window.navigator.webdriver === true,当然,这只是最基本的反爬虫
    WaJueJiPrince
        77
    WaJueJiPrince  
       2019-03-07 17:40:23 +08:00
    @halfer53 谢谢 这个看到了 但是感觉淘宝应该不会只是设置了这个
    hiyouli
        78
    hiyouli  
       2019-03-07 17:49:18 +08:00
    哎哟,这个不得了呢。
    CriseLYJ
        79
    CriseLYJ  
    OP
       2019-03-07 18:06:20 +08:00 via iPhone
    多谢支持
    becauseIdo
        80
    becauseIdo  
       2019-03-07 18:07:51 +08:00
    66666
    zhou00
        81
    zhou00  
       2019-03-07 18:45:49 +08:00
    感谢分享
    lance7in
        82
    lance7in  
       2019-03-07 19:29:59 +08:00
    佩服佩服
    CriseLYJ
        83
    CriseLYJ  
    OP
       2019-03-07 20:38:04 +08:00 via iPhone
    多谢支持💗💗
    CriseLYJ
        84
    CriseLYJ  
    OP
       2019-03-07 21:04:36 +08:00 via iPhone
    🙆🏻‍♂️🙆🏻‍♂️🙆🏻‍♂️
    lawler
        85
    lawler  
       2019-03-07 21:39:06 +08:00
    @ligthdawn 你们公司有网监吧。这像是劫持带来的问题。。
    CriseLYJ
        86
    CriseLYJ  
    OP
       2019-03-07 21:40:27 +08:00
    可以回去再试试
    515576745
        87
    515576745  
       2019-03-07 22:17:45 +08:00
    淘宝那个之前研究过几天,发现用 selenium 基本都是暴毙,不管怎么修改 driver 内部属性淘宝还是能检测出来,直接出来滑动条。期待 lz 更新。~
    另外知乎 lz 是自己分析 js 吗?我看好多网上的爬虫分析都是到 js 这块就放弃了。。
    CriseLYJ
        88
    CriseLYJ  
    OP
       2019-03-07 22:19:50 +08:00
    @515576745 淘宝确实有点棘手,毕竟是阿里的,全是大佬!
    CriseLYJ
        89
    CriseLYJ  
    OP
       2019-03-07 22:39:33 +08:00
    新增下载网易云的音乐!如果时间够多,我会尝试下载会员音乐!
    CriseLYJ
        90
    CriseLYJ  
    OP
       2019-03-08 00:07:53 +08:00
    帖子不能沉,
    kajweb
        91
    kajweb  
       2019-03-08 00:30:53 +08:00
    https://mp.dayu.com
    这个搞一下?
    lovestudykid
        92
    lovestudykid  
       2019-03-08 01:07:47 +08:00
    有 reCAPTCHA 的登陆怎么搞
    May725
        93
    May725  
       2019-03-08 01:08:05 +08:00
    强啊
    enrolls
        94
    enrolls  
       2019-03-08 01:41:38 +08:00
    关于对无头的检测,@konikoo 提及的 navigator.plugins.length == 0 是特征之一。https://antoinevastel.com/bot%20detection/2017/08/05/detect-chrome-headless.html
    theks
        95
    theks  
       2019-03-08 02:39:58 +08:00 via Android
    不错。如果能持续维护、适配就好了。加油。
    CriseLYJ
        96
    CriseLYJ  
    OP
       2019-03-08 08:55:14 +08:00
    @theks 会持续维护的,
    CriseLYJ
        97
    CriseLYJ  
    OP
       2019-03-08 09:58:50 +08:00
    顶一下
    Sxxiong
        98
    Sxxiong  
       2019-03-08 10:02:05 +08:00
    大佬你好 我是个初学者 想问问 selenium+webdriver 能很好的判断网页加载完成吗 因为看到有时候浏览器标签页 logo 还在 loading 代码执行了登录 另外还有模拟点击的话 怎么避免网络影响 有没有适合初学者看的文档推荐一下
    附一个用 request 没解决的网站: https://eu.battle.net/shop/zh/checkout/key-lookup
    cmlhaha
        99
    cmlhaha  
       2019-03-08 10:07:08 +08:00 via Android
    顶一下,标记
    CriseLYJ
        100
    CriseLYJ  
    OP
       2019-03-08 10:31:09 +08:00
    @cmlhaha 多谢
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3411 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 11:00 · PVG 19:00 · LAX 03:00 · JFK 06:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.