使用scrapy从网站中提取动态电子邮件地址

Extracting dynamic email address from website using scrapy

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

我注意到,一旦我在 scrapy shell 中获取 link 并查看回复,我就可以看到电子邮件,但选择器找不到电子邮件。

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

这里是 link 类似例子的网站之一。感谢任何帮助

THE WEBSITE

谢谢

在这种情况下,电子邮件似乎被混淆了,后来在 javascript 中被去混淆了。因为你的抓取器不执行 javascript 你只会看到混淆的电子邮件。

如果您查看页面源代码并按 ctrl+f“电子邮件”:

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

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

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

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

这就是我们在网站上看到的:l.ashmore@lancaster.ac.uk !