最新版本:基于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(&#39;********@163.com&#39;)#

driver.find_element(by=By.NAME, value="password").clear()

time.sleep(1)

driver.find_element(by=By.NAME, value="password").send_keys(&#39;******&#39;)

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=&#39;//*[@id="_mail_component_147_147"]&#39;).click() # 点击收件箱

time.sleep(5)

cookies = driver.get_cookies()

for cookie_data in cookies:

try:

if cookie_data[&#39;name&#39;] == &#39;MAIL_SESS&#39;:

cookie = cookie_data[&#39;value&#39;]

except Exception as e:

ValueError(&#39;No Cookie can be found,check html,please&#39;)

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 让您可以像真正的浏览器一样解释 网站,因此您可以获得更多的收益!

  主页:

  如果您正在寻找可靠的爬虫提供商,我们建议您尝试上述选项并根据您的用例决定您更喜欢哪一个。

  您可以随时点击这里联系我们!.

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线