Web scraping 天气网站返回零

Web scraping 天气网站返回零,web-scraping,Web Scraping,我是Python新手,我尝试从天气网络获取温度,但是我没有收到温度值。有人能帮我一下吗,因为我已经被困在这上面一段时间了(提前谢谢 import time import schedule import requests from bs4 import BeautifulSoup def FindTemp (): myurl = "https://www.theweathernetwork.com/ca/36-hour-weather-forecast/ontario/tor

我是Python新手,我尝试从天气网络获取温度,但是我没有收到温度值。有人能帮我一下吗,因为我已经被困在这上面一段时间了(提前谢谢

import time
import schedule
import requests

from bs4 import BeautifulSoup

def FindTemp ():
    myurl = "https://www.theweathernetwork.com/ca/36-hour-weather-forecast/ontario/toronto"

    headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36'
   }
    r = requests.get(myurl, headers = headers)
    c = r.content
    soup = BeautifulSoup(c,"html.parser")
    all = soup.find("div",{"class":"obs-area"}).find("span",{'class': 'temp'})
    todaydate = time.asctime()
    TorontoTemp = all.text
    print("The temperature in Toronto is" ,TorontoTemp, "on", todaydate)
    print(TorontoTemp)

print(FindTemp())

即使你没有做错任何事情,它也不必工作。许多网站使用Javascript来获取数据,因此你需要使用其他内置Chromium的刮板,并使用与你亲自与网站交互时看到的相同DOM。许多有重要数据的网站,如天气数据,都积极地使用protec因为他们提供的数据具有货币价值(即,您可以购买数据提要访问权),所以他们不会自己进行刮取

在任何情况下,你都应该从一些已知的刮得很好的网站开始。Beautifulsoup自己的网页是一个很好的开始:)


您应该使用调试器来查看代码生成的中间值,并调查它们在哪一点上偏离了您的预期。

即使您没有做错任何事情,它也不必工作。许多站点使用Javascript获取数据,因此您需要使用其他内置Chromium的scraper,并使用与您亲自与站点交互时看到的DOM相同的DOM。而且,许多拥有重要数据(如天气数据)的网站都会主动保护自己不被删除,因为它们提供的数据具有货币价值(即,您可以购买数据提要访问)。在任何情况下,你都应该从一些已知刮得很好的网站开始。Beautifulsoup自己的网页是一个好的开始:)