利用python爬取知乎上“推荐”页面部分,将其问题和答案统一保存成文本形式。并给出完整的代码
时间: 2024-09-09 18:04:56 浏览: 54
要在Python中爬取知乎上的“推荐”页面并保存问题和答案为文本,你可以使用`requests`库来获取网页内容,使用`BeautifulSoup`库来解析HTML,并使用文件操作将结果保存到文本文件中。以下是一个简化的示例代码:
```python
import requests
from bs4 import BeautifulSoup
#知乎推荐页面的URL,这个URL可能会变化,需要根据实际情况进行调整
url = 'https://www.zhihu.com/explore'
#模拟浏览器请求,设置headers
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)
#确保请求成功
response.raise_for_status()
#解析网页内容
soup = BeautifulSoup(response.text, 'html.parser')
#查找问题和答案部分,这部分的HTML结构可能发生变化,需要根据实际网页结构进行调整
questions_answers = soup.find_all('div', {'class': 'question-summary'})
#准备保存数据的文件
with open('zhihu_questions_answers.txt', 'w', encoding='utf-8') as file:
for qa in questions_answers:
#提取问题文本,可能需要根据实际网页结构调整选择器
question = qa.find('h2').get_text(strip=True)
#提取答案文本,可能需要根据实际网页结构调整选择器
answer = qa.find('p').get_text(strip=True)
#将问题和答案保存到文件中
file.write(f'问题: {question}\n答案: {answer}\n\n')
print('爬取完成,数据已保存到zhihu_questions_answers.txt文件中')
```
请注意,上述代码是一个基础示例,实际情况下知乎网页的结构可能与示例中的选择器不匹配,因此你需要根据实际的HTML结构来调整CSS选择器。另外,知乎有可能有反爬虫机制,因此在实际爬取时可能需要处理更复杂的情况,比如登录验证、动态加载的内容等。
在使用爬虫时,请确保遵守知乎的`robots.txt`文件和相关法律法规,不要进行大量或高频率的请求,以免对知乎的服务器造成不必要的负担。
阅读全文