爬取微博热搜榜前50热搜名称,链接及其实时热度并发送到邮箱
时间: 2024-06-08 22:09:39 浏览: 99
python 小白爬虫实战:使用 scrapy 爬取微博热搜并发送邮箱
抓取微博热搜榜前50热搜名称、链接和实时热度,可以使用 Python 的 requests 库和 BeautifulSoup 库来进行网页爬取和解析,使用 smtplib 库来进行邮件发送。以下是一个示例代码:
```python
import requests
from bs4 import BeautifulSoup
import smtplib
from email.mime.text import MIMEText
# 抓取微博热搜榜页面
url = 'https://s.weibo.com/top/summary'
response = requests.get(url)
# 解析页面内容
soup = BeautifulSoup(response.text, 'html.parser')
trs = soup.find('table').find_all('tr')[1:51]
# 提取热搜名称、链接和实时热度
hot_searches = []
for tr in trs:
tds = tr.find_all('td')
rank = tds[0].text.strip()
name = tds[1].text.strip()
link = tds[1].find('a')['href']
hotness = tds[2].text.strip()
hot_searches.append(f'{rank}. {name} ({hotness})\n{link}')
# 发送邮件
msg = MIMEText('\n'.join(hot_searches))
msg['Subject'] = '微博热搜榜前50'
msg['From'] = 'sender_email@example.com'
msg['To'] = 'recipient_email@example.com'
server = smtplib.SMTP('smtp.example.com', 587)
server.starttls()
server.login('sender_email@example.com', 'password')
server.sendmail('sender_email@example.com', ['recipient_email@example.com'], msg.as_string())
server.quit()
```
需要将代码中的 `url`、`msg['From']`、`msg['To']`、`server`、`server.login()` 和 `server.sendmail()` 替换为你自己的网址、发件人邮箱、收件人邮箱、SMTP服务器地址、发件人邮箱登录密码和SMTP账户名和SMTP授权码。
阅读全文