發表文章

目前顯示的是有「python」標籤的文章

try2hack 第七關

其實東西是由之前抓HJNET 的那個CODE 改來的,只是這次的練習讓我對HTTP 交換的內容又多知道了一些; 所以就又PO 上來了: import httplib from string import split URL1 = "www.try2hack.nl" FILE1 = "/levels/level7- ???????.??? " info = """ GET /levels/level7-xfkohc.php HTTP/1.1 User-Agent: MSIE ??? ; linux; Referer: http://www. ????? .com/ ???? .htm """ conn = httplib.HTTPConnection(URL1) conn.request(info,FILE1) r1 = conn.getresponse() d1 = r1.read() conn.close() print d1

python! 從銀行網頁上抓取匯率並直接寫入MSSQL

需下載LIB: http://pymssql.sourceforge.net/ 環境: python 2.6 mssql 2008 import httplib from string import split import pymssql exchangeURL = "somebank.com.tw" exchangePage = "/exchange/IP003.zh-TW.htm" sqlAddr = "192.168.1.200" sqlAcc = "test" sqlPasswd = "test" sqlDBName = "test" sqlH = "insert into exchangeRate(eR, userrID) values('" sqlT = " ',12)" currency = "TWD" conn = httplib.HTTPConnection(exchangeURL,80) conn.request("GET",exchangePage) reader = conn.getresponse() pageContext = reader.read() conn.close() indess = pageContext.find(currency) pageContext = pageContext[indess:(indess+500)] exchange = split(split(pageContext,">")[5]," conn.close() sql = sqlH + exchange + sqlT cx = pymssql.connect(host=sqlAddr, user=sqlAcc, password=sqlPasswd, database=sqlDBName) cur = cx.cursor() cur.execute(sql) cx.commit() cur.close()

從Hjnet 下載檔案

最近有一個coding 的人,有一個request: 「以前我會把更新程式放在Hjnet提供的web上, 然後去下載 。 但是現在我不能這樣做了,變成我要讓user先點一下檔案存放的URL,然後網頁會跳到另一個有廣告的頁面,user要在那邊網頁上點一個圖片後才能下載。 你能不能寫一個程式來自動下載,全程不需要user 介入?」 「因為檔案都是直接FTP上傳的,所以檔案應該不是存放在DB裡面,但不知道要怎麼做」 然後去下載那段話之前用underline, 是因為我想不起來他說怎麼下載的了… 當下聽描述時得到的訊息不太完整,所以一開始猜想的方向是: 「http server會去檢查檔案類型,如果不是web page, 圖片的話, 就會去檢查該筆session是否瀏覽過同網站的某個PAGE?」-- 如果user 正常使用web的話,理應如此。 等到回家後,打了那一串URL(還給錯!! =.="") 看到redirect 之後的網址,才知道是怎麼回事: 當user 輸入網址:http://jack.download.hjnet.net/download/123.exe 之後 http server 會redirect :http://download.service.hjnet.net/download.html?http://jack.server1.hjnet.net/download/123.exe 而"下載檔案"的圖片中,對應的URL就是:http://jack.server1.hjnet.net/download/123.exe 也就是檔案實際存在的位址 所以問題很簡單,在get 到http server 的response 之後,再去裡面尋找檔案真正存放的URL 並使用即可: 之所以不讓程式直接去抓http://jack.server1.hjnet.net/download/123.exe 是因為也許下一次、另一個檔案,就不在server1.hjnet.net 上面了。~ 也許啦 所以每次都去parse 一下比較好 以下是我的code: import httplib from string import split URL1 = "http://jack.download.hjnet.net" F...