我正在为 Coursera 上的每个人的类(class)编写 Python,所以我刚刚学习了如何使用 Python 从 Web 访问文件。
所以我在这里想做的是从以 From: 开头的行中提取电子邮件:但我什么也没得到。
行中存在以 From:
开头的电子邮件,因为我已经使用文件处理方法完成了此操作,但当我在服务器上的文件上尝试它时它不起作用,所以我猜它是处理空白。
无论如何,伙计们,帮帮我,我被困住了
import socket
import re
dic = dict()
mysock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
mysock.connect(('data.pr4e.org', 80))
except:
print("Can't find the server.\nCheck your internet Connection")
cmd = 'GET http://data.pr4e.org/mbox-short.txt HTTP/1.0\r\n\r\n'.encode()
try:
mysock.send(cmd)
except:
print("Connection Lost:\nCheck your Internet Connection")
while True:
data = mysock.recv(512)
if len(data) < 1:
break
data = data.decode()
data = data.rstrip()
k = re.findall('^From:.(\S+@\S+)', data)
if (len(k)) > 0:
print(k)
最佳答案
您可以使用以下方式获取电子邮件
k = re.findall(r'(?m)^From:\s*(\S+@\S+)', data)
请参阅regex demo .
详细信息
(?m)^
- 行首来自:
- 文字字符串\s*
- 0+ 个空格(\S+@\S+)
- 捕获组 1(re.findall
的输出将仅包含此值):一个或多个非空白字符,@
和一个或多个非空白字符。
关于python - 使用Python通过正则表达式访问Web数据不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62162387/