首页 > 编程语言 >医药公司重金请我用Ruby采集国产药品官方数据

医药公司重金请我用Ruby采集国产药品官方数据

时间:2024-01-11 11:06:43浏览次数:25  
标签:HTML get 爬虫 Nokogiri html 重金 Ruby 我们 医药公司

爬虫程序是由一系列的代码组成的,通过这些代码,爬虫程序可以从网页中获取信息。今天有个医药公司想要一些药品数据,让我里一共Ruby编写一个爬虫程序,采集一些他们需要的药品数据信息,术业有专攻所以就找我这位大神过去帮忙,其实这些都没啥难的,以我经验分分钟搞定,套用目标躺着都把钱赚了。

在这个例子里,我们将用Ruby编写一个爬虫程序,爬取 国产药品官方数据采集 的内容。我们将使用代理IP来保护爬虫程序不被网站封锁。

医药公司重金请我用Ruby采集国产药品官方数据_HTML

首先,我们需要安装两个库:Nokogiri和HTTParty。这两个库是用来处理HTML和发送HTTP请求的。

# 安装Nokogiri和HTTParty库
gem 'nokogiri'
gem 'httparty'

然后,我们需要定义一个函数,这个函数会接收一个URL作为参数,然后发送一个HTTP GET请求到这个URL。我们使用HTTParty库来发送这个请求。

require 'httparty'
require 'nokogiri'

def get_html(url)
    提取免费IP (url) jshk.com.cn/mb/reg.asp?kefu=xjy&51cto
  response = HTTParty.get(url, proxy: {http: {host: 'duoip', port: 8000}})
  response.body
end

在这个函数中,我们首先导入了HTTParty和Nokogiri库。然后,我们定义了一个函数get_html,它接收一个URL作为参数。然后,我们使用HTTParty.get方法发送一个HTTP GET请求到这个URL,参数proxy是一个哈希,其中包含了代理信息。最后,我们返回了请求的响应体。

接下来,我们需要解析HTML内容。我们使用Nokogiri库来解析HTML。

def parse_html(html)
  doc = Nokogiri::HTML(html)
  doc.css('.class_name').text
end

在这个函数中,我们首先导入了Nokogiri库。然后,我们定义了一个函数parse_html,它接收一个HTML字符串作为参数。然后,我们使用Nokogiri::HTML方法创建了一个Nokogiri::HTML对象。接着,我们使用CSS选择器来选择我们要提取的内容。在这个例子中,我们选择所有class_name为'.class_name'的元素,并提取它们的文本。

最后,我们调用这两个函数,从网页中提取我们需要的信息。

url = 'http://www.example.com'
html = get_html(url)
print parse_html(html)

在这个例子中,我们首先定义了一个URL,然后调用get_html函数发送一个HTTP GET请求到这个URL,获取HTML内容。然后,我们调用parse_html函数,从HTML内容中提取我们需要的信息,并打印出来。

上面就是爬虫的一些基本的流程,后期也方便增加项目的时候用来修改,非常灵活,也使用大部分的网站爬虫,但是在做爬虫的时候一定要注意网站反爬虫机制以及网站限制IP的问题。如果各位有任何问题都可以留言讨论。

标签:HTML,get,爬虫,Nokogiri,html,重金,Ruby,我们,医药公司
From: https://blog.51cto.com/u_13488918/9193934

相关文章

  • ruby实战手册(22)-wxruby(1)
    目录概述button`概述wxRuby3是一个针对Ruby的跨平台GUI库,基于成熟的针对C++的wxWidgetsGUI工具包。它尽可能地使用本地小部件,为Windows、OSX和Linux/GTK上的GUI应用程序提供正确的外观、感觉和行为。wxRuby旨在为在Ruby中开发专业标准的桌面应用程序提供一个全面的解决方案。......
  • 使用Ruby编写的代理爬虫程序:抓取dy视频播放量接口数据并解析(附详细中文解释)
    随着互联网的快速发展,网络数据的获取变得愈发重要。在某些情况下,我们可能需要通过代理来访问特定的网站或API,以确保数据的准确性和可靠性。本文将介绍如何使用Ruby编写一个代理爬虫程序,以抓取dy视频播放量接口的数据并进行解析。准备工作首先,我们需要引入两个关键的Ruby库:open-uri......
  • 2023最新中级难度Ruby面试题,包含答案。刷题必备!记录一下。
    好记性不如烂笔头内容来自面试宝典-中级难度Ruby面试题合集问:请解释一下Ruby中的方法可见性修饰符有哪些,分别代表什么含义?在Ruby中,方法可见性修饰符用于定义一个方法或变量在类和子类中的可见性和可访问性。这些修饰符可以控制其他代码对它们的访问权限。以下是Ruby中主......
  • 2023最新高级难度Ruby面试题,包含答案。刷题必备!记录一下。
    好记性不如烂笔头内容来自面试宝典-高级难度Ruby面试题合集问:在Ruby中,如何使用CAPI来扩展Ruby的功能?请举例说明。在Ruby中,可以通过CAPI来扩展Ruby的功能。使用CAPI编写Ruby扩展可以实现高性能的代码,并且允许你利用C语言的强大功能和灵活性。以下是一个简单的例子,展示......
  • 2023最新初级难度Ruby面试题,包含答案。刷题必备!记录一下。
    好记性不如烂笔头内容来自面试宝典-初级难度Ruby面试题合集问:什么是Ruby语言?请简要介绍一下Ruby的特点和用途。Ruby是一种面向对象的、动态类型的脚本语言,由日本人松本行弘(YukihiroMatsumoto)于1993年开发。它的设计目标是简单、易读和易于编写,同时具有强大的功能和优雅......
  • Flutter子工程编译,Ruby升级及Cocoapods安装问题集
    背景:工程为iOS原生与Flutter混合开发的工程,在编译Flutter子工程的过程中报了一个错,一度让我以为是ruby与pod的版本不兼容导致了一些奇奇怪怪的问题,随即来回折腾了Ruby环境升级与pod的升级安装。问题1:flutter子工程执行了flutterpubget,执行flutterbuildios--no-codesign时,报......
  • Ruby 版本升级
    一、升级原因在开发shopifyapp的时候,提示我当前的Ruby版本不支持(如下图),所以需要升级Ruby。由于Ruby中的一些Gem依赖于OpenSSL库,所以更改Ruby版本,还需要安装正确版本的OpenSSL。下面的升级过程会先安装OpenSSL1.1,再安装Ruby3.2。二、升级过程1、降级OpenSSL......
  • Mac brew升级ruby
    安装brewinstallbrew安装结果如下IfyouneedtohaverubyfirstinyourPATH,run:echo'exportPATH="/opt/homebrew/opt/ruby/bin:$PATH"'>>~/.zshrcForcompilerstofindrubyyoumayneedtoset:exportLDFLAGS="-L/opt/ho......
  • JetBrains RubyMine 2023.3 (macOS, Linux, Windows) - 最智能的 Ruby 与 Rails IDE
    JetBrainsRubyMine2023.3(macOS,Linux,Windows)-最智能的Ruby与RailsIDE请访问原文链接:https://sysin.org/blog/jb-rubymine-2023/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgJetBrainsRubyMine-最智能的Ruby与RailsIDE为什么选择RubyMine改......
  • ruby安装
     vimDockerfileFROMcentos:systemdADDruby-3.2.2.tar.gz/data/WORKDIR/data/ruby-3.2.2RUNyumupdate-y\&&yuminstall-ygccopenssl-devellibyaml-devellibffi-develreadline-develzlib-develgdbm-develncurses-develmakeRUNyum......