第五篇 - Selenium突破反爬获取qq邮件标题

 1 from selenium import webdriver
 2 from selenium.webdriver import ActionChains
 3
 4 #1.打开登陆页面
 5 wd = webdriver.Chrome()
 6 wd.implicitly_wait(10)
 7 wd.get(‘https://mail.qq.com/‘)
 8
 9 #2.切换到账号密码登陆
10 login_frame = wd.find_element_by_id(‘login_frame‘)
11 wd.switch_to.frame(login_frame)
12 wd.find_element_by_id(‘switcher_plogin‘).click()
13
14 #3.输入账号密码
15 u = wd.find_element_by_id(‘u‘)
16 u.send_keys(‘‘)#---------------此处填QQ号
17 p = wd.find_element_by_id(‘p‘)
18 p.send_keys(‘‘)#----------------此处填QQ邮箱密码
19
20 #4.点击登陆按钮
21 wd.find_element_by_id(‘login_button‘).click()
22
23 #5.点击收信
24 wd.find_element_by_id(‘folder_1‘).click()
25 #6.切换到收信iframe框架里
26 main_frame = wd.find_element_by_id(‘mainFrame‘)
27 wd.switch_to.frame(main_frame)
28
29 #获取第一个tab页
30 h = wd.current_window_handle
31
32 #通过css选择器,找到我们邮件列表里面的内容
33 email_eles = wd.find_elements_by_css_selector(‘.toarea .F, .toarea .M‘)
34 email_eles_count = len(email_eles)
35 #遍历每一封邮件
36 for i in range(email_eles_count):
37     #获取邮件列表的邮件项
38     email_ele = wd.find_elements_by_css_selector(‘.toarea .F, .toarea .M‘)[i]
39     #右击邮件项
40     ActionChains(wd).context_click(email_ele).perform()
41     #然后选择在新窗口打开
42     wd.find_elements_by_css_selector(‘.menu_item‘)[1].click()
43     #切换到邮件详情页tab
44     email_detail_handle = wd.window_handles[2]#----------此处的数字个人可能不同,1或者2,可自行调试
45     wd.switch_to.window(email_detail_handle)
46     #切换到内容部分
47     main_frame = wd.find_element_by_id(‘mainFrame‘)
48     wd.switch_to.frame(main_frame)
49     #获取邮件的标题
50     subject = wd.find_element_by_id(‘subject‘).text
51     #获取邮件的内容
52     # content = wd.find_element_by_id(‘mainContentContainer‘).text
53     print(subject)
54     #关闭tab页
55     wd.close()
56     #回到第一个tab页,即邮件列表tab
57     wd.switch_to.window(h)
58     #又切换到列表部分
59     main_frame = wd.find_element_by_id(‘mainFrame‘)
60     wd.switch_to.frame(main_frame)
61
62 wd.quit()

原文地址:https://www.cnblogs.com/smart-zihan/p/9495906.html

时间: 2024-10-14 08:40:31

第五篇 - Selenium突破反爬获取qq邮件标题的相关文章

第三百四十五节,Python分布式爬虫打造搜索引擎Scrapy精讲—爬虫和反爬的对抗过程以及策略

第三百四十五节,Python分布式爬虫打造搜索引擎Scrapy精讲-爬虫和反爬的对抗过程以及策略-scrapy架构源码分析图 1.基本概念 2.反爬虫的目的 3.爬虫和反爬的对抗过程以及策略 scrapy架构源码分析图

Python爬虫入门教程 64-100 反爬教科书级别的网站-汽车之家,字体反爬之二

说说这个网站 汽车之家,反爬神一般的存在,字体反爬的鼻祖网站,这个网站的开发团队,一定擅长前端吧,2019年4月19日开始写这篇博客,不保证这个代码可以存活到月底,希望后来爬虫coder,继续和汽车之间对抗. CSDN上关于汽车之家的反爬文章千千万万了,但是爬虫就是这点有意思,这一刻写完,下一刻还能不能用就不知道了,所以可以一直不断有人写下去.希望今天的博客能帮你学会一个反爬技巧. 今天要爬去的网页 https://car.autohome.com.cn/config/series/59.htm

爬虫之路: 字体文件反爬二(动态字体文件)

上一篇解决了但页面的字体反爬, 这篇记录下如何解决动态字体文件, 编码不同, 文字顺序不同的情况 源码在最后 冷静分析页面 打开一个页面, 发现字体文件地址是动态的, 这个倒是好说, 写个正则, 就可以动态匹配出来 先下载下来一个新页面的字体文件, 做一下对比, 如图 mmp, 发现编码, 字体顺序那那都不一样, 这可就过分了, 心里一万个xxx在奔腾 头脑风暴ing.gif (与伙伴对话ing...) 不着急, 还是要冷静下来, 再想想哪里还有突破点 同一个页面的字体文件地址是动态的, 但是,

SOS 调试扩展 (SOS.dll) 《第五篇》

SOS调试扩展让你可以查看在公共语言运行时里面运行的代码的有关信息.例如,你可以使用SOS调试扩展显示托管堆的有关信息,查找堆的错误,显示运行时使用的内部数据类型,以及查看在运行时里面运行的所有托管代码的有关信息. 使用SOS调试扩展的办法是把它装入到WinDbg.exe调试器,或者Visual Studio 2005或它的更早版本.你能够在WinDgb.exe里或者在Visual Studio的即时窗口里面执行令来载入它. 在Windbg.exe中装载SOS的命令是: .loadby sos

selenium+scrapy完成爬取特定的知乎界面,比如我爬取的就是搜索“”“某某某东西”

这个地方非常感谢此篇作者的帮助 :http://blog.csdn.net/uselym/article/details/52525025 一.建立一个scrapy框架的爬虫 二.在spider中首先构造登录 二.使用response构造需要获取到的数据 三.在parse函数中返回request请求. 四.在scrapy.Request()中指定url="你需要爬取的界面" 总结:对于知乎的动态界面,scrapy爬虫爬取始终没有selenium模拟上下滑动获取的比较完整,望注意. 原文

爬虫与反爬

爬虫与反爬 (1) 基本的概念 爬虫: 自动获取网站数据的程序 关键是 定时,定量的,批量的获取 反爬虫: 使用技术手段 防止爬虫程序的方法 存在误伤,即 反爬技术 将普通用户识别为爬虫 如果误伤高 --- 效果再好也不能使用 例子: 比如 限制 ip === 用户的ip 一般都是 局域网内动态分配的, 一个爬虫的ip 可能分配给 另一个 非爬虫的用户 有效的方法: 可以在一段时间内 限制 ip,过一段时间 再把 ip释放 反爬的成本: 成功率越高成本越大,拦截率越高,误伤率越高 反爬虫的目的:

那些年绕过的反爬手段

笔者第一份工作就是以java工程师的名义写爬虫,不得不说第一份工作很重要啊,现在除了爬虫不会干别的,到现在已经干了近5年了,期间经历了不少与反爬策略的斗争.最近又耗时两周成功搞定了某网站的反爬策略后,心里有点莫名的惆怅.今日无心工作,就总结下这些年与网站互怼的经验吧. 无反爬裸站 现在一个网站或多或少都会配置一定的反爬措施,毕竟现在一台笔记本的性能比某些小站的服务器都强,如果不加以限制,分分钟就能把你的资源耗尽.前两年的工商网站有个省份没有限制,没多久就把服务器抓瘫了(只能说服务器配置太太太次了

常见的反爬机制及应对策略

1.Headers: 从用户的headers进行反爬是最常见的反爬策略,Headers是一种最常见的反爬机制Headers是一种区分浏览器行为和机器行为中最简单的方法,还有一些网站会对Referer (上级链接)进行检测 从而实现爬虫. 相应的解决措施:通过审查元素或者开发者工具获取相应的headers 然后把相应的headers 传输给python 的requests,这样就能很好地绕过. 2.IP 限制 一些网站会根据你的IP 地址访问的频率,次数进行反爬.也就是说如果你用单一的IP 地址访

JWT 认证 签发与校验token 多方式登陆 自定义认证规则反爬 admin密文显示

一 .认证方法比较 1.认证规则图 django 前后端不分离 csrf认证 drf 前后端分离 禁用csrf 2. 认证规则演变图 数据库session认证:低效 缓存认证:高效 jwt认证:高效 3. 认证比较 """ 1)session存储token,需要数据库参与,耗服务器资源.低效 2)缓存存token,需要缓存参与,高效,不易集群 3)客户端存token,服务器存签发与交易token的算法,高效,易集群 """ 缓存认证: 不易并发