如何使用Nokogiri获取网页中所有bookTitle类的元素?
获取所有bookTitle元素并提取标题数组的方法
你可以通过以下几种方式获取所有.bookTitle元素,并将它们的文本内容存入数组:
方法一:CSS选择器(推荐,语法简洁)
at_css仅返回匹配的第一个元素,改用css方法可获取全部匹配元素,再通过map提取每个元素的文本:
doc = Nokogiri::HTML(URI.open("https://www.goodreads.com/search?utf8=%E2%9C%93&q=barack+obama&search_type=books&search%5Bfield%5D=author")) # 提取所有标题到数组 book_titles = doc.css('.bookTitle').map(&:content) puts book_titles
方法二:XPath选择器
利用你已确认有效的XPath表达式,同样通过map提取文本:
book_titles = doc.xpath('//*[@class="bookTitle"]').map(&:content) puts book_titles
额外优化
如果标题文本存在前后空白,可添加strip处理:
book_titles = doc.css('.bookTitle').map { |title| title.content.strip }
内容的提问来源于stack exchange,提问作者sharataka
相关产品推荐
相关产品推荐

