PythonでExcelやWordを起動し、少し弄くり、保存して閉じるという作業をやってみた。Excelのほうは問題なさそうだが、Wordのほうが少し厄介そう。カーソルの指定方法がイマイチよくわからん。とりあえずこの二つに関してはVBAで作業したほうが簡単そうだし、あまりpythonでやる意味を見出せなかった。
これとは別に意外とハマりそうだったのがwin32com×Internet Explorer。
前からデータベース作成のネタ集めをしたいと思っていたので、各サイトIEのソースコードから、使えそうなキーワード&情報を持ってこれないかと思案開始。
とりあえずTkにアドレスを入れればそのサイトのHTMLを取得しtxtで吐き出す、ていうようなスクリプトはできた。
問題が1点。
・吐き出されたtxtからどうやって必要な情報だけを抽出しようか
さらに発展させた改良点が1点
・Tkのエントリーに複数のURLを渡し、並列処理できないものか→Tkの別ガジェットを使用するか、もしくはtxtデータを渡して、読み込ませるか
とりあえず今日はココまで。
##############本日のコード#################
これとは別に意外とハマりそうだったのがwin32com×Internet Explorer。
前からデータベース作成のネタ集めをしたいと思っていたので、各サイトIEのソースコードから、使えそうなキーワード&情報を持ってこれないかと思案開始。
とりあえずTkにアドレスを入れればそのサイトのHTMLを取得しtxtで吐き出す、ていうようなスクリプトはできた。
問題が1点。
・吐き出されたtxtからどうやって必要な情報だけを抽出しようか
さらに発展させた改良点が1点
・Tkのエントリーに複数のURLを渡し、並列処理できないものか→Tkの別ガジェットを使用するか、もしくはtxtデータを渡して、読み込ませるか
とりあえず今日はココまで。
##############本日のコード#################
from Tkinter import *
import Tkinter as Tk
from time import sleep
import win32com.client
class Frame(Tk.Frame):
def __init__(self, master=None):
Tk.Frame.__init__(self, master)
self.master.title(u'Get my URLs')
self.defaulturl = Tk.StringVar()
self.defaulturl.set('')
fr = Tk.LabelFrame(self)
fr.grid(row=0, column=0, columnspan=1, padx=5, pady=5)
lab = Tk.Label(fr, text = u'URL Please >')
entbx = Tk.Entry(fr, width=100, textvariable = self.defaulturl)
enterButton = Tk.Button(fr, width=7, text=u'Enter', command = self.getvals)
lab.pack(side=Tk.LEFT)
entbx.pack(side=Tk.LEFT)
enterButton.pack(side=Tk.LEFT)
def getvals(self):
vals = self.defaulturl.get()
global urls
urls = []
urls.append(vals)
self.quit()
if __name__ == '__main__':
f = Frame()
f.pack()
f.mainloop()
def iehack_html(address):
ie=win32com.client.Dispatch('InternetExplorer.Application')
ie.Visible=1
ie.Navigate('%s'%address)
global flnam
flnam = address
if ie.Busy:
sleep(5)
global html
html = ie.Document.body.innerHTML
html = unicode(html)
html = html.encode('ascii','ignore')
ie.Quit()
iehack_html(urls[0])
#strオブジェクトの指定範囲を取り出す場合、val[a:b]のbはbの"一つ前の"文字まで取り出すという意味→数え方が紛らわしいので注意
if flnam[0:3] == 'www':
strObj = flnam[4:]
cnt = strObj.find('.')
fl = open('HTML_%s.txt'%strObj[0:cnt], 'w')
elif flnam[0:5] == 'http:' and flnam[7:10] == 'www':
strObj = flnam[11:]
cnt = strObj.find('.')
fl = open('HTML_%s.txt'%strObj[0:cnt], 'w')
elif flnam[0:5] == 'http:' and flnam[7:10] != 'www':
strObj = flnam[7:]
cnt = strObj.find('.')
fl = open('HTML_%s.txt'%strObj[0:cnt], 'w')
else:
cnt = flnam.find('.')
fl = open('HTML_%s.txt'%flnam[0:cnt], 'w')
fl.write(html)
fl.close()