python selenium采集速卖通_爬虫 | 大写牛逼,用 Python 登录主流 24 个网站

news/2024/5/13 0:41:30/文章来源:https://blog.csdn.net/weixin_39677419/article/details/111179238
802f5a2e7a06748fb02db36754f75b23.png

爬虫脚本是大家经常用到的,那就避开不了登录 这一关。

使用Python一般需要request库,补充 header 中的 post 要素,有些还会有 隐藏的 hidden 参数,可以通过浏览器 F12 或者元素审查来发现,对于初学者来说都是一个坑。

还有需要解决验证码的问题,一种方法是下载验证码图片识别验证码再次post,或者使用云打码平台。当然,有些验证码及其变态就不那么容易解决了,比如选字顺序、滑块、12306那种人为都会选错的。

本篇分享一个GitHub项目《awesome-python-login-model》,主要就是利用Python解决登录主流平台的,包含24个主流平台,目前在GitHub上已经表星11.8k了。

Github链接:https://github.com/Kr1s77/awesome-python-login-model

已完成的主流网站

61e0edf4cb313195535227507a2afa94.png


上面是作者已经完成的一些主流网站了,其中有的是通过 selenium登录,有的是通过 抓包直接模拟登录,有的是利用 scrapy框架。

这个很容易理解,因为有的网站设计比较复杂,通过抓包很难实现模拟登录,这样用 selenium+webdriver 就会相对轻松一些。

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

模拟登录GitHub

这里给大家展示一个模拟登录GitHub的代码。

"""
github第二种登录方式
info:
author:CriseLYJ
github:https://github.com/CriseLYJ/
update_time:2019-3-7
"""

import re
import requests
from lxml import etree


class Login(object):
class GithubLogin(object):

    def __init__(self, email, password):

        # 初始化信息
        self.headers = {
            'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36',
            'Referer': 'https://github.com/',
            'Host': 'github.com'
        }

        self.session = requests.Session()
        self.login_url = 'https://github.com/login'
        self.post_url = 'https://github.com/session'
        self.session = requests.Session()

        self.email = email
        self.password = password
    # 模拟登录
    def login_GitHub(self):

        # 登录入口
        post_data = {
            'commit': 'Sign in',
            'utf8': '✓',
            'authenticity_token': self.get_token(),
            'login': self.email,
            'password': self.password
        }
        resp = self.session.post(
            self.post_url, data=post_data, headers=self.headers)

        print('StatusCode:', resp.status_code)
        if resp.status_code != 200:
            print('Login Fail')
        match = re.search(r'"user-login" content="(.*?)"', resp.text)
        user_name = match.group(1)
        print('UserName:', user_name)

        response = self.session.post(self.post_url, data=post_data, headers=self.headers)

        print(response.status_code)
        print(post_data)

        if response.status_code == 200:
            print("登录成功!")
        else:
            print("登录失败!")
    # 获取token信息
    # Get login token
    def get_token(self):

        response = self.session.get(self.login_url, headers=self.headers)

        html = etree.HTML(response.content.decode())

        token = html.xpath('//input[@name="authenticity_token"]/@value')[0]

        return token
        if response.status_code != 200:
            print('Get token fail')
            return None
        match = re.search(
            r'name="authenticity_token" value="(.*?)"', response.text)
        if not match:
            print('Get Token Fail')
            return None
        return match.group(1)
if __name__ == '__main__':
    email = input('请输入您的账号: ')
    password = input('请输入您的密码: ')
    email = input('Account:')
    password = input('Password:')

    login = Login(email, password)
    login = GithubLogin(email, password)
    login.login_GitHub()

相信这对初学爬虫的朋友是一个很好的教程。

但提示一下,模拟登录的代码随时都有可能失效,因为前端的网页HTML、CSS、JS等结构可能会根据公司业务调整之类的发生变化。

所以,重点是掌握了各种技巧,学会这些完全可以自己调试完成登录,那时候你也可以成为 contributor 了!

Github链接:https://github.com/Kr1s77/awesome-python-login-model

公众号文末改版了,如果觉得有帮助,还请多多支持,欢迎 分享、点赞、在看 三连。

618cf8c640e595e11d1b69cf2cf56105.gif

c74a5190990d65072a486f6dfdc37175.pnga694a86543847acd478ab49a2953f0fa.png

4c4b6c540d27d5c3bcf4d7ae1143d88a.gif

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_817274.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php建站错误代码0xc0000005,0xc0000005错误代码怎么解决?

在使用电脑过程中经常会出现某些错误代码,如0xc0000005错误故障,造成电脑无法正常运行,这要怎么办呢?今天小编和大家分享电脑出现0xc0000005错误代码的解决方法。具体方法如下:1、首先按下“winr”打开运行&#xff0c…

网站服务器 64位,如何将win7系统从32位升级到64位_网站服务器运行维护,win7,32位,64位...

win10如何重置此电脑_网站服务器运行维护win10重置此电脑的方法是:1、点击【开始】按钮,进入设置;2、进入【更新和安全】选项,点击【恢复】;3、找到【重置此电脑】,点击【开始】;4、选择【保留我…

JPress v2.0-rc.6 发布,新增专业的 SEO 支持

JPress 是一个使用Java(JFinal、Jboot框架)开发的类似 WordPress 的系统,但更加侧重于企业营销和微信运营。 此版本,主要是完善对专业的 SEO 功能配置和支持,如下图所示: 以下是 JPress v2.0-rc.7 的更新内…

写个软件来防止服务器网站CPU百分百

2019独角兽企业重金招聘Python工程师标准>>> 问题: 大概每隔两个星期左右, 秋色园上服务器就会来一次CPU百分百,由于问题发生的概率极低,要它重现也难,所以只能意淫是内存太少的原故。 以前出现,远程上去结…

反击“猫眼电影”网站的反爬虫策略

001 前言 前两天在百家号上看到一篇名为《反击爬虫,前端工程师的脑洞可以有多大?》的文章,文章从多方面结合实际情况列举了包括猫眼电影、美团、去哪儿等大型电商网站的反爬虫机制。的确,如文章所说,对于一张网页&…

域名购买和网站备案心得

在上一篇部署云服务器的文章中,已经租用和部署好了服务器,那么就讲一下最麻烦的域名购买和备案。 1.域名购买 首先说一下域名购买,我是在腾讯云购买的,价格很便宜一年也就30左右,对比服务器价格便宜的多,…

开源项目大家谈-网站性能调校-Cache的使用

之所以用这个题目是因为很多人常常问我研究开源项目的意义,有一些开源项目在别人眼里看起来完全没有搞头,是一些没有实用价值的项目。其实开源项目往往是新技术的试验田,是全世界优秀程序开发者智慧的汇集,如果你仔细研读这些开源…

揭秘博友卡通身份 学做SEO链接诱饵

首先我们来揭秘一下各位博主的卡通身份,纯野随机选了几个博主,哈哈,真的是好逗啊。注:(若下面的卡通中没有你,可以留言,纯野下期可以把你给放上来亮相! 若是你不喜欢请通知纯野进行…

精选国外知名网站手机版网页设计欣赏

互联网发展如此的迅速,手机互联网用户逐渐成了一个相当庞大的群体。所以我们的网站必须去考虑适应手机互联网用户的需求,从传统的电脑互联网到手机互联网(更准确的说是移动互联网)需要有至少两个方面的考虑,一是移动互联网用户的带宽是有限制…

【私活案例3】 获取某市网站普通高中录取分数小工具

私活案例3:获取某市网站普通高中录取分数小工具0 前言年龄越来越大,记性越来越差,只想把自己一些零零散散的私活经历记录下来,日后回头看,还能想起这些小项目、小技术点,还能想起那些和客户、朋友打交道的各…

使用whos.amung.us实时统计网站在线人数

如果需要在前台显示网站实时在线人数,可以使用whos.amung.us提供的一款在线人数实时统计工具,它可以统计你的网站或者博客当前在线人数,支持自定义颜色。 打开:https://whos.amung.us/ 滑动到下面: 直接复制代码&am…

转:利用ArcGIS Server REST API实现对Feature的编辑操作 - 开源IT技术网站

ArcGIS API for Flex中提供了一些工具实现对Feature的编辑操作,不过其实质是对ArcGIS Server REST API的再包装。为了更大的灵活性,在这里我们谈一下如何直接调用ArcGIS Server REST API来实现对Feature的新增、更新、删除操作。 FeatureServer 对Featur…

《大型网站系统与Java中间件》读书笔记 (中)

前言 只有光头才能变强。 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y 回顾上一篇: 《大型网站系统与Java中间件》读书笔记(一)这周周末读了第四章,现在过来做做笔记&#…

.NET技术+25台服务器怎样支撑世界第54大网站

摘要:同时使用Linux和Windows平台产品,大量使用静态的方法和类,Stack Overflow是个重度性能控。同时,取代横向扩展,他们坚持着纵向扩展思路,因为“硬件永远比程序员便宜”。 StackOverflow是一个IT技术问答…

钓鱼网站盯梢微博 360“围剿中奖骗子”

一段时间以来,随着“织围脖”的兴起,微博晋升为全民级互联网应用,而一些曾以短信、聊天工具为主要传播载体的钓 鱼网站也开始悄悄出现在微博上,其伪装方法仍然是老套的——“您中奖了”。对此,360安全卫士官方微博发起…

网站域名续费 服务器续费,域名续费与服务器续费

域名续费与服务器续费 内容精选换一换华为云帮助中心,为用户提供产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题、视频帮助等技术文档,帮助您快速上手使用华为云服务。帮助用户完成云服务器备份存储库的创建,快速购买…

hexo博客pc端不能访问手机移动端可以访问_Hexo+Kaze+Gitee Pages 搭建静态博客网站...

前言建网站本身是一个很大的工程,涉及前端页面的搭建,网站数据的存储,还要购置服务器资源,甚至是后期的维护,过程相当繁琐。不过如果仅仅是想搭建个人的网站,写写博客,想要美观,又不…

创意无极限:创意产品闪购网站Fab融资1.05亿美元

据国外媒体报道,美创意产品闪购网站Fab今天宣布,公司成功获得1.05亿投资。这个消息最先是由《华尔街日报》爆出的,之后Fab CEO Jason Goldberg在一篇博文中证实了这一消息。 此轮融资之前就有风声传出,而此次融资成功也确实让Fab如…

网易云音乐刷听歌量网站_【java+selenium】网易云音乐刷累计听歌数

背景应该是在去年的时候,刷知乎看到一个问题,大概是说怎么刷网易云音乐个人累计听歌数,然后有一个高赞回答,贴了一段js代码,直接在浏览器console执行就可以了。当时试了下,直接一下子刷了有好几万。悲剧的是…

釜底抽薪闭数千非法网站 新网用行动担起社会责任

非法网站危害社会,必须严惩不贷。近日,作为域名注册领域的领先企业,新网表率同行,近段时间内关闭了数千家非法网站,对网络违法行为打出了一记重拳。 新网重拳出击 数千非法网站无处遁形(图片来源于网络) 众所周知&…