请用Python爬虫爬取新浪新闻,要求有新闻类型,正文内容,标题,作者,发布时间,点赞数,输出类型为json
时间: 2024-06-09 20:11:42 浏览: 224
好的,以下是Python爬虫爬取新浪新闻并输出json格式数据的示例代码:
```python
import requests
from bs4 import BeautifulSoup
import json
# 设置请求头,模拟浏览器访问
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'}
# 新浪新闻首页
url = 'https://news.sina.com.cn/'
# 发送get请求
response = requests.get(url, headers=headers)
# 解析html
soup = BeautifulSoup(response.text, 'lxml')
# 获取新闻列表
news_list = soup.select('.news-2')
# 遍历新闻列表,提取数据
data_list = []
for news in news_list:
# 新闻类型
news_type = news.select('.news-type')[0].text
# 标题
title = news.select('.news-title')[0].text
# 链接
link = news.select('.news-title')[0].get('href')
# 作者
author = news.select('.news-source')[0].text.strip()
# 发布时间
pub_time = news.select('.news-time')[0].text.strip()
# 点赞数
like_num = news.select('.num')[0].text
# 正文内容
resp = requests.get(link, headers=headers)
content_soup = BeautifulSoup(resp.text, 'lxml')
content = content_soup.select('.article')[0].text.strip()
# 构造数据字典
data = {'news_type': news_type,
'title': title,
'link': link,
'author': author,
'pub_time': pub_time,
'like_num': like_num,
'content': content}
# 将数据字典添加到列表中
data_list.append(data)
# 输出json格式数据
json_data = json.dumps(data_list, ensure_ascii=False)
print(json_data)
```
以上代码将爬取新浪新闻首页的新闻数据,并输出json格式数据,包括新闻类型、正文内容、标题、作者、发布时间、点赞数等信息。
阅读全文