第五篇 - Selenium突破反爬获取qq邮件标题
from selenium import webdriver
from selenium.webdriver import ActionChains #1.打开登陆页面
wd = webdriver.Chrome()
wd.implicitly_wait(10)
wd.get('https://mail.qq.com/') #2.切换到账号密码登陆
login_frame = wd.find_element_by_id('login_frame')
wd.switch_to.frame(login_frame)
wd.find_element_by_id('switcher_plogin').click() #3.输入账号密码
u = wd.find_element_by_id('u')
u.send_keys('')#---------------此处填QQ号
p = wd.find_element_by_id('p')
p.send_keys('')#----------------此处填QQ邮箱密码 #4.点击登陆按钮
wd.find_element_by_id('login_button').click() #5.点击收信
wd.find_element_by_id('folder_1').click()
#6.切换到收信iframe框架里
main_frame = wd.find_element_by_id('mainFrame')
wd.switch_to.frame(main_frame) #获取第一个tab页
h = wd.current_window_handle #通过css选择器,找到我们邮件列表里面的内容
email_eles = wd.find_elements_by_css_selector('.toarea .F, .toarea .M')
email_eles_count = len(email_eles)
#遍历每一封邮件
for i in range(email_eles_count):
#获取邮件列表的邮件项
email_ele = wd.find_elements_by_css_selector('.toarea .F, .toarea .M')[i]
#右击邮件项
ActionChains(wd).context_click(email_ele).perform()
#然后选择在新窗口打开
wd.find_elements_by_css_selector('.menu_item')[1].click()
#切换到邮件详情页tab
email_detail_handle = wd.window_handles[2]#----------此处的数字个人可能不同,1或者2,可自行调试
wd.switch_to.window(email_detail_handle)
#切换到内容部分
main_frame = wd.find_element_by_id('mainFrame')
wd.switch_to.frame(main_frame)
#获取邮件的标题
subject = wd.find_element_by_id('subject').text
#获取邮件的内容
# content = wd.find_element_by_id('mainContentContainer').text
print(subject)
#关闭tab页
wd.close()
#回到第一个tab页,即邮件列表tab
wd.switch_to.window(h)
#又切换到列表部分
main_frame = wd.find_element_by_id('mainFrame')
wd.switch_to.frame(main_frame) wd.quit()
第五篇 - Selenium突破反爬获取qq邮件标题的更多相关文章
- 【Python3爬虫】突破反爬之应对前端反调试手段
一.前言 在我们爬取某些网站的时候,会想要打开 DevTools 查看元素或者抓包分析,但按下 F12 的时候,却出现了下面这一幕: 此时网页暂停加载,自动跳转到 Source 页面并打开了一个 ...
- Scrapy爬取美女图片第四集 突破反爬虫(上)
本周又和大家见面了,首先说一下我最近正在做和将要做的一些事情.(我的新书<Python爬虫开发与项目实战>出版了,大家可以看一下样章) 技术方面的事情:本次端午假期没有休息,正在使用fl ...
- 第五篇 :微信公众平台开发实战Java版之如何获取公众号的access_token以及缓存access_token
一.access_token简介 为了使第三方开发者能够为用户提供更多更有价值的个性化服务,微信公众平台 开放了许多接口,包括自定义菜单接口.客服接口.获取用户信息接口.用户分组接口.群发接口等, 开 ...
- Python爬虫入门教程 63-100 Python字体反爬之一,没办法,这个必须写,反爬第3篇
背景交代 在反爬圈子的一个大类,涉及的网站其实蛮多的,目前比较常被爬虫coder欺负的网站,猫眼影视,汽车之家,大众点评,58同城,天眼查......还是蛮多的,技术高手千千万,总有五花八门的反爬技术 ...
- 第三百四十五节,Python分布式爬虫打造搜索引擎Scrapy精讲—爬虫和反爬的对抗过程以及策略—scrapy架构源码分析图
第三百四十五节,Python分布式爬虫打造搜索引擎Scrapy精讲—爬虫和反爬的对抗过程以及策略—scrapy架构源码分析图 1.基本概念 2.反爬虫的目的 3.爬虫和反爬的对抗过程以及策略 scra ...
- selenium + chrome 被检测,反反爬小记
selenium + chrome 很多难以采集的网站都使用selenium爬取,但是后来发现selenium有特征值,会被检测出来,今天来小结一下反反爬方案 测试网站 全绿好像代表没被检测出 中间人 ...
- selenium无界面执行和反爬
selenium无界面执行和反爬 无界面执行 from selenium import webdriver from selenium.webdriver.chrome.options import ...
- 关于使用scrapy框架编写爬虫以及Ajax动态加载问题、反爬问题解决方案
Python爬虫总结 总的来说,Python爬虫所做的事情分为两个部分,1:将网页的内容全部抓取下来,2:对抓取到的内容和进行解析,得到我们需要的信息. 目前公认比较好用的爬虫框架为Scrapy,而且 ...
- Python爬虫入门教程 64-100 反爬教科书级别的网站-汽车之家,字体反爬之二
说说这个网站 汽车之家,反爬神一般的存在,字体反爬的鼻祖网站,这个网站的开发团队,一定擅长前端吧,2019年4月19日开始写这篇博客,不保证这个代码可以存活到月底,希望后来爬虫coder,继续和汽车之 ...
随机推荐
- java学习之—栈
/** * 栈 * Create by Administrator * 2018/6/11 0011 * 上午 10:20 **/ public class StackX { private int ...
- @Autowired 与@Resource的区别(详细)
参考:@Autowired 与@Resource的区别(详细) spring不但支持自己定义的@Autowired注解,还支持几个由JSR-250规范定义的注解,它们分别是@Resource.@Pos ...
- Servlet学习的一些笔记
Servlet一点笔记 Servlet:Server Applet,全称Java Servlet,是运行在Web服务器或应用服务器上的程序,它是作为来自Web浏览器或其他HTTP客户端的请求和HTTP ...
- 转 My97日历控件常用功能记录
My97相信大家都不陌生,应该是我所见过的最强大的一个日历控件了,最近的项目中也比较多地用到了此控件,而且项目中经常会有不同时间范围的需求,在此列出一些比较常用的日期范围格式的设置,尽管在My97的官 ...
- mybatis 批量查询参数语句
在mybatis 传入数组在sql语句中进行查询 1.传入一个map集合,已或者的形式拼接数组循环 <select id="selectUserByList" parame ...
- 今天开始学习模式识别与机器学习Pattern Recognition and Machine Learning (PRML),章节5.1,Neural Networks神经网络-前向网络。
话说上一次写这个笔记是13年的事情了···那时候忙着实习,找工作,毕业什么的就没写下去了,现在工作了有半年时间也算稳定了,我会继续把这个笔记写完.其实很多章节都看了,不过还没写出来,先从第5章开始吧, ...
- Upload Files In ASP.NET Core 1.0 (Form POST And JQuery Ajax)
Uploading files is a common requirement in web applications. In ASP.NET Core 1.0 uploading files and ...
- 【SSL】OV、DV和EV证书的区别
关于https证书 https协议需要到ca申请证书,一般免费证书很少,需要交费. http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议. http和https使用 ...
- 关于读取mapper的两种方式
第一种: 第二种:
- PC平台的SIMD支持检测
如果我们希望在用SIMD来提升程序处理的性能,首先需要做的就是检测程序所运行的平台是否支持相应的SIMD扩展.平台对SIMD扩展分为两部分的支持: CPU对SIMD扩展的支持.SIMD扩展是随着CPU ...