python爬取微博数据并下载
时间: 2023-08-29 14:06:46 浏览: 50
爬取微博数据并下载可以使用 Python 的 requests 库和 BeautifulSoup 库,同时还需要使用 Python 的 os 库和 urllib 库。以下是一个简单的爬取微博数据并下载的代码示例:
``` python
import requests
from bs4 import BeautifulSoup
import os
import urllib
url = 'https://weibo.com/u/1234567890'
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)
soup = BeautifulSoup(response.text, 'html.parser')
weibo_list = soup.find_all('div', class_='WB_text W_f14')
for weibo in weibo_list:
text = weibo.get_text().strip()
print(text)
imgs = weibo.find_all('img')
for img in imgs:
img_url = img['src']
img_name = img_url.split('/')[-1]
img_path = os.path.join('images', img_name)
urllib.request.urlretrieve(img_url, img_path)
print('downloaded:', img_path)
```
其中,`imgs` 是根据 BeautifulSoup 对象解析得到的微博内容中的所有图片列表,`for` 循环遍历列表并使用 `urllib.request.urlretrieve()` 方法下载每张图片,并将其保存在本地的 `images` 文件夹中。
需要注意的是,由于微博网站的反爬机制比较严格,如果频繁地发送请求可能会被封禁,因此需要控制好请求频率,以免被封禁。同时,下载图片时可能会遇到图片不存在或者无法下载的情况,因此需要加入异常处理机制。