m***f 发帖数: 732 | 1 抓到你想要的deal自动给你发email或短消息,有兴趣的下去改了用。直接拷贝下面这
段code修改后存为sac.py,然后运行python sac.py即可。在python 2.7下测试通过。
#!/usr/bin/python
import re
import urllib
import smtplib
import time
from email.mime.text import MIMEText
target=[['trekking', 'poles'],['Napali', 'Backpack'],['north', 'face'],['
oakley','battalion']] #The items you want to monitor, in every set of [] AND
logical will be used to match a specific item
discount_threshold=50 #threshold of percentage to trigger event
check_interval=60 #the interval to refresh in unit of second
hourstart=8 #what time you want this start to send you sms by hour
hourstop=22 #waht time you want this to stop by hour
smtpserver='smtp.mail.yahoo.com' #smtp email server you want to use
smtpport=25 # port number of smtp server
fromadd='s*****[email protected]' #email sender address
toadd='6********[email protected]' #email recipent address, use cellphone sms
gateway address to send sms to your cellphone
user='someone' #put your email account name here
passwd='xxxxxx' #put your email account passwd here
oldinfoline=''
while True:
ctime=time.localtime()[3]
if ctime>hourstart and ctime
a=urllib.urlopen('http://www.steepandcheap.com')
lines=a.readlines()
item_m=re.compile('Steep and Cheap:')
discount_m=re.compile('discount:')
price_m=re.compile('price:')
#infoline='Steep and Cheap: Mountain Hardwear Napali 50
Backpack - 2850-3050cu in - Womens - $69.99 - 63% off\n'
for line in lines:
line=line.strip()
if item_m.match(line):
infoline=line
if discount_m.match(line):
discountline=line
if price_m.match(line):
priceline=line
if infoline!=oldinfoline:
oldinfoline=infoline
outmsg=''
n_match=re.compile('\d+\.*\d*')
price=float((n_match.search(priceline)).group())
discount=float((n_match.search(discountline)).group())
infoline2=infoline.upper()
match=0
for tr in target:
test=1
for trf in tr:
if infoline2.find(trf.upper())<0:
test=0
if test==1:
match=1
for tar in tr:
outmsg+=tar
outmsg+=' '
outmsg+='$'
outmsg+=str(price)
break
info=infoline[7:][:-8]
if match==1:
em=smtplib.SMTP(smtpserver,smtpport)
em.login(user,passwd)
msg=MIMEText(info)
msg['Subject']=outmsg #squeeze so you don't need to download
the actual message
msg['From']=fromadd
msg['To']=toadd
em.sendmail(fromadd,toadd,msg.as_string())
em.quit()
time.sleep(check_interval) | T*********e 发帖数: 39815 | 2 赞
想买东西的方便了
不过,我就不用了,最近又买了不少东西,看着信用卡的高额账单发愁
AND
【在 m***f 的大作中提到】 : 抓到你想要的deal自动给你发email或短消息,有兴趣的下去改了用。直接拷贝下面这 : 段code修改后存为sac.py,然后运行python sac.py即可。在python 2.7下测试通过。 : #!/usr/bin/python : import re : import urllib : import smtplib : import time : from email.mime.text import MIMEText : target=[['trekking', 'poles'],['Napali', 'Backpack'],['north', 'face'],[' : oakley','battalion']] #The items you want to monitor, in every set of [] AND
| p**********t 发帖数: 2636 | 3 牛!
AND
【在 m***f 的大作中提到】 : 抓到你想要的deal自动给你发email或短消息,有兴趣的下去改了用。直接拷贝下面这 : 段code修改后存为sac.py,然后运行python sac.py即可。在python 2.7下测试通过。 : #!/usr/bin/python : import re : import urllib : import smtplib : import time : from email.mime.text import MIMEText : target=[['trekking', 'poles'],['Napali', 'Backpack'],['north', 'face'],[' : oakley','battalion']] #The items you want to monitor, in every set of [] AND
| m*****d 发帖数: 1613 | | S********t 发帖数: 18987 | 5 改成直接下单吧,
收EMAIL就慢半拍,有好DEAL已经晚了 | m***f 发帖数: 732 | 6 这个。。。我对http和python都不熟,要不你动手改改。直接下单风险太大,万一它给
你一口气来个一百单咋办。
【在 S********t 的大作中提到】 : 改成直接下单吧, : 收EMAIL就慢半拍,有好DEAL已经晚了
| e**o 发帖数: 5509 | 7 主要是有些size区别太大。得先量量,看看size chart才能决定。
【在 S********t 的大作中提到】 : 改成直接下单吧, : 收EMAIL就慢半拍,有好DEAL已经晚了
| S********t 发帖数: 18987 | 8 专挑90%那种下,
BTW,我都不会python,
perl倒写过,实在烦的再不想碰了
【在 m***f 的大作中提到】 : 这个。。。我对http和python都不熟,要不你动手改改。直接下单风险太大,万一它给 : 你一口气来个一百单咋办。
| i*****r 发帖数: 454 | 9 赞,,,,可不可以改成启动一个聊天机器人去和客服mm打电话???
AND
【在 m***f 的大作中提到】 : 抓到你想要的deal自动给你发email或短消息,有兴趣的下去改了用。直接拷贝下面这 : 段code修改后存为sac.py,然后运行python sac.py即可。在python 2.7下测试通过。 : #!/usr/bin/python : import re : import urllib : import smtplib : import time : from email.mime.text import MIMEText : target=[['trekking', 'poles'],['Napali', 'Backpack'],['north', 'face'],[' : oakley','battalion']] #The items you want to monitor, in every set of [] AND
| N**D 发帖数: 10322 | 10 perl 多好玩
【在 S********t 的大作中提到】 : 专挑90%那种下, : BTW,我都不会python, : perl倒写过,实在烦的再不想碰了
| m***f 发帖数: 732 | 11 python很好学的。我现学现写2小时就搞定这个了。
【在 S********t 的大作中提到】 : 专挑90%那种下, : BTW,我都不会python, : perl倒写过,实在烦的再不想碰了
| S*A 发帖数: 7142 | 12 haha. 这个太有才了。
鸡蛋里面调点骨头,这个 python 一看就是新手写的。不够优美。
你这个应该可以一次匹配说有的 match text而不需要一行一行来搞的。
python 的 regular expression 还是挺强的。
还有一个 idea 是用 BeautifulSoup, 一次把说有的 html 都吃进去,
然后在 DOM tree 里面找就行了。最好的情况有可能几行就行了。
http://www.crummy.com/software/BeautifulSoup/
我没有看懂你要怎么搞,所以没法帮你搞。如果你解释一下这个
逻辑的话没准我可以试一下。 |
|