最新版本:基于selenium的网易邮箱自动登录获取邮件内容(混杂request\urll
优采云 发布时间: 2022-09-24 12:12最新版本:基于selenium的网易邮箱自动登录获取邮件内容(混杂request\urll
目录
前言
163 访问邮箱需要在基于urllib爬取时从网页获取cookie,但是这个cookie是动态的。如果要实时查看邮箱是否有新邮件,cookie更新是一个很大的隐患。再次去网页查看获取,自动化需要手动添加链接,不完善。因此,需要一种新的方法。只需要一个账号和MM就可以自动访问和爬取新内容。我尝试使用 urllib 并在此处请求访问。这个过程非常复杂。咨询专业人士后发现,其中涉及密码学加密等知识。上一篇参考资料中提供了另一种方法,基于selenium实现自动登录和爬取cookie。
硒简介
Selenium可以模拟真实浏览器,自动化测试工具,支持多浏览器,主要用于爬虫解决JavaScript渲染问题。
下一个演示将是 Chorme:
环境配置
python中的安装库
pip install selenium
自动浏览器控制插件
selenium的应用需要浏览器自动控制插件下载教程
Selenium 抓取并检查网页
Selenium 操作简单。它通过抓取网页上JavaScript的标签连接来定位位置,然后模拟人为“点击”的操作。因此,我们只需要检查网页,看看它的结构,找到它需要的定位标签。
通过观察其网络结构可以看出,登录界面的形式嵌套在iframe中。是动态的,无法定位,需要先定位框,再定位框内的账号密码框,实现输入
方案实施
frame = driver.find_element(By.TAG_NAME, value="iframe")#定位到iframe
<p>
driver.switch_to.frame(frame)
</p>
找到iframe后,找到账号密码输入框
# 登录
driver.find_element(by=By.NAME, value="email").clear()
driver.find_element(by=By.NAME, value="email").send_keys('********@163.com')#
driver.find_element(by=By.NAME, value="password").clear()
time.sleep(1)
driver.find_element(by=By.NAME, value="password").send_keys('******')
time.sleep(1)
最后重新定位登录按钮,执行点击命令登录
driver.find_element(by=By.ID, value="dologin").click()
time.sleep(2)
登录完成,再次查看页面,让它登录到接收页面,获取cookie
driver.switch_to.default_content() # 跳出iframe 。一定记住 只要之前跳入iframe,之后就必须跳出。进入主html
driver.find_element(By.XPATH,value='//*[@id="_mail_component_147_147"]').click() # 点击收件箱
time.sleep(5)
cookies = driver.get_cookies()
for cookie_data in cookies:
try:
if cookie_data['name'] == 'MAIL_SESS':
cookie = cookie_data['value']
except Exception as e:
ValueError('No Cookie can be found,check html,please')
driver.close()
return cookie
饼干搞定!实现自动登录! ! !
因为已经实现了爬取的request,所以可以直接访问url-request的*敏*感*词*程序获取sid/直接完成自动取邮件
这样每次可以爬取163个邮箱,那么如何只爬取新邮件呢?
思路:通过保存文件名和邮件数量,判断收件箱是否有新邮件,判断何时停止爬取。
近期发布:2019 年最佳网页抓取工具
Web 不断充斥着新信息、新设计模式和海量数据。将这些数据组织到一个独特的库中并非易事。此外,聘请专业的抓取专家所花费的成本可能比您预期的要高。
那么,为什么不自己做呢?有大量优秀的网络抓取工具可供免费下载,其中大部分都带有大量文档文件,可帮助您入门。
顺便说一句,我们完全有必要与 网站 阻止爬虫等作斗争。并非所有平台都希望您抓取和分析他们的数据。因此,考虑到这一点,我们还专注于提供平滑代理、绕过和匿名的工具。
代理爬取
那是我们!Proxy Crawl 不仅仅是一个工具。对于任何需要抓取/抓取服务并希望在此过程中保持最大匿名性的人来说,这是一个解决方案。
使用代理抓取 API,您可以抓取网络上的任何 网站/平台。同时,您可以受益于代理支持、验证码绕过以及基于动态内容抓取 JavaScript 页面的能力。
仅免费获得 1,000 个请求,这足以探索 Proxy Crawl 导航复杂和错综复杂的内容页面的能力。
主页:
刮擦
Python 和抓取齐头并进。事实上,大多数关于 Python 的书籍和学习课程都讨论了某种形式的抓取。
Scrapy 是一个开源项目,它为网页抓取提供支持,以及抓取它。Scrapy 抓取框架在从 网站 和网页中提取数据方面做得非常出色。
最重要的是,Scrapy 可用于挖掘数据、监控数据模式以及自动化测试大型任务。它是一个强大的工具,并且与 ProxyCrawl 完美集成,您可以在 Scrapy 集成的 文章 下方阅读更多关于它的信息。
借助 Scrapy,由于内置工具,选择内容源(HTML 和 XML)变得轻而易举。如果您喜欢冒险,可以使用抓取 API。
主页:
抓牢
Grab 是一个基于 Python 的框架,用于创建自定义 Web Scraping 规则集。使用 Grab,您可以为小型个人项目创建抓取机制,以及构建可同时扩展到数百万页的大型动态抓取任务。
内置 API 提供了执行网络请求和处理抓取内容的方法。
Grab 提供的另一个 API 称为 Spider。使用 Spider API,您可以使用自定义类创建异步爬虫。
主页:
鼬
Ferret 是一个相当新的网络抓取系统,在开源社区中获得了相当多的关注。
Ferret 的目标是提供更清洁的客户端抓取解决方案。例如,允许开发人员编写不必依赖应用程序状态来运行的爬虫。
此外,Ferret 使用自定义的声明性语言,避免了构建系统的复杂性。
相反,您可以编写严格的规则来从任何站点抓取数据,并花费宝贵的时间来探索数据。
主页:
X 射线
由于 X-Ray、Osmosis 等库的可用性,使用 Node.js 抓取 Web 相当简单。
以下是用于抓取 Hacker News 的 xray 演示片段:
1
2
3
4
5
6
7
8
9
10
11
12
常量 X射线 = 要求('X 射线');
常量 x = X射线();
x('https://api.proxycrawl.com/?token=YOUR_TOKEN&url=https://blog.ycombinator.com/', '。邮政'[
{
标题: 'h1',
链接: '[电子邮件保护]',
},
])
.分页('.nav-previous [电子邮件保护]')
.限制(3)
.写('结果.json');
此代码段将从 HN 主页获取最新链接,包括每个提交的标题,但还将继续抓取其他页面,例如 .pagination 和 . 极限值。
您可以将结果写入各种不同的文件类型。所以如果你需要快速提取任何网页的内容,这是一个可以尝试的库。
主页:
差异机器人
Diffbot 是市场上的新玩家,但已经走过了漫长的道路。这个 ML/AI 支持的抓取平台提供知识即服务。
您甚至不必编写太多代码,因为 Diffbot 的 AI 算法可以解释来自 网站 页面的结构化数据,而无需手动指定。
主页:
PhantomJS 云
PhantomJS Cloud 是 PhantomJS 无头浏览器的 SaaS 替代品。使用 PhantomJS Cloud,您可以直接从网页内部获取数据,还可以生成可视文件并在 PDF 文档中呈现页面。
请记住,PhantomJS 本身就是一个浏览器,这意味着您可以像浏览器一样加载和执行页面资源。如果您手头的任务需要抓取大量基于 JavaScript 的 网站,这将特别有用。
PhantomJS Cloud 让您可以像真正的浏览器一样解释 网站,因此您可以获得更多的收益!
主页:
如果您正在寻找可靠的爬虫提供商,我们建议您尝试上述选项并根据您的用例决定您更喜欢哪一个。
您可以随时点击这里联系我们!.