Ruby爬虫技术:深度解析Zhihu网页结构
require 'nokogiri'
require 'open-uri'
# 定义一个方法来下载和解析知乎页面
def parse_zhihu_page(url)
# 使用Nokogiri和open-uri下载页面
doc = Nokogiri::HTML(open(url))
# 提取问题标题
question_title = doc.css('head title').text.match(/.*? - Zhihu/) { |m| m[0].delete(' - Zhihu') }
# 提取问题详情
question_details = doc.css('.QuestionHeader-detail').text
# 提取所有高质量回答的用户名
top_answers = doc.css('.AnswerItem').map do |answer|
author = answer.css('.AnswerItem-authorName a').text
{ author: author }
end
# 返回一个包含所有信息的哈希
{
title: question_title,
details: question_details,
top_answers: top_answers
}
end
# 使用方法
url = 'https://www.zhihu.com/question/29134179'
parsed_data = parse_zhihu_page(url)
puts parsed_data
这段代码使用了Nokogiri库来解析HTML,并使用OpenURI来下载知乎页面。代码提取了问题标题、详情,并遍历高质量回答列表来提取作者名字。最后,它返回了一个包含所有提取信息的哈希。这个例子展示了如何使用Ruby进行基本的网页爬取和数据解析。
评论已关闭