有关Python爬取数据的问题

需要爬取全国各省会城市的历史天气

img

请问那里还有不对的吗?
需要怎么改?

明显的语法问题


headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'}

  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7599905
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:教你用python爬取王者荣耀英雄皮肤图片,并将图片保存在各自英雄的文件夹中。(附源码)
  • 你还可以看下python参考手册中的 python- 预定义的清理操作
  • 除此之外, 这篇博客: 中国大学排名定向爬虫以及淘宝商品爬虫参考嵩天老师Python爬虫课程遇到的问题及解决中的 输出结果为: 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 在这里插入图片描述
    内容正是我们想要的,但是排版不够整齐。原因是 ulist 的内容里面含有换行符。
    把ulist里面的换行符用 .replace() 方法替换掉,就不会有换行的问题了。

  • 您还可以看一下 刘顺祥老师的Python数据分析与挖掘课程中的 没有名字的函数你见过吗?小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    要使用Python爬取全国各省会城市的历史天气数据,可以按照以下步骤进行操作:

    1. 导入需要的库:
    import requests
    from bs4 import BeautifulSoup
    
    1. 定义一个函数,用于爬取天气数据:
    def get_weather_data(city):
        url = f"https://www.tianqi.com/{city}/"
        response = requests.get(url)
        if response.status_code == 200:
            soup = BeautifulSoup(response.content, 'html.parser')
            weather_data = soup.find_all('li', class_='sky')
            for item in weather_data:
                date = item.find('h1').text
                weather = item.find(class_='wea').text
                temperature = item.find(class_='tem').text
                print(f"日期:{date},天气:{weather},温度:{temperature}")
        else:
            print("请求失败")
    
    1. 调用函数并传入需要爬取的城市名称:
    get_weather_data("beijing")
    

    以上代码会爬取北京的天气数据并打印输出,你可以根据需要修改函数中的URL和输出方式。

    请注意,该代码仅适用于特定的网站结构和数据,如果你需要爬取其他网站的天气数据,可能需要根据具体网站的HTML结构进行相应的修改。另外,请遵守网站的爬虫规则,不要对网站进行恶意访问,以免触犯法律规定。如果你需要大规模爬取数据,建议提前与网站所有者联系并获得授权。