久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3898|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

python爬蟲源碼(爬天氣及詞典)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:324500 發(fā)表于 2018-5-7 20:36 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
python爬蟲爬天氣及詞典

單片機源程序如下:
  1. from tkinter import *
  2. import urllib.request
  3. import urllib.parse
  4. import json
  5. from city import city

  6. #天氣預(yù)報函數(shù)
  7. def weather():
  8.     #構(gòu)造Application對象
  9.     class Application(Frame):
  10.         #構(gòu)建基本窗框模板
  11.         def __init__(self, master):
  12.             super(Application, self).__init__(master)
  13.             self.grid()
  14.             self.create_widgets()   #調(diào)用函數(shù)

  15.         def create_widgets(self):
  16.             #添加標(biāo)題名稱,并以表格的方式規(guī)定其位置
  17.             self.label1 = Label(self, text='城市')
  18.             self.label1.grid(row=0,column=0)
  19.             self.label2 = Label(self, text='   ')
  20.             self.label2.grid(row=2,column=0)
  21.             self.label3 = Label(self, text='最低氣溫')
  22.             self.label3.grid(row=4,column=0)
  23.             self.label4 = Label(self, text='最高氣溫')
  24.             self.label4.grid(row=6,column=0)    #row 第幾行;column第幾列
  25.             
  26.             #寫入內(nèi)容,并以表格的方式規(guī)定其位置
  27.             self.text1 = Entry(self)
  28.             self.text1.grid(row=0,column=1)
  29.             self.text2 = Entry(self)
  30.             self.text2.grid(row=2,column=1)
  31.             self.text3 = Entry(self)
  32.             self.text3.grid(row=4,column=1)
  33.             self.text4 = Entry(self)
  34.             self.text4.grid(row=6,column=1)

  35.             #按鍵,通過command訪問函數(shù),并以表格的方式規(guī)定其位置
  36.             self.botton1 = Button(self,text='確認', command=self.weather)
  37.             self.botton1.grid(row=0, column=2)
  38.             self.botton2 = Button(self,text='重新輸入', command=self.clear)
  39.             self.botton2.grid(row=8, column=3)
  40.             
  41.             #確定光標(biāo)位置
  42.             self.text1.focus_set()
  43.             self.text2.focus_set()
  44.             self.text3.focus_set()
  45.             self.text4.focus_set()

  46.         #爬蟲部分   
  47.         def weather(self):
  48.              #get得到self.text1 = Entry(self)寫入的數(shù)據(jù)
  49.             cityname = self.text1.get()     
  50.             citycode = city.get(cityname)
  51.             #構(gòu)造網(wǎng)址
  52.             url = ('http://www.weather.com.cn/data/cityinfo/%s.html'%citycode)
  53.             content = urllib.request.urlopen(url).read()#讀取網(wǎng)頁源代碼
  54.             data = json.loads(content.decode())#使用json庫將字符轉(zhuǎn)化為字典
  55.             req = urllib.request.Request(url, data)
  56.             req.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36')#設(shè)置head
  57.             result = data['weatherinfo']#獲取字典
  58.             self.text2.delete(0,END)    #擦除text2數(shù)據(jù)
  59.              #將爬蟲所得數(shù)據(jù)寫入
  60.             self.text2.insert(0,result['weather'])  #將爬蟲所得數(shù)據(jù)寫入text2
  61.             self.text3.delete(0,END)
  62.             self.text3.insert(0,result['temp1'])
  63.             self.text4.delete(0,END)
  64.             self.text4.insert(0,result['temp2'])
  65.             
  66.                     



  67.         #清除數(shù)據(jù)
  68.         def clear(self):
  69.             self.text1.delete(0,END)    #擦除text2數(shù)據(jù)
  70.             self.text1.focus_set()      #確定光標(biāo)位置
  71.             self.text2.delete(0,END)
  72.             self.text2.focus_set()
  73.             self.text3.delete(0,END)
  74.             self.text3.focus_set()
  75.             self.text4.delete(0,END)
  76.             self.text4.focus_set()


  77.     root = Tk()     #創(chuàng)建窗口對象給root
  78.     root.title('天氣預(yù)報')  #寫窗口標(biāo)題
  79.     root.geometry('400x200')    #規(guī)定窗口大小
  80.     app = Application(root)     #調(diào)用Application對象
  81.     app.mainloop()  #循環(huán)窗口


  82. #有道翻譯函數(shù)
  83. def interpretation():
  84.     #構(gòu)造Application對象
  85.     class Application(Frame):

  86.         #構(gòu)建基本窗框模板
  87.         def __init__(self, master):
  88.             super(Application, self).__init__(master)
  89.             self.grid()
  90.             self.create_widgets()

  91.         
  92.         def create_widgets(self):
  93.             #添加標(biāo)題名稱,并以表格的方式規(guī)定其位置
  94.             self.label1 = Label(self, text='請輸入需要翻譯的內(nèi)容:')
  95.             self.label1.grid(row=0,column=0)
  96.             self.label2 = Label(self, text='   ')
  97.             self.label2.grid(row=2,column=0)

  98.             #寫入內(nèi)容,并以表格的方式規(guī)定其位置
  99.             self.text1 = Entry(self)
  100.             self.text1.grid(row=0,column=1)
  101.             self.text2 = Entry(self)
  102.             self.text2.grid(row=2,column=1)

  103.             #按鍵,通過command訪問函數(shù),并以表格的方式規(guī)定其位置
  104.             self.botton1 = Button(self,text='確認', command=self.translation)
  105.             self.botton1.grid(row=0, column=2)
  106.             self.botton2 = Button(self,text='重新輸入', command=self.clear)
  107.             self.botton2.grid(row=4, column=1)
  108.             self.text1.focus_set()
  109.             self.text2.focus_set()

  110.         #爬蟲部分
  111.         def translation(self):
  112.             #get得到self.text1 = Entry(self)寫入的數(shù)據(jù)
  113.             content = self.text1.get()
  114.             #構(gòu)造網(wǎng)址
  115.             url = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule"
  116.             #讀取網(wǎng)頁數(shù)據(jù)
  117.             data = {}
  118.             data['type'] = 'AUTO'
  119.             data['i'] = content
  120.             data['doctype'] = 'json'
  121.             data['version'] = '2.1'
  122.             data['keyfrom'] = 'fanyi.web'
  123.             data['ue'] = 'UTF-8'
  124.             data['typoResult'] = 'true'
  125.             data = urllib.parse.urlencode(data).encode('utf-8')
  126.          
  127.             #給網(wǎng)頁寫入head(防止反爬蟲)
  128.             req = urllib.request.Request(url, data)
  129.             req.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.65 Safari/537.36')
  130.         
  131.             response = urllib.request.urlopen(req)
  132.             html = response.read().decode('utf-8')
  133.             #使用json庫將字符轉(zhuǎn)化為字典
  134.             target = json.loads(html)
  135.       
  136.             self.text2.delete(0,END)
  137.             self.text2.insert(0,target['translateResult'][0][0]['tgt'])
  138.             
  139.         #清除數(shù)據(jù)   
  140.         def clear(self):
  141.             self.text1.delete(0,END)
  142.             self.text1.focus_set()
  143.             self.text2.delete(0,END)
  144.             self.text2.focus_set()


  145.     root = Tk()#創(chuàng)建窗口對象給root
  146.     root.title('翻譯') #寫窗口標(biāo)題
  147.     root.geometry('400x200')#規(guī)定窗口大小
  148.     app = Application(root)#調(diào)用Application對象
  149.     app.mainloop() #循環(huán)窗口

  150. #畫圖函數(shù)
  151. def drawing():
  152.     root = Tk()#創(chuàng)建窗口對象給root
  153.     w = Canvas(root, bg='red', width=400, height=200) # 在界面中畫出一個400*200的畫布,畫布顏色紅色
  154.     w.pack()
  155.     def paint(event):
  156.         x1, y1 = (event.x - 1), (event.y - 1)
  157.         x2, y2 = (event.x + 1), (event.y + 1)
  158.         w.create_oval(x1, y1, x2, y2, fill="blue")#畫一個小橢圓,藍色填充

  159.     w.bind("<B1-Motion>", paint)#paint函數(shù)綁定鼠標(biāo)左鍵
  160.     Label(root, text="按住鼠標(biāo)左鍵并移動,開始繪制你的理想藍圖吧......").pack(side=BOTTOM)#最下行提示語句
  161.     mainloop() #循環(huán)窗口


  162. root = Tk()#創(chuàng)建窗口對象給root
  163. root.title("菜單")#寫窗口標(biāo)題
  164. menubar = Menu(root)#創(chuàng)建Menu類的實例
  165. root.geometry("400x400+600+200") #大小400*400,在桌面位置600列,200行
  166. menubar1=menubar.add_command(label="天氣預(yù)報", command=weather)#add方法添加命令或者其他菜單內(nèi)容 command按鍵調(diào)用weather函數(shù)
  167. menubar2=menubar.add_command(label="有道翻譯", command=interpretation)#add方法添加命令或者其他菜單內(nèi)容 command按鍵調(diào)用interpretation函數(shù)
  168. menubar3=menubar.add_command(label="畫圖", command=drawing)#add方法添加命令或者其他菜單內(nèi)容 command按鍵調(diào)用drawing函數(shù)

  169. root.config(menu=menubar)#顯示菜單
復(fù)制代碼

所有資料51hei提供下載:
爬蟲.rar (18.54 KB, 下載次數(shù): 42)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:436824 發(fā)表于 2020-12-21 18:28 | 只看該作者
這個要怎么用?
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 在线免费毛片 | 中文字幕第二十页 | 天堂一区二区三区四区 | 亚洲精品中文在线 | 亚洲欧美日韩一区二区 | 国产精品一区在线观看 | 欧美黄在线观看 | 国产精品美女久久久久久久网站 | 中文字幕第一页在线 | 精品二区 | 亚洲成人中文字幕 | www.v888av.com| 91免费高清| 天堂网av在线 | 亚洲一区二区免费视频 | 欧美成人在线网站 | 最新毛片网站 | 午夜影院网站 | 成年网站在线观看 | 成人性生交大片 | 成年视频在线观看 | 国产成人高清 | 奇米av| 国产成人高清成人av片在线看 | 日批免费观看 | 亚洲一区二区在线免费观看 | 夜操 | 手机看片在线播放 | www.伊人.com | 日韩成人一区 | 一区二区三区视频在线免费观看 | 不卡的av在线 | 成人一区二区三区 | 岛国av一区二区 | 亚洲视频在线看 | 黄色免费在线网址 | 成人在线免费 | 亚洲三级国产 | 成人在线观看免费视频 | 亚洲永久字幕 | 亚洲一区在线日韩在线深爱 |