分析时无法获取电子邮件

2024-09-30 10:27:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我是一个新的刮削和解析,我不知道该怎么办下一个问题。我需要从许多页面中删除电子邮件。For example

电子邮件所在的代码部分:

<tr><td>Email:</td><td width="10"></td><td><script>var ylhrfq = "&#121;&#112;&#114;";var bdnd = "&#97;&#105;&#108;";var byil = "&#115;&#116;&#46;&#99;";var bwdbdf = "&#97;&#103;&#101;&#64;";var dqiex = "&#46;&#99;";var pner = "&#111;&#109;";var qkfow = "&#103;&#109;";var azzl = "&#105;&#101;";var hgcr = "&#110;&#46;&#112;&#108;";var link = byil + ylhrfq + azzl + hgcr + bwdbdf + qkfow + bdnd + dqiex + pner;var text = link;document.write('<a href="mailto:'+link+'"  />'+text+'</a>');</script></td></tr>

有没有可能和BF一起抓到这封邮件?如果是,我怎么做?你知道吗

Win7,Python3,美女组


Tags: 电子邮件varlinkscripttrtdhgcrbdnd
2条回答

电子邮件地址似乎隐藏在原始的html中,并由javascript代码生成。有了python2requestsjs2pyBeautifulSoup4,我终于得到了正确的电子邮件地址,希望这就是你想要的。你知道吗

import bs4
import requests
import subprocess
import js2py
from HTMLParser import HTMLParser

html = requests.get('http://findyourvacationhome.com/find.php?property=5068927').content
soup = bs4.BeautifulSoup(html, 'html.parser')
raw_script = soup.find_all('table')[6].find_all('tr')[2].find_all('td')[2].script.contents[0]

script = raw_script.replace("""var text = link;document.write('<a href="mailto:'+link+'"  />'+text+'</a>');""", """""")
result = js2py.eval_js(script)
htmlparser = HTMLParser()
result = htmlparser.unescape(result)

print(result)

我分四步完成:

  1. 使用requests获取网页的html
  2. 使用BeautifulSoup4解析html代码并获取用于生成电子邮件的javascript代码
  3. 使用js2py执行js代码并获得结果。你知道吗
  4. HTMLParser对字符串进行转义

你需要得到解析过的html。源本身只包含占位符和脚本。在PowerShell中,我会运行以下命令以获取电子邮件:

$t = Invoke-WebRequest -Uri "http://findyourvacationhome.com/find.php?property=5068927"
$t.Links | Where-Object { $_.href -match 'mailto' } | Select-Object -ExpandProperty outertext

相关问题 更多 >

    热门问题