iT邦幫忙

0

Python 爬蟲問題 語音google搜索溫度

不好意思,耍了白痴,網址的部分打錯了,更改後能順利執行了。

import requests
from bs4 import BeautifulSoup

kv={'user-agent':'Mozilla/5.0'}
r=requests.get("https://www.google.com/search?q=tucheng+weather",headers=kv)
demo=r.text
r.raise_for_status()
r.encoding=r.apparent_encoding
soup = BeautifulSoup(r.content)
temp=soup.find("div", attrs={"class": "BNeawe iBp4i AP7Wnd"}).text
print(temp)
print(demo)
#語音搜尋google
import speech_recognition #載入語音辨識套件
import tempfile#能用於生成臨時文件和目錄。https://docs.python.org/zh-tw/3/library/tempfile.html
from pygame import mixer#基於pygame模組,能用以播放MP3。https://codertw.com/%E7%A8%8B%E5%BC%8F%E8%AA%9E%E8%A8%80/363871/
from gtts import gTTS#文字轉語音
import webbrowser#打開網頁
import requests #使用requests模組建立HTTP請求,從網頁取得想要的資料
from bs4 import BeautifulSoup#爬蟲用
def speak(sentence):
    mixer.init()#將mixer初始化
    with tempfile.NamedTemporaryFile(delete=True) as fp: #使用完檔案會自動將暫存檔刪除
        tts=gTTS(text=sentence, lang='zh-TW')
        tts.save("{}.mp3".format(fp.name))#存檔案
        mixer.music.load('{}.mp3'.format(fp.name))#載入mp3檔案
        mixer.music.play()#播放
def weather():
    print ("請問想搜尋什麼?")
    speak("請問想搜尋什麼")
    try:
        r = speech_recognition.Recognizer()
        with speech_recognition.Microphone() as source: #把麥克風的輸出放在source內,作為聲源
            r.adjust_for_ambient_noise(source, duration=0.5) #時間分析範圍改為0.5
            audio = r.listen(source) #使Recognizer去聽(listen)聲源,並放入audio
            query=r.recognize_google(audio, language='zh-TW')#語言設置為中文
            print("您想搜尋的是:"+query)
            speak("您想搜尋的是"+query)
            wweb="http://www.google.com/search?q="+query#wweb=weather_web
            kv={'user-agent':'Mozilla/5.0'}
            res = requests.get(wweb,headers=kv)
            demo=res.text
            res.raise_for_status()
            res.encoding=res.apparent_encoding
            webbrowser.open(wweb, new=2)
            print(demo)
    except:
        print("請再說一次")
        speak("請再說一次")
        weather()
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友回答

立即登入回答