用ruby如何写一个爬虫脚本
时间: 2024-06-08 11:09:48 浏览: 28
以下是一个简单的 Ruby 爬虫脚本示例,可以爬取指定网站的标题和链接:
```ruby
require 'open-uri'
require 'nokogiri'
url = 'https://www.example.com'
html = open(url)
doc = Nokogiri::HTML(html)
titles = doc.css('h2.title').map(&:text)
links = doc.css('a.link').map { |link| link['href'] }
titles.each_with_index do |title, index|
puts "#{index + 1}. #{title}: #{links[index]}"
end
```
这个脚本使用了 `open-uri` 和 `nokogiri` 两个 Ruby 库来获取并解析网页内容。你可以根据自己的需要修改选择器和输出方式。注意,爬虫脚本需要合法且合理地使用,不要滥用以避免对网站造成负面影响。
相关问题
用ruby写个冒泡排序
下面是用Ruby编写的冒泡排序算法:
seq = [3, 4, 9, 0, 2, 5, 9, 7, 1]
n = seq.length
for i in 0..n-1
for j in 0..n-i-2
if seq[j] > seq[j+1]
seq[j], seq[j+1] = seq[j+1], seq[j]
end
end
end
puts seq
在这个例子中,我们使用两个循环来实现冒泡排序算法。外层循环负责控制每一轮的比较次数,内层循环负责进行相邻元素的比较并交换位置。如果前一个元素比后一个元素大,则它们交换位置。这样每一轮比较后,最大的元素就会被交换到最后的位置。通过多次这样的比较和交换,整个序列就会被排序好。最后,我们输出排序后的结果。
请注意,这只是一个基本的冒泡排序算法的示例,你可以根据自己的需要进行相应的修改和优化。
写一个ruby接口案例
当然,下面是一个简单的Ruby接口案例:
```ruby
require 'sinatra'
# GET请求的接口
get '/api/hello' do
content_type :json
{ message: 'Hello, World!' }.to_json
end
# POST请求的接口
post '/api/greet' do
content_type :json
name = params[:name]
{ message: "Hello, #{name}!" }.to_json
end
# PUT请求的接口
put '/api/update/:id' do
content_type :json
id = params[:id]
# 执行更新操作...
{ message: "Record with ID #{id} has been updated." }.to_json
end
# DELETE请求的接口
delete '/api/delete/:id' do
content_type :json
id = params[:id]
# 执行删除操作...
{ message: "Record with ID #{id} has been deleted." }.to_json
end
```
上述例子使用了Sinatra框架,它是一个轻量级的Ruby Web框架,适合快速搭建简单的接口。在上面的代码中,我们定义了四个不同的路由,分别对应不同的HTTP请求方法(GET、POST、PUT、DELETE)。
对于GET请求的`/api/hello`接口,它返回一个JSON格式的响应,包含一条简单的问候消息。
对于POST请求的`/api/greet`接口,它从请求参数中获取名字,并返回一个包含问候消息的JSON响应。
对于PUT请求的`/api/update/:id`接口,它从URL参数中获取ID,并执行相应的更新操作,然后返回一个JSON响应。
对于DELETE请求的`/api/delete/:id`接口,它从URL参数中获取ID,并执行相应的删除操作,然后返回一个JSON响应。
以上只是一个简单的示例,实际的接口可能涉及更复杂的逻辑和数据处理。但这个例子可以帮助你了解如何使用Ruby构建一个简单的接口。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)