簡體   English   中英

正則表達式提取錯誤

[英]regex extraction error

我需要從我的網站表單中提取客戶電子郵件。 為了自動化,我寫道

# filename variables
import re
import os
import urllib2
newfilename = 'result.txt'

id = 1
while (id < 25):
    html = urllib2.urlopen("https://mywebsite.com/printform.php?userid={id}".format(id=id)).read()
    bulkemail = re.findall(r'(\b[\w.]+@+[\w.]+.+[\w.]\b)',html)
    id = id+1
emails = ""
for x in bulkemail:
    emails += str(x)+"\n"

# function to write file
def writefile():
        f = open(newfilename, 'w')
        f.write(emails)
        f.close()
        print ("File written.")
writefile()

這只是打印出我文件輸出中的最后一封電子郵件。 我知道這很愚蠢,但是誰能指出我想念的地方

emails聲明放在while循環和for循環之前:

id = 1
emails = ""
while (id < 25):
    html = urllib2.urlopen("https://mywebsite.com/printform.php?userid={id}".format(id=id)).read()
    bulkemail = re.findall(r'(\b[\w.]+@+[\w.]+.+[\w.]\b)',html)
    id = id+1

    for x in bulkemail:
        emails += str(x)+"\n"

或者, 將電子郵件收集在一個列表中 ,然后輸入:

id = 1
emails = []
while (id < 25):
    html = urllib2.urlopen("https://mywebsite.com/printform.php?userid={id}".format(id=id)).read()
    emails += re.findall(r'(\b[\w.]+@+[\w.]+.+[\w.]\b)',html)
    id += 1

with open(newfilename, 'w') as f:
    for email in emails:
        f.write(email)
print("File written.")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM