在学习网络爬虫时,单纯的静态页面数据很难满足我们的“想学”,而现在“好奇”的数据往往隐藏得很深或者必须动态加载。今天我们就来看看吧。分享一下你的QQ邮箱的模拟浏览器登录体验(我们只是在学习、分享、交流)。
1. 前期准备
在“开始”之前,您需要准备好两个工具。一个是需要模拟浏览器登录的模块Selenium,以及对应的驱动插件chromedriver.exe。
我们将使用Selenium,一个模拟浏览器登录的模块。
安装硒模块。
pipinstallselenium 下载驱动程序插件chromedriver.exe。插件版本必须与此处使用的Google Chrome 版本相同。您可以在浏览器的网页中输入地址chrome://version/。显示浏览器版本。
然后访问驱动下载页面http://chromedriver.storage.googleapis.com/index.html,下载相同或相似版本的chromedriver.exe。
解压后会放在指定位置(你可以放在任何你知道位置的地方)。把它放在这里。
在文件路径“F:\\PycharmProjects\\tensorflow”下。
2. 页面快速分析(想了解效果请跳过此步骤)
打开QQ邮箱官网(https://mail.qq.com/),得到如下界面。 登录的方式有很多种,但是微信登录只能通过扫描二维码来实现,因为我们要使用Python自动发送。批量发送邮件时,自然是扫描微信二维码登录。这是不现实的(如果有专家可以克服这个过程,他愿意分享)。
登录QQ有两种方式。点击您登录的QQ头像(可以通过cookie实现)或直接使用密码登录。今天我想向您介绍后者。
点击账号和密码登录,你会看到URL和之前一样。
抓包后返回一长串referrer信息。这是登录页面的实际URL 吗?
请复制Referer连接信息并在浏览器中查看。现在,我们不再访问官方邮箱网站,而是直接从这个连接开始。
但是,这个连接信息包括扫码或者之前登录的cookie信息。点击密码并登录后,您将被带到一个非常简单的表单页面。是的,这就是我们正在寻找的。我检查了密码登录元素,并在类名为switch_btn 的标签下找到了它。
3,完整代码
嗯,QQ邮箱密码登录方法大概就是这个意思。现在我们直接上代码。
from Selenium import webdriverfrom selenium.webdriver.chrome.options import Options导入时间# 浏览器初始化和配置chrome_options=Options()# 1. user-agentchrome_options.add_argument('User-Agent='your own user-agent')# 2 添加编号1:允许加载图片。 No_Image_loading={'profile.management_default_content_settings': 1}chrome_options.add_experimental_option('prefs', No_Image_loading)path='F:' \PycharmProjects\\tensorflow \\chromedriver.exe' # 更改为自己的插件路径driver=webdriver .Chrome( executable_path=path, chrome_options=chrome_options)# 登录页面driver.get('https://xui.ptlogin2.qq.com/cgi-bin/xlogin? appid=522005705daid=4s_url=https://mail.qq.com/cgi-bin/login ?vt=Passport%26vm=wpt%26ft=loginpage%26target=style=25low_login=1proxy_url=https://mail.qq.com/proxy.htmlneed_qr=0hide_border=1border_radius=0self_regurl=http://zc.qq.com/chs/index.html?type=1app_id=11005?t=registpt_feedback_link=http://support.qq.com/discuss/350_1.shtmlcss=https://res.mail.qq.com/zh_CN/htmledition/style/ptlogin_input_for_xmail440503.css')time.sleep(2) # 切换到“账号和密码” Login" driver.find_element_by_id('switcher_plogin').click() # 点击# 输入账户信息driver. find_element_by_id('u').send_keys('我的QQ') 你已经掌握了登录QQ邮箱了,那么如何登录其他网页呢?现在就去尝试一下吧!
——————————————————————————
版权声明:本文转载于网络,版权归作者所有。如有侵权,请联系本站编辑删除。