私に電子メールで私にリンクするスクリプトがあります。ラムダ関数はオブジェクト値を印刷する代わりに値を出力しません
<function <lambda> at 0x7f75b5fb4a60>
のように私のスクリプトが見えます:
:エラーがこの行(私は信じている)上で発生しているfrom bs4 import BeautifulSoup
import re
import requests
ex_webdev_js_by_city = [
'http://boston.website.org/search/web',
]
ex_web_j_keywords = [['one'],['coool', 'person']]
ex_web_j_keywords = sum(ex_web_j_keywords, [])
ex_js = []
for webdev_j_for_a_city in ex_webdev_js_by_city:
webdev_j = requests.get(webdev_j_for_a_city)
soup = BeautifulSoup(webdev_j.text, "lxml")
for j_keyword in ex_web_j_keywords:
for a in soup.find_all('a', class_="result-title hdrlnk", text=re.compile(j_keyword,re.IGNORECASE)):
#print(a.get('href'))
ex_js.append(a.get('href'))
if ex_js:
#email them to myself!
import smtplib, socket
TO = '[email protected]'
try:
server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
TEXT = lambda: print(('Latest js from site:\n\n{}'*len(ex_js)).format(*ex_js))
#Gmail Sign In
gmail_sender = 'myemail'
gmail_passwd = 'mypass'
server.login(gmail_sender, gmail_passwd)
msg = str(TEXT)
server.sendmail(gmail_sender, gmail_sender, msg)
print('Sent you some links!')
server.quit()
except socket.error as e:
print ('error sending mail, error was {}'.format(e))
問題ではなく、私が得る、リンクが含まアレントです
lambda: print(('Latest js from site:\n\n{}'*len(ex_js)).format(*ex_js))
0123私に電子メールでがあり、value
ではありません。
ここで、私はおそらく何が間違っていますか?
まず第一に、あなたの問題の変更を固定するために
TEXT()
を呼び出すことによって、それを起動する必要があります実行するためには、値が "'あなた以来NONE'です"print"文を返します。そして第二に、なぜlambdaを使用しますか? –
'lambda'関数は決して呼び出されないので何もしません。 –