写一个python爬取新闻热搜的代码
时间: 2023-03-12 09:04:40 浏览: 135
下面是一个爬取新闻热搜的代码示例,假设你想爬取新浪新闻热搜:
```
import requests
from bs4 import BeautifulSoup
url = "https://s.weibo.com/top/summary?Refer=top_hot&topnav=1&wvr=6"
header = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36"
}
response = requests.get(url, headers=header)
soup = BeautifulSoup(response.text, "lxml")
# 获取新闻热搜列表
hot_list = soup.select("td.td-01 > a")
for hot in hot_list:
print(hot.text)
```
这段代码会输出新闻热搜的文本。希望对你有所帮助!
相关问题
使用python爬取微博热门新闻并且输出到一个文本文档里
以下是使用Python爬取微博热门新闻并输出到文本文档的示例代码:
```python
import requests
from bs4 import BeautifulSoup
# 微博热搜的URL
url = "https://s.weibo.com/top/summary?cate=realtimehot"
# 发送HTTP请求并获取响应内容
response = requests.get(url)
html = response.text
# 使用BeautifulSoup解析HTML
soup = BeautifulSoup(html, "html.parser")
# 获取热门新闻的列表
news_list = soup.select(".td-02 a")
# 打开一个文本文件用于写入热门新闻
with open("weibo_hot_news.txt", "w", encoding="utf-8") as f:
# 遍历热门新闻列表,依次写入文件
for news in news_list:
news_title = news.get_text(strip=True)
f.write(news_title + "\n")
```
以上代码会爬取微博热搜的页面,获取热门新闻的标题,并将其写入一个名为"weibo_hot_news.txt"的文本文件中。你可以修改代码来适应你所需的输出格式。
利用python的BeautifulSoup编写一个爬虫代码,爬取新浪微博前十条热搜的标题、日期以及新闻内容,并将结果保存至csv文件中。
### 回答1:
以下是爬取新浪微博前十条热搜的标题、日期以及新闻内容的Python代码:
```python
import requests
from bs4 import BeautifulSoup
import csv
url = 'https://s.weibo.com/top/summary?Refer=top_hot&topnav=1&wvr=6'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
hot_list = soup.find_all('td', class_='td-02')
with open('weibo_hot.csv', 'w', newline='', encoding='utf-8') as f:
writer = csv.writer(f)
writer.writerow(['标题', '日期', '新闻内容'])
for hot in hot_list[:10]:
title = hot.find('a').get('title')
date = hot.find('span').get_text()
news_url = 'https://s.weibo.com' + hot.find('a').get('href')
news_response = requests.get(news_url)
news_soup = BeautifulSoup(news_response.text, 'html.parser')
content = news_soup.find('div', class_='content').get_text().strip()
writer.writerow([title, date, content])
```
代码的主要步骤如下:
1. 使用requests库发送请求,获取新浪微博热搜页面的HTML代码;
2. 使用BeautifulSoup库解析HTML代码,获取前十条热搜的标题、日期和新闻链接;
3. 遍历每一条热搜,发送新闻链接的请求,获取新闻页面的HTML代码;
4. 使用BeautifulSoup库解析新闻页面的HTML代码,获取新闻内容;
5. 使用csv库将热搜的标题、日期和新闻内容写入CSV文件中。
运行上述代码后,将会在当前目录下生成一个名为“weibo_hot.csv”的CSV文件,其中包含了前十条热搜的标题、日期和新闻内容。
### 回答2:
下面是一个使用Python的BeautifulSoup库编写的简单爬虫代码,用于爬取新浪微博前十条热搜的标题、日期和新闻内容,并将结果保存到CSV文件中:
```python
import requests
from bs4 import BeautifulSoup
import csv
def scrape_weibo_hotsearch():
url = 'https://s.weibo.com/top/summary?cate=realtimehot'
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')
hotsearch_items = soup.find_all('tr', class_='item_top')
hotsearch_data = []
for item in hotsearch_items:
title = item.find('td', class_='td-02').a.text
date = item.find('td', class_='td-03').text.strip()
content = item.find('td', class_='td-02').p.text
hotsearch_data.append([title, date, content])
# 保存到CSV文件
with open('weibo_hotsearch.csv', mode='w', encoding='utf-8', newline='') as file:
writer = csv.writer(file)
writer.writerow(['标题', '日期', '内容'])
writer.writerows(hotsearch_data)
if __name__ == "__main__":
scrape_weibo_hotsearch()
```
请注意,该爬虫代码爬取的是新浪微博前十条热搜,而非新闻标题。为了爬取新闻标题,你可能需要访问不同的网页或修改代码中的选择器。另外,这个代码只是一个简单的示例,可能无法处理所有特殊情况。在实际使用时,你可能需要根据具体网页的结构进行适当的调整。
### 回答3:
爬虫是一种自动化获取网页数据的工具,在这个问题中,我们使用Python的BeautifulSoup库来编写一个爬虫代码,以爬取新浪微博前十条热搜的标题、日期和新闻内容,并将结果保存至CSV文件。
首先,我们需要导入需要的库,包括requests、bs4和csv。
```python
import requests
from bs4 import BeautifulSoup
import csv
```
接下来,我们定义一个函数来获取网页的HTML源代码。
```python
def get_html(url):
response = requests.get(url)
return response.text
```
然后,我们定义一个函数来解析HTML源代码,提取所需信息并保存至CSV文件。
```python
def save_to_csv(html):
# 创建CSV文件
with open('weibo_hot.csv', 'w', encoding='utf-8', newline='') as f:
writer = csv.writer(f)
writer.writerow(['标题', '日期', '新闻内容'])
soup = BeautifulSoup(html, 'html.parser')
# 获取前十条热搜新闻
hot_news = soup.find_all('div', class_='hotnews')
for news in hot_news:
title = news.find('a', class_='news-title').text.strip()
date = news.find('span', class_='time').text.strip()
content = news.find('p', class_='news-text').text.strip()
# 将数据写入CSV文件
writer.writerow([title, date, content])
print("数据已保存至weibo_hot.csv文件")
```
最后,我们调用这两个函数来获取HTML源代码并保存数据至CSV文件。
```python
if __name__ == '__main__':
url = 'https://s.weibo.com/top/summary?Refer=top_hot&topnav=1&wvr=6'
html = get_html(url)
save_to_csv(html)
```
通过运行以上代码,我们可以获取到新浪微博前十条热搜的标题、日期和新闻内容,并将结果保存至名为weibo_hot.csv的CSV文件中。
阅读全文