python趣味挑战之爬取天气与微博热搜并自动发给微信好友

本攻略将介绍如何使用Python爬取天气和微博热搜数据,并将数据发送给微信好友。我们将使用requests库来发送HTTP请求,使用BeautifulSoup库来解析HTML页面,以及使用itchat库来实现微信自动登录和消息发送功能。

实现Python爬取天气和微博热搜数据

以下是一个示例代码,用于实现Python爬取天气和微博热搜数据:

import requests
from bs4 import BeautifulSoup
import itchat

# 发送HTTP请求
weather_url = 'http://www.weather.com.cn/weather/101010100.shtml'
weibo_url = 'https://s.weibo.com/top/summary?cate=realtimehot'
weather_response = requests.get(weather_url)
weibo_response = requests.get(weibo_url)

# 解析HTML页面
weather_soup = BeautifulSoup(weather_response.text, 'html.parser')
weibo_soup = BeautifulSoup(weibo_response.text, 'html.parser')
weather_div = weather_soup.find('div', {'id': '7d'})
weibo_table = weibo_soup.find('table')

# 处理数据
weather_data = []
for li in weather_div.find('ul').find_all('li'):
    date = li.find('h1').text
    weather = li.find_all('p')
    temperature = weather[0].text.strip()
    weather_type = weather[1].text.strip()
    wind = weather[2].text.strip()
    weather_data.append([date, temperature, weather_type, wind])

weibo_data = []
for tr in weibo_table.find_all('tr')[1:]:
    tds = tr.find_all('td')
    rank = tds[0].text.strip()
    title = tds[1].text.strip()
    hot = tds[2].text.strip()
    weibo_data.append([rank, title, hot])

# 发送数据到微信好友
def send_message():
    # 登录微信
    itchat.auto_login(hotReload=True)
    # 发送天气数据
    weather_message = '今日天气:\n'
    for data in weather_data:
        weather_message += '日期:{},温度:{},天气:{},风力:{}\n'.format(data[0], data[1], data[2], data[3])
    itchat.send(weather_message, toUserName='filehelper')
    # 发送微博热搜数据
    weibo_message = '微博热搜:\n'
    for data in weibo_data:
        weibo_message += '排名:{},标题:{},热度:{}\n'.format(data[0], data[1], data[2])
    itchat.send(weibo_message, toUserName='filehelper')
    # 退出微信
    itchat.logout()

if __name__ == '__main__':
    send_message()

在上面的代码中,我们使用requests库发送HTTP请求,获取天气和微博热搜的HTML代码。我们使用BeautifulSoup库解析HTML页面,并找到天气和微博热搜数据所在的区域。我们使用for循环遍历区域中的每一个数据,并提取日期、温度、天气、风力、排名、标题和热度信息。我们将数据保存到一个列表中。

我们定义一个send_message函数,用于发送天气和微博热搜数据到微信好友。我们使用itchat库创建微信自动登录对象,并使用auto_login方法登录微信。我们使用itchat库的send方法发送天气和微博热搜数据到微信好友。最后,我们使用logout方法退出微信。

示例1:发送全国天气数据

以下是一个示例代码,用于发送全国天气数据:

import requests
from bs4 import BeautifulSoup
import itchat

# 发送HTTP请求
url = 'http://www.weather.com.cn/textFC/hb.shtml'
response = requests.get(url)

# 解析HTML页面
soup = BeautifulSoup(response.text, 'html.parser')
conMidtab = soup.find('div', {'class': 'conMidtab'})
tables = conMidtab.find_all('table')

# 处理数据
data = []
for table in tables:
    trs = table.find_all('tr')[2:]
    for tr in trs:
        tds = tr.find_all('td')
        city = tds[0].text.strip()
        weather = tds[1].text.strip()
        temperature = tds[2].text.strip()
        wind = tds[3].text.strip()
        data.append([city, weather, temperature, wind])

# 发送数据到微信好友
def send_message():
    # 登录微信
    itchat.auto_login(hotReload=True)
    # 发送天气数据
    message = '全国天气:\n'
    for d in data:
        message += '城市:{},天气:{},温度:{},风力:{}\n'.format(d[0], d[1], d[2], d[3])
    itchat.send(message, toUserName='filehelper')
    # 退出微信
    itchat.logout()

if __name__ == '__main__':
    send_message()

在上面的代码中,我们使用requests库发送HTTP请求,获取全国天气页面的HTML代码。我们使用BeautifulSoup库解析HTML页面,并找到天气数据所在的表格。我们使用for循环遍历表格中的每一行数据,并提取城市、天气、温度和风力信息。我们将数据保存到一个列表中。

我们定义一个send_message函数,用于发送全国天气数据到微信好友。我们使用itchat库创建微信自动登录对象,并使用auto_login方法登录微信。我们使用itchat库的send方法发送全国天气数据到微信好友。最后,我们使用logout方法退出微信。

示例2:发送微博热搜数据

以下是另一个示例代码,用于发送微博热搜数据:

import requests
from bs4 import BeautifulSoup
import itchat

# 发送HTTP请求
url = 'https://s.weibo.com/top/summary?cate=realtimehot'
response = requests.get(url)

# 解析HTML页面
soup = BeautifulSoup(response.text, 'html.parser')
table = soup.find('table')

# 处理数据
data = []
for tr in table.find_all('tr')[1:]:
    tds = tr.find_all('td')
    rank = tds[0].text.strip()
    title = tds[1].text.strip()
    hot = tds[2].text.strip()
    data.append([rank, title, hot])

# 发送数据到微信好友
def send_message():
    # 登录微信
    itchat.auto_login(hotReload=True)
    # 发送微博热搜数据
    message = '微博热搜:\n'
    for d in data:
        message += '排名:{},标题:{},热度:{}\n'.format(d[0], d[1], d[2])
    itchat.send(message, toUserName='filehelper')
    # 退出微信
    itchat.logout()

if __name__ == '__main__':
    send_message()

在上面的代码中,我们使用requests库发送HTTP请求,获取微博热搜页面的HTML代码。我们使用BeautifulSoup库解析HTML页面,并找到热搜数据所在的表格。我们使用for循环遍历表格中的每一行数据,并提取排名、标题和热度信息。我们将数据保存到一个列表中。

我们定义一个send_message函数,用于发送微博热搜数据到微信好友。我们使用itchat库创建微信自动登录对象,并使用auto_login方法登录微信。我们使用itchat库的send方法发送微博热搜数据到微信好友。最后,我们使用logout方法退出微信。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python趣味挑战之爬取天气与微博热搜并自动发给微信好友 - Python技术站

(0)
上一篇 2023年5月15日
下一篇 2023年5月15日

相关文章

  • Python 编程速成(推荐)

    Python 编程速成攻略 简介 Python 编程速成是一个适合初学者入门的编程学习教程,旨在帮助您快速掌握 Python 编程基础和基本语法。 基础知识 在开始学习 Python 编程之前,您需要了解一些基础知识,包括: 计算机的基本概念和组成 编程语言的发展历史和分类 常见的编程工具和环境 安装Python 如果您还没有安装 Python,您可以通过以…

    python 2023年5月13日
    00
  • python中input()的用法及扩展

    下面是关于Python中input()的用法及扩展的完整攻略。 1. input()的基本用法 input()是Python中读取用户输入的内置函数。它的语法格式如下: input([prompt]) 其中,prompt是可选的参数,当被指定时,会在等待用户输入时在控制台内输出prompt的值。 使用input()来读取用户输入的基本用法如下: name =…

    python 2023年6月3日
    00
  • 解决Python二维数组赋值问题

    针对“解决Python二维数组赋值问题”的问题,我给出一份完整攻略,包括细节说明和示例代码。 问题描述 在 Python 中,我们通常使用列表(List)来存储数组类型的数据。而对于一个二维数组,通常会使用嵌套的列表结构来表示。但是,当我们想要对一个二维数组进行赋值操作时,会发现有一些细节问题需要注意。 例如,我们初始化一个二维列表: a = [[0] * …

    python 2023年6月5日
    00
  • Python制作数据分析透视表的方法详解

    下面是详细讲解 Python 制作数据分析透视表的方法的完整攻略。 前言 数据分析是比较热门的领域,Python 作为一门流行的编程语言,在数据分析领域也表现出色,提供了丰富的数据分析工具,包括使用 pandas 库进行数据处理和透视表制作等。本文将针对数据分析中的透视表制作进行详细的讲解。 什么是数据分析透视表? 透视表是一种有效的数据分析工具,主要用于快…

    python 2023年6月5日
    00
  • 基于Python编写一个自动关机程序

    基于Python编写一个自动关机程序的攻略如下: 1. 确定操作系统版本 在编写自动关机程序之前,需要先确定操作系统的版本。因为不同版本的操作系统在关机命令的实现方式可能略有不同。比如,在Windows系统中,可以使用shutdown命令实现自动关机,而在Linux系统中,可以使用init命令或shutdown命令实现自动关机。因此,需要根据操作系统版本选择…

    python 2023年5月19日
    00
  • Python中关于列表的常规操作范例以及介绍

    Python中关于列表的常规操作 在Python编程中,列表是一种常用的数据类型,用于表示一个有序的、可变的序列。Python提供了多种方法来操作列表,包括添加删除、修改、排序等。下面将详细介绍Python中关于列表常规操作,包括语法、参数、返回值以及示例说明。 列表的创建 在Python中,我们可以使用方括号[]来创建一个列表。下面是一个示例,演示了如何创…

    python 2023年5月13日
    00
  • 一起来了解python的基本输入和输出

    一起来了解Python的基本输入和输出 什么是Python输入和输出 Python输入和输出是Python程序中必不可少的部分,主要用于程序的交互。 Python的标准输入主要来自于input()函数,标准输出主要来自于print()函数。 如何使用input()函数 input()函数主要用于获取用户从标准输入中输入的数据。函数的使用方式如下: varia…

    python 2023年6月5日
    00
  • python xlwt如何设置单元格的自定义背景颜色

    Sure! 首先,我们需要安装 xlwt 库,通过 pip install xlwt 命令进行安装即可。然后我们就可以开始设置单元格自定义背景颜色了。 设置单元格的自定义背景颜色 第一步:导入必要的模块 我们需要导入 xlwt 库以及 RGB 颜色模块,代码如下: import xlwt from xlwt import Workbook from xlwt…

    python 2023年5月13日
    00
合作推广
合作推广
分享本页
返回顶部