【发布时间】:2020-04-17 04:48:33
【问题描述】:
我在 python 中使用 requests 来获取一个临时邮箱。我需要从下面的 HTML 代码中解析邮件 ID(它在“结果:”旁边)。我曾尝试使用 python 的 parse 模块,但它没有给出有效的结果,相反,我得到了 None 作为结果。 有没有办法使用左右匹配的字符串从 HTML 中解析?
这是我的代码>
r = s.get('https://www.cs.email/inbox',verify = False)
html = r.text
par = parse('\"result: {\"list\":[{\"mail_id":"{}\",\"mail_from\":\"support@windscribe.com\"', html)
print(par)
HTML 下面
</style>
<script type="text/javascript">
gm_init_vars = {
uid: '',
usr: '',
api_token : '6ef0a153476ab4ae2090f02d08f31a3a60dd6a70493cc43b397642e4d4f3a5e5',
ryo_url: 'https://grr.la/ryo/cs.email/',
hasFlash: false,
ZeroSwf: '/flash/ZeroClipboard.swf', passwordJs: '/js/password.min.js',
ryoJs: '/js/ryo.js',
bitcoinJs: '/js/bitcoin.js',
recaptchaJs: 'https://www.google.com/recaptcha/api/js/recaptcha_ajax.js',
recaptcha2Js: '//www.google.com/recaptcha/api.js',
base: '/',
tab: 'inbox',
assets: '/',
lang: 'en',
ajax_url: 'www.cs.email/ajax.php',
result: {"list":[{"mail_id":"507627420","mail_from":"support@windscribe.com","mail_subject":"Welcome to Windscribe, confirm your email address","mail_excerpt":"\n\t\n\t\t","mail_timestamp":"1587097890","mail_read":"0","mail_date":"04:31:30","att":"0","mail_size":"7429"}],"count":"1","email":"AvnaZrLDcuvwB@guerrillamailblock.com","alias":"kslqme+f9rnfatt6orhcs06gvgo0","ts":1587097897,"sid_token":"aruhantm0ogdh8hl55n1redm6h","stats":{"sequence_mail":"61,458,632","created_addresses":38163242,"received_emails":"12,682,145,335","total":"12,620,686,703","total_per_hour":"107550"},"auth":{"success":true,"error_codes":[]}},
email_addr: 'AvnaZrLDcuvwB@guerrillamailblock.com',
alias: 'kslqme+f9rnfatt6orhcs06gvgo0',
use_alias: true,
email_timestamp: 1587097897,
domain: 'cs.email',
site: 'elfyy',
limit: 20,
display_host: 'cs.email',
【问题讨论】:
-
正则表达式可能会更好。
re.search('"mail_id":"(\d+)"', html)为我工作。您可以将其扩展为包含更多前面的字符串,但这也可能有风险。谁知道消息之间可能存在哪些细微差别。 -
感谢您的快速回复! , 它也对我有用。
标签: python python-3.x