selenium验证码登录_如何用 Python 登录主流网站,爬取一些需要的数据

news/2024/5/8 16:33:27/文章来源:https://blog.csdn.net/weixin_39807859/article/details/111003087

1f569777fd760d77979dbd87af79f66f.png

最近收集了一些网站的登陆方式和爬虫程序,有的通过 selenium 登录,有的则通过抓包直接模拟登录。作者希望该项目能帮助初学者学习各大网站的模拟登陆方式,并爬取一些需要的数据。

作者表示模拟登陆基本采用直接登录或者使用 selenium+webdriver 的方式,有的网站直接登录难度很大,比如 qq 空间和 bilibili 等,采用 selenium 登录相对轻松一些。虽然在登录的时候采用的是 selenium,但为了效率,我们也可以在登录后维护得到的 cookie。登录后,我们就能调用 requests 或者 scrapy 等工具进行数据采集,这样数据采集的速度可以得到保证。

目前已经完成的网站有:

  • Facebook
  • 无需身份验证即可抓取 Twitter 前端 API
  • 微博网页版
  • 知乎
  • QQZone
  • CSDN
  • 淘宝
  • Baidu
  • 果壳
  • JingDong 模拟登录和自动申请京东试用
  • 163mail
  • 拉钩
  • Bilibili
  • 豆瓣
  • Baidu2
  • 猎聘网
  • 微信网页版登录并获取好友列表
  • Github
  • 爬取图虫相应的图片

如下所示,如果我们满足依赖项,那么就可以直接运行代码,它会在图虫网站中下载搜索到的图像。

1fb6edec6b453d014bd9e8b2f402037e.png

如下所示为搜索「秋天」,并完成下载的图像:

d5a5da85387da896b2a9baa373bfcdf1.png

每一个网站都会有对应的登录代码,有的还有数据的爬取代码。以豆瓣为例,主要的登录函数如下所示,它会获取验证码、处理验证码、返回登录数据完成登录,并最后保留 cookies。

def login():

captcha, captcha_id = get_captcha()

# 增加表数据

datas[ captcha-solution ] = captcha

datas[ captcha-id ] = captcha_id

login_page = session.post(url, data=datas, headers=headers)

page = login_page.text

soup = BeautifulSoup(page, "html.parser")

result = soup.findAll( div , attrs={ class : title })

#进入豆瓣登陆后页面,打印热门内容

for item in result:

print(item.find( a ).get_text())

# 保存 cookies 到文件,

# 下次可以使用 cookie 直接登录,不需要输入账号和密码

session.cookies.save()

其中获取并解决验证码的函数如下:

def get_captcha():

获取验证码及其ID

r = requests.post(url, data=datas, headers=headers)

page = r.text

soup = BeautifulSoup(page, "html.parser")

# 利用bs4获得验证码图片地址

img_src = soup.find( img , { id : captcha_image }).get( src )

urlretrieve(img_src, captcha.jpg )

try:

im = Image.open( captcha.jpg )

im.show - 又一个WordPress站点()

im.close()

except:

print( 到本地目录打开captcha.jpg获取验证码 )

finally:

captcha = input( please input the captcha: )

remove( captcha.jpg )

captcha_id = soup.find(

input , { type : hidden , name : captcha-id }).get( value )

return captcha, captcha_id

当然这些都是简单的演示,在 GitHub 项目中可以找到更多的示例。此外,作者表明由于网站策略或者样式改变而导致代码失效,我们也可以提 Issue 或 Pull Requests。最后,该项目未来还会一直维护,很多东西哦也会慢慢改进,项目作者表明:

  • 项目写了一段时间后,发现代码风格、程序易用性、可扩展性、代码的可读性,都存在一定的问题,所以接下来最重要的是重构代码,让大家可以更容易的做出一些自己的小功能;
  • 如果读者觉得某个网站的登录很有代表性,可以在项目 issue 中提出;
  • 网站的登录机制有可能经常的变动,所以当现在的模拟的登录的规则不能使用的时候,请项目在 issue 中提出。

项目地址https://github.com/ape-python/awesome-python-login-model

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

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

相关文章

PHP网站目录管理脚本,兼容PHP5的PHP目录管理函数库

兼容PHP5的PHP目录管理函数库更新时间:2008年07月10日 23:43:03 作者:php下进行目录的一些操作,经常用到的方法主要能兼容: PHP 5一、chdir -- 改变目录语法:bool chdir ( string directory )返回值:整数…

服务器开机修复,win10开机怎么进修复模式_网站服务器运行维护

win10开机闪屏进不去怎么解决_网站服务器运行维护win10开机闪屏进不去的解决方法:首先重启2次进入安全模式;然后点击疑难解答-高级选项;最后在高级选项中选择恢复到之前的正确系统即可。win10开机怎么进修复模式1、首先,大家先打开…

怎末吧做好的网站放到服务器里,将做好的网站放到云服务器上

将做好的网站放到云服务器上 内容精选换一换通过华为云备案,需要先购买华为云中国大陆节点服务器,用于网站备案使用,后称为“备案服务器”。目前可用于华为云备案的服务器,请参见备案服务器。如果您的华为云帐号A中没有可备案的服…

常见的网站服务器架构有哪些?

以下的架构都是在假设已经优化过linux内核的情况下进行:初级篇:(单机模式)假设配置:(Dual core 2.0GHz,4GB ram,SSD)基础框架: apache(PHP) Mysql / IIS MSSQL(最基础…

php5.2架设网站,FreeBSD 6.2快速架设网站服务器教程(Apache2.2.X+MySQL5.X.X+ PHP5.2.X+ ZendOptimizer-3.2.X)...

世界网络教研室整理1、 安装设置prozilla(port下载加速)当然是首先安装下载加速啦,不然下面的安装会好慢的安装使用如下指令:#cd /usr/ports/ftp/prozilla#make install clean中间会出现:这是例子和HTML格式的手册页,不会用以后想…

JSsearch实现在购物网站输入后推荐联想的效果

在篇文章里,我们主要讲解一下JSsearch如何完成推荐的功能 首先,登陆码云下载JSsearch: https://gitee.com/skyogo/JSsearch 我们下载JSsearch1.0 Community版本 下载好了之后我们再下载一个类似淘宝的购物页面(页面由达内童程制作…

自学电脑编程_有哪些高质量的自学网站

1、羽兔网羽兔网是一个以设计类为主的自学网站,有大量免费课程给大家学习,不管是平面设计,ui设计,电商设计各类热门设计软件课程都有。羽兔网-视频教程线上学​www.yutu.cn2、溜溜自学网一个热门专业为主的自学网,想学…

dw模板文件的扩展名_网站单页面模板制作和dede默认文件夹名称解释

之前我们已经完成了网站首页的制作,操作过就有经验了,其他的工作就简单很多。这里来说一下单页面的模板制作。一 、和首页一样,首先用仿站小工具输入要下载的单页面域名,下载网站内容,上次下载的首页内容可以删掉了二 …

vs新建网站选项只有wcf服务器,WCF教程一:新建并部署

一、概述Windows Communication Foundation(WCF)是由微软发展的一组数据通信的应用程序开发接口,可以翻译为Windows通讯接口,它是.NET框架的一部分。由 .NET Framework 3.0 开始引入。WCF的最终目标是通过进程或不同的系统、通过本地网络或是通过Interne…

当你无法登录http://www.jetbrains.com/系列的网站

如果对您有用,希望能得到您的三连支持哦!!! 首先排除你的网络是否有问题(基本上都不是这个的问题) 接着就是看你的hosts的文件,因为我们都是因为使用破解包的时候修改了hosts文件,所以我来告诉你怎么解决…

给网站套上Cloudflare(以腾讯云为例)

Cloudflare 用来干什么 Cloudflare 主要能做以下几件事: CDNDDNS 说人话的话,上面这些有啥作用呢: 提升安全(抵御攻击、隐藏主站地址)提升性能(提升载入速度) 当然,Cloudflare 还…

主机备案租用价_云服务器与虚拟主机搭建网站有何不同?选择哪家好?哪家最优惠?...

云服务器与虚拟主机都可以搭建网站,很多小伙伴都傻傻的分不清。今天就详细说一下二者具体区别以及搭建网站难以程度,“工欲善其事必先利其器”要想知道二者不同处我们首先得知道云服务器与虚拟主机分别是什么!一、云服务器概念与其搭建网站的…

帝国网站导航config.php,帝国cms怎么改英文导航

帝国cms怎么改英文导航?本文实例讲述了帝国cms实现newsnav标签改英文导航的方法。分享给大家供大家参考。具体实现方法如下:帝国CMS把"首页"改为"Home" 做英文网站的时候会用到,最简单的方法是修改帝国CMS语言包,当然也有其他方法.修…

还未做好的一个企业网站首页界面,暂时放这了

转载于:https://www.cnblogs.com/juhnpen/archive/2008/07/28/1254225.html

如何才能做到网站高并发访问?

http://oldboy.blog.51cto.com/2561410/615721 MSN/QQ 分享本资源给:MSN QQ好友 论坛 分享本资源给:论坛好友(UBB代码) 开心 人人 豆瓣 新浪微博 博主的更多文章>> 如何才能做到网站高并发访问? 2011-07-18 15:57:03标签:高可用 高并…

Maximum.TV 发布西班牙语Silverlight TV网站

Maximum.TV 发布西班牙语Silverlight TV网站Maximum.TV(观看需要美国代理)发布了一个采用Silverlight技术开发的视频网站。 这是一个了不起的采用IIS平滑流媒体的案例。他们制作的视频墙用鼠标来确定那一个视频的声音应该播放。下边这张图上展示了同时播…

网站安装打包 新建网站[四][创建网站] 中

在IIS6.0的帮助文档中,对于创建IIS,提供了三种程序管理方法,一种是WMI,另一种是ADSI,还有一种是命令行方法。 这里,采用网上代码比较多的ADSI编程方式进行。 用C#进行ADSI编程,需要引用添加名称空间&#x…

前端开发:静态网站与动态网站的区别是什么?

很多刚入门的前端开发工程师不是很清楚静态网站与动态网站的区别,下面和千锋广州小编一起来看看吧! 静态网站只需要通过浏览器进行解析即可,因此网站建设好后可以离线打开查看,动态网站需要通过一个额外的编译解析过程&#xff0…

网站可用性测试全过程

一、何谓“可用性测试” “可用性测试”也可称之为“用户体验测试”,是通过产品功能设计测试任务,让用户按照任务完成一些真实测试,检验产品的可用性,作为产品后续改进和完善的重要参考依据。 二、为什么要进行可用性测试 1. 存在…

一个通过网站和用户名生成密码的小工具,附源码。

最近,某些网站的用户名密码遭到泄漏,对于我们用户来说,更好的管理我们的密码变得愈加重要。 登录多个网站使用同样的用户名,密码有着潜在的隐患,对不同的网站使用不同的用户名,密码又难于记忆,容…