目前分類:python (2)

瀏覽方式: 標題列表 簡短摘要

簡單的email client 使用python實現

 

#!/usr/bin/env python

# -*- coding: utf-8 -*-
from email.header import Header
from email.mime.text import MIMEText
from getpass import getpass
from smtplib import SMTP_SSL

# provide credentials if use yahoo
login = 'youremail.yahoo.com'
password = 'yourpassword'

# create message
msg = MIMEText('哈哈哈', 'plain', 'utf-8')
msg['Subject'] = Header('大部份測試', 'utf-8')
msg['From'] = login
msg['To'] = 'sendemail.xxx.com'

# send it if use yahoo
s = SMTP_SSL('smtp.mail.yahoo.com', timeout=10) #NOTE: no server cert. check
s.set_debuglevel(0)
try:

   s.login(login, password)

   s.sendmail(msg['From'], msg['To'], msg.as_string())
finally:
   s.quit()

文章標籤

太空梭創業日誌 發表在 痞客邦 留言(0) 人氣()

如果你需要某些網站提供你需要的訊息,作為某些用途,比如說

某種提供資訊的App,或者bigdata的計算。

一種方式是copy paste網頁上的資料,再存在資料庫中,但,如果網頁資料有新增,基本上你是無從得知的,只能一筆一筆慢慢比對。

python 提供了很好的opensource,pyquery。

用最簡單的方式把你要的資訊爬出來。

下面為一簡單範例,將中油直營站的地址全部找出來。

先看一下網站的內容

http://pd.wh.seed.net.tw/fetc/cpc/cpc0331.html

再用這指令看一下這網站的source code

curl http://pd.wh.seed.net.tw/fetc/cpc/cpc0331.html

基本上是可以用chorme看source code的,但指令用習慣了,就用curl了。

內容被我簡化,如下

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>台灣中油直營據點</title>
<link href="css/main.css" rel="stylesheet" type="text/css" />
<style type="text/css">
body {
background-color: #DDF5FF;
}
</style>
</head>


<tr height="22">
<td height="22" bgcolor="#FFFFCE">台灣中油-西定路站</td>
<td bgcolor="#FFFFCE">基隆市中山區西定路190號</td>
<td align="center" bgcolor="#FFFFCE">7:00</td>
<td align="center" bgcolor="#FFFFCE">21:00</td>
</tr>
<tr height="22">
<td height="22" bgcolor="#fefbec">台灣中油-成功一路站</td>
<td bgcolor="#fefbec">基隆市仁愛區成功一路105號</td>
<td align="center" bgcolor="#fefbec">0:00</td>
<td align="center" bgcolor="#fefbec">24:00</td>
</tr>

---------------------------------------------------------------------------

程式在此

---------------------------------------------------------------------------

# -*- coding: utf-8 -*-
from pyquery import PyQuery as pq
import sys
import os,codecs

counter = 0
q = pq(url='http://pd.wh.seed.net.tw/fetc/cpc/cpc0331.html')

q1 = pq(url='http://www.wdps.ntpc.edu.tw/index.php')
q2 = pq(url='http://tw.yahoo.com/')
print(q('title').text().encode('iso-8859-1'))
print ('---------------------------')
#os.exit(1)
ss = q('title').find('table').eq(1).text()
counter= 0
#print ss
for data in q('tr'):

   res = q(data).find('td').eq(1).text().encode('iso-8859-1')#.decode('iso-8859-1')
   print res
   resnum2 = res.find('市')
   resnum1= res.find('縣')
   resnum = res.find('號')
   
   if resnum>0 and (resnum1 >0 or resnum2> 0):
     counter = counter + 1
     print res
     print q(data).find('td').eq(0).text().encode('iso-8859-1')

--------------------------------------------------------------------------------------

1. 由於此網頁的response是用iso-8859-1所以用此去encode,一般都是utf-8。

2. 這方法還是需要很多try and error,但越爬越快吧。

3. 觀察網頁資料,每個tr下的td第一根第二個元素是我們要的因此你可以這樣取出來。

    q(data).find('td').eq(0).text().encode('iso-8859-1')

    q(data).find('td').eq(1).text().encode('iso-8859-1')

 

試試看,你現在拿到中油的站名跟地址了。

接下來能做些什麼應用,就靠自己的創意了。

 

文章標籤

太空梭創業日誌 發表在 痞客邦 留言(0) 人氣()