[英]Scrape Email address from a Tripadvisor webpage
我正在尝试使用 Python-BS4 请求从以下网页中抓取 Email 地址,但在源代码中无法访问 email 地址。
https://www.tripadvisor.in/Attraction_Review-g189400-d2020955-Reviews-Chat_Tours-Athens_Attica.html
email 地址在我的邮件应用程序中打开,但我在页面源中找不到指向它的链接。 我知道这可以通过观察网络选项卡并发出与网站相同的发布请求来完成,但无法使其正常工作。
提前致谢!!
email 是在页面上的 Json 变量内编码的 Base64。
您可以使用此示例获取页面上找到的所有电子邮件:
import re
import json
import base64
import requests
from bs4 import BeautifulSoup
url = 'https://www.tripadvisor.in/Attraction_Review-g189400-d2020955-Reviews-Chat_Tours-Athens_Attica.html'
html_data = requests.get(url).text
data = re.search(r'window\.__WEB_CONTEXT__=(\{.*?\});', html_data).group(1)
data = json.loads(data.replace('pageManifest', '"pageManifest"'))
def get_emails(val):
if isinstance(val, dict):
for k, v in val.items():
if k == 'email':
if v:
yield v
else:
yield from get_emails(v)
elif isinstance(val, list):
for v in val:
yield from get_emails(v)
for email in get_emails(data):
email = base64.b64decode(email).decode('utf-8')
email = re.search(r'mailto:(.*)_', email).group(1)
print(email)
印刷:
chat@chatours.gr
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.