import requests from bs4 import BeautifulSoup import csv # 请求URL url = 'https://s.weibo.com/top/summary' # 请求头部信息 headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'} # 发送请求 response = requests.get(url, headers=headers) # 解析HTML页面 soup = BeautifulSoup(response.text, 'lxml') # 获取热搜列表 hot_list = soup.find_all('tr')[1:11] # 输出展示和保存到csv文件 with open('weibo_hot.csv', 'w', newline='', encoding='utf-8-sig') as csvfile: writer = csv.writer(csvfile) writer.writerow(['排名', '标题', '日期', '内容']) for i, item in enumerate(hot_list): title = item.find_all('a')[0].text date = item.find_all('td')[1].text content = item.find_all('td')[2].text.strip() writer.writerow([i+1, title, date, content]) print(f"{i+1}. 标题:{title} 日期:{date} 内容:{content}")
时间: 2023-07-15 12:10:24 浏览: 112
这是一个爬取微博热搜榜的Python程序。首先,使用requests库发送GET请求获取HTML页面,然后使用BeautifulSoup库解析HTML页面。接着,找到热搜列表所在的HTML标签,并且用find_all方法获取前10个热搜。最后,将热搜的排名、标题、日期和内容写入CSV文件,并且在控制台输出热搜的详细信息。
相关问题
python爬虫微博热搜:https://s.weibo.com/top/summary 抓取微博热搜榜单,序号、关键词、关键词链接,并存到csv文件中。
要使用Python爬取微博热搜榜单,并将序号、关键词、关键词链接存到CSV文件中,可以按照以下步骤进行:
1. 安装所需的库:
- `requests`:用于发送HTTP请求。
- `BeautifulSoup`:用于解析HTML内容。
- `pandas`:用于处理和保存数据到CSV文件。
```bash
pip install requests beautifulsoup4 pandas
```
2. 编写爬虫代码:
```python
import requests
from bs4 import BeautifulSoup
import pandas as pd
# 微博热搜URL
url = 'https://s.weibo.com/top/summary'
# 发送HTTP请求
response = requests.get(url)
response.encoding = 'utf-8'
# 解析HTML内容
soup = BeautifulSoup(response.text, 'html.parser')
# 找到热搜榜单的表格
table = soup.find('table', {'class': 'table'})
# 提取表格中的数据
data = []
for tr in table.find_all('tr')[1:]: # 跳过表头
tds = tr.find_all('td')
if len(tds) >= 3:
index = tds[0].get_text(strip=True)
keyword = tds[1].get_text(strip=True)
link = 'https://s.weibo.com' + tds[1].find('a')['href']
data.append([index, keyword, link])
# 创建DataFrame
df = pd.DataFrame(data, columns=['序号', '关键词', '关键词链接'])
# 保存到CSV文件
df.to_csv('weibo_hot_search.csv', index=False, encoding='utf-8-sig')
print('微博热搜榜单已保存到weibo_hot_search.csv')
```
3. 运行代码:
- 保存上述代码到一个Python文件,例如`weibo_hot_search.py`。
- 在命令行中运行该文件:
```bash
python weibo_hot_search.py
```
4. 检查结果:
- 运行成功后,会在当前目录生成一个`weibo_hot_search.csv`文件,里面包含了序号、关键词和关键词链接。
python爬虫动态网页:微博热搜:https://s.weibo.com/top/summary 抓取微博热搜榜单,序号、关键词、关键词链接,并存到csv文件中。
要抓取微博热搜榜单并将数据存储到CSV文件中,可以使用Python的`requests`库来获取网页内容,`BeautifulSoup`库来解析HTML,以及`csv`库来写入CSV文件。以下是一个完整的示例代码:
```python
import requests
from bs4 import BeautifulSoup
import csv
# 微博热搜URL
url = 'https://s.weibo.com/top/summary'
# 发送HTTP请求
response = requests.get(url)
# 检查请求是否成功
if response.status_code == 200:
# 解析HTML内容
soup = BeautifulSoup(response.text, 'html.parser')
# 找到热搜榜单的表格
table = soup.find('table', {'class': 'table'}).tbody
# 打开CSV文件
with open('weibo_hot_search.csv', mode='w', newline='', encoding='utf-8') as file:
writer = csv.writer(file)
# 写入表头
writer.writerow(['序号', '关键词', '关键词链接'])
# 遍历每一行数据
for tr in table.find_all('tr'):
tds = tr.find_all('td')
# 跳过表头
if len(tds) < 2:
continue
# 获取序号、关键词和关键词链接
index = tds[0].get_text(strip=True)
keyword = tds[1].get_text(strip=True)
link = 'https://s.weibo.com' + tds[1].a['href']
# 写入CSV文件
writer.writerow([index, keyword, link])
print('微博热搜榜单已成功抓取并保存到weibo_hot_search.csv文件中')
else:
print('请求失败,状态码:', response.status_code)
```
### 代码解释:
1. **发送HTTP请求**:使用`requests.get`方法获取网页内容。
2. **解析HTML内容**:使用`BeautifulSoup`解析HTML,并找到热搜榜单的表格。
3. **写入CSV文件**:使用`csv`库打开一个CSV文件,写入表头,然后遍历每一行数据,写入序号、关键词和关键词链接。
4. **错误处理**:检查请求是否成功,如果失败则输出错误信息。
### 注意事项:
- 确保安装了`requests`和`BeautifulSoup`库,可以使用`pip install requests beautifulsoup4`进行安装。
- 该代码适用于当前微博热搜页面的结构,如果页面结构发生变化,可能需要调整解析逻辑。
阅读全文
相关推荐















