利用requests(请求库)将网页源代码爬取下来,利用pyquery(解析库)解析后,把数据保存TXT文本文件。具体爬取知乎上“发现”页面的“热门话题”部分,将其问题和答案统一保存成文本形式。
时间: 2024-09-09 08:02:54 浏览: 72
要使用Python的`requests`库和`pyquery`库来爬取知乎“发现”页面的“热门话题”部分,并将问题和答案保存到TXT文本文件中,你可以按照以下步骤进行操作:
1. 使用`requests`库发起网络请求,获取知乎“发现”页面的HTML内容。
2. 利用`pyquery`库解析获取到的HTML内容,提取出“热门话题”部分的问题和答案。
3. 将提取的数据格式化成字符串。
4. 将格式化后的字符串保存到TXT文件中。
以下是一个简单的代码示例:
```python
import requests
from pyquery import PyQuery as pq
# 步骤1: 发起请求获取网页内容
url = 'https://www.zhihu.com/discover'
response = requests.get(url)
response.encoding = response.apparent_encoding # 为了正确解码中文
# 步骤2: 解析HTML并提取“热门话题”的问题和答案
doc = pq(response.text)
hot_questions = doc.find('.DiscoveryItemQuestion')
content = []
for question in hot_questions:
title = pq(question).find('.QuestionHeader-title').text()
answer = pq(question).find('.AnswerContent').text()
content.append(f"问题: {title}\n答案: {answer}\n")
# 步骤3: 格式化字符串
formatted_text = ''.join(content)
# 步骤4: 保存到TXT文件
with open('zhihu_hot_topics.txt', 'w', encoding='utf-8') as f:
f.write(formatted_text)
print('数据已保存到 zhihu_hot_topics.txt 文件中。')
```
请注意,上述代码仅作为示例使用,实际的网页结构可能会有所不同,因此选择器可能需要根据实际页面结构进行调整。另外,知乎网站可能有反爬虫机制,直接爬取可能会遇到一些问题,如需要处理cookies、headers、可能的IP封禁等。
阅读全文