【问题标题】:Extracting dynamic email address from website using scrapy使用scrapy从网站中提取动态电子邮件地址
【发布时间】:2021-09-30 12:35:33
【问题描述】:

电子邮件地址是被动生成的,即使没有 api 请求,选择器也无法找到它。 我已经做了两年多的网络抓取,这个问题时不时出现,主要是我通过加载一个带有硒的页面并解析响应来解决这个问题,但这次我必须坚持使用scrapy(没有飞溅)。

我注意到,一旦我获取 scrapy shell 中的链接并查看回复,我可以看到电子邮件,但选择器无法找到电子邮件。

到目前为止,我已经能够找到生成电子邮件的 javascript 请求,但我不知道如何使用 scrapy 对其进行逆向工程。

这是指向类似示例网站之一的链接。任何帮助表示赞赏

THE WEBSITE

谢谢

【问题讨论】:

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


    【解决方案1】:

    在这种情况下,电子邮件似乎被混淆了,后来在 javascript 中被反混淆了。由于您的爬虫不执行 javascript,因此您只会看到经过混淆的电子邮件。

    如果你看一下页面源和 ctrl+f "email":

    您可以看到电子邮件的混淆值。 现在由你来决定如何去混淆。通常,您会浏览网站的 javascript 代码并了解电子邮件是如何被混淆的并对其进行逆向工程的。这有点超出了这个问题的范围,但在这种情况下混淆代码确实:

    • @ 替换为//
    • . 替换为/
    • 反转整个字符串

    如果我们可以在 python 中反转它:

    value = "ku/ca/retsacnal//eromhsa/l"
    value = value[::-1]
    value = value.replace(r"//", "@").replace(r"/", ".")
    

    这正是我们在网站上看到的内容:l.ashmore@lancaster.ac.uk

    【讨论】:

    • 这是一个很好的答案,解决了这个特殊问题,你无疑是个天才,但这个问题不断出现,我确实解决了几个类似的问题,但你能指出我可以学习或获得的地方吗关于如何在javascript中扭转它的提示?我尝试在 python 中执行 javascript,但它在 html 中有很多依赖项,我也不擅长 js。
    • @AssadAli 不要太担心 - 逆向工程就是经验!不幸的是,我没有任何特定的资源建议。通常,您应该从了解您的浏览器开发工具开始——在那里您可以找到网站使用的所有 javascript 并实时观察其行为。出于这个原因,我正在我的免费网络抓取博客(查看我的个人资料)上写一些关于这个主题的文章 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 2016-04-12
    • 1970-01-01
    • 1970-01-01
    • 2011-12-17
    • 1970-01-01
    • 2011-08-24
    相关资源
    最近更新 更多