【问题标题】:email protected in webscraping. how to get the text?网络抓取中受保护的电子邮件。如何获取文本?
【发布时间】:2019-12-25 09:39:32
【问题描述】:

我正在尝试从网站上抓取信息。该电子邮件在网络浏览器中可见,但在使用 Requests 和 BeautifulSoup 后,它显示[email protected]

如何获取原文?

下面是我的代码:

for company_des in des_soup1.find_all('div',class_='flex medium-text fnt-14 align-item-center pointer'):
    print(company_des.text)

截图如下:

HTML 源代码:

<div class="margin-left-5"><a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="cea6aba2a2a18ea2a7a8baa7bae0a7a0">[email&#160;protected]</a></div></div>

【问题讨论】:

  • html源码标签&lt;div class="margin-left-5"&gt;&lt;a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="cea6aba2a2a18ea2a7a8baa7bae0a7a0"&gt;[email&amp;#160;protected]&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;
  • 欢迎来到 Stack Overflow,请编辑您的问题并在其中包含该 html 源代码。还分享网址,以便我们进行验证。谢谢,我相信您正在处理CloudFlare 后面的webiste,它实际上是在保护HTML 源不被刮掉,是电子邮件吗? hello@liftit.in

标签: html python-3.x web-scraping


【解决方案1】:

基本上,您正在处理位于CloudFlare 或其他防火墙保护服务之后的网站。

由于您没有向我们提供有关该网站的更多信息以进行检查和验证。

所以我可以相信它是Email Address Obfuscation,你可以在这里阅读它Click-Here

关于解码电子邮件地址,这里有一个解决方案。

def email(string):
    r = int(string[:2], 16)
    email = ''.join([chr(int(string[i:i+2], 16) ^ r)
                     for i in range(2, len(string), 2)])
    return email


print(email('cea6aba2a2a18ea2a7a8baa7bae0a7a0'))

输出:

hello@liftit.in

【讨论】:

    猜你喜欢
    • 2016-08-23
    • 2019-10-10
    • 1970-01-01
    • 2018-04-09
    • 1970-01-01
    • 2022-01-07
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多