GVKun编程网logo

从Ruby到Python:Crawlers(ruby on rails python)

11

本文将介绍从Ruby到Python:Crawlers的详细情况,特别是关于rubyonrailspython的相关信息。我们将通过案例分析、数据研究等多种方式,帮助您更全面地了解这个主题,同时也将涉及

本文将介绍从Ruby到Python:Crawlers的详细情况,特别是关于ruby on rails python的相关信息。我们将通过案例分析、数据研究等多种方式,帮助您更全面地了解这个主题,同时也将涉及一些关于Crawlab 准备之 python+scrapy 环境搭建、CrawlerProcess与CrawlerRunner、Groovy中的Crawler(JSoup VS Crawler4j)、How to Device a Crawler in Python的知识。

本文目录一览:

从Ruby到Python:Crawlers(ruby on rails python)

从Ruby到Python:Crawlers(ruby on rails python)

过去几天,我已经开始学习python。我想知道用python编写爬虫的等效方法。

所以在红宝石中我使用:

  1. nokogiri 用于抓取html并通过css标签获取内容
  2. Net::HTTPNet::HTTP::Get.new(uri.request_uri).body从URL获取JSON数据

python中的这些等效项是什么?

答案1

小编典典

主要是,您必须将“抓取器”
/抓取器(将从Web服务器下载文件/数据的python库/程序/函数)和将读取此数据并解释数据的解析器分开。就我而言,我必须抓取并获得一些“公开”的政府信息,但这些信息对下载/数据不友好。对于这个项目,我使用了scrapy
[1]。

主要是设置“ starter_urls”,即我的机器人将抓取/获取的URL,并在使用函数“解析器”检索/解析此数据之后。

对于解析/检索,您将需要一些html,lxml提取器,因为90%的数据就是这样。

现在关注您的问题:

用于数据爬网

  1. cra草
  2. 请求[2]
  3. Urllib [3]

用于解析数据

  1. Scrapy / lxml或scrapy + other
  2. lxml [4]
  3. 美丽汤[5]

并且请记住“抓取”,抓取不仅适用于网络,也适用于电子邮件。您可以在此处查看有关此问题的另一个问题[6]

[1] = http://scrapy.org/

[2] -http://docs.python-requests.org/en/latest/

[3]
-http://docs.python.org/library/urllib.html

[4] -http://lxml.de/

[5]
-http://www.crummy.com/software/BeautifulSoup/

[6]
-Python读取我的Outlook电子邮件邮箱并解析消息

Crawlab 准备之 python+scrapy 环境搭建

Crawlab 准备之 python+scrapy 环境搭建

阅读文本大概需要 3 分钟。

      上篇《分布式爬虫管理平台 Crawlab 开发搭建》把爬虫的管理后台搭建起来了;捣鼓一番发现要真正爬取数据还有下不少的功夫。这篇看看怎么搭建 python+scrapy 环境。


0x01:安装 Python3

  • 下载 python 安装包,具体版本根据自己的系统要求

    https://www.python.org/downloads/windows/

  • 下载安装完成后直接 cmd 输入 python,可正常查看版本

注:安装过程中请注意一定要请勾选 pip 安装并加入到环境变量中,否则后续无法正常安装第三方类库。


0x02:安装爬虫所需的一些常用类库

  • 安装 selenimu 自动化 web 包,cmd 进入任意目录,执行 

        pip install selenium

  • 安装 pymysql 连接 mysql 包,cmd 进入任意目录,执行。方便以后把爬取的数据插入数据库

    pip install pymysql

  • 安装 pillow 图片处理包

    pip install pillow

备注:pillow 官网

       https://pillow.readthedocs.io/en/latest/installation.html

  • 安装 pypiwin32 操作底层 dll 包

    pip install pypiwin32

  • 安装 requests 发送 web 请求包

    pip install requests

  • 安装 scrapy 爬虫框架包

    pip install scrapy

备注:安装爬虫框架必须依赖的第三方类库 Twisted,在使用 pip 安装时会出现下载文件失败而无法安装问题,可以先下载 Twisted 安装文件。然后使用 pip install 安装 Twisted。

      pip install 下载 Twisted 文件绝对路径

下载地址如下(下载与 Python 版本匹配的 whl 文件):

      https://www.lfd.uci.edu/~gohlke/pythonlibs/  

  • 安装解析网页内容包

    pip install bs4



0x03:验证 scrapy 是否安装成功

进入 cmd,输入 scrapy 查看 scrapy 是否安装成功


0x04:创建爬虫项目

  • 创建项目,只需一行命令即可创建名为 tutorial 的 Scrapy 项目:

          scrapy startproject tutorial

tutorial 项目的目录结构大概如下:

  • 创建爬虫的模板文件

    进入 ./tutorial/tutorial 执行:

    scrapy genspider QuoteSpider  "http://www.baidu.com"

  QuoteSpider 是文件名,http://www.baidu.com 是要爬取的域名, ./tutorial/tutorial/spiders 目录下生成一个 QuoteSpider.py 文件。文件内容如下:

修改一下 QuoteSpider.py 文件:

import scrapy

class QuotespiderSpider(scrapy.Spider):
    name = ''QuoteSpider''
    # 允许爬取的域名
    # allowed_domains = [''landchina.mnr.gov.cn'']
    start_urls = [''http://landchina.mnr.gov.cn/scjy/tdzr/index_1.htm'']

    def parse(self, response): # resonse相当于从网络中返回内容所存储的或对应的对象
        fname = response.url.split(''/'')[-1# 定义文件名字,把response中的内容写到一个html文件中
        with open(fname, ''wb''as f: # 从响应的url中提取文件名字作为保存为本地的文件名,然后将返回的内容保存为文件
            f.write(response.body)           
        self.log(''Saved file %s.'' % fname) # self.log是运行日志,不是必要的

这个代码很简单就是爬取一个页面,并保存到文件中。

执行 tutorial 爬虫项目,在 cmd 目录中执行

scrapy crawl QuoteSpider

执行日志如下

可以在 tutorial 目录下看的 index_1.htm 文件;该文件就是爬取到的内容。





往期精彩



01 Sentinel 如何进行流量监控

02 Nacos 源码编译

03 基于 Apache Curator 框架的 ZooKeeper 使用详解

04 spring boot 项目整合 xxl-job

05 互联网支付系统整体架构详解

关注我

每天进步一点点

喜欢!在看☟

本文分享自微信公众号 - JAVA 乐园(happyhuangjinjin88)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与 “OSC 源创计划”,欢迎正在阅读的你也加入,一起分享。

CrawlerProcess与CrawlerRunner

CrawlerProcess与CrawlerRunner

Scrapy
1.x文档
说明,有两种方法可以 通过脚本运行Scrapy Spider

  • 使用 CrawlerProcess
  • 使用 CrawlerRunner

两者有什么区别?我什么时候应该使用“进程”,什么时候应该使用“运行器”?

Groovy中的Crawler(JSoup VS Crawler4j)

Groovy中的Crawler(JSoup VS Crawler4j)

我希望在Groovy中开发一个Web爬虫(使用Grails框架和MongoDB数据库),它能够抓取网站,创建站点URL列表及其资源类型,内容,响应时间和涉及的重定向数量.

我正在讨论JSoup vs Crawler4j.我已经阅读了他们基本上做了什么,但我无法理解两者之间的区别.任何人都可以建议哪个更适合上述功能?或者比较两者完全不正确?

谢谢.

解决方法

Crawler4J是一个爬虫,Jsoup是一个解析器.实际上你可以/应该使用两者.
Crawler4J是一个简单的多线程接口,用于获取所需网站的所有网址和所有页面(内容).之后你可以使用Jsoup来解析数据,使用惊人的(jquery-like)css选择器并实际上用它做一些事情.当然,您必须考虑动态(生成javascript)内容.如果你也想要那些内容,那么你必须使用其他包含javascript引擎(无头浏览器解析器)的东西,如 htmlunit或 webdriver(selenium),它将在解析内容之前执行javascript.

How to Device a Crawler in Python

How to Device a Crawler in Python

Learning pool:

urllib2: 

http://www.pythonforbeginners.com/python-on-the-web/how-to-use-urllib2-in-python/

Python tidbits:

http://nbviewer.ipython.org/url/www.cs.sfu.ca/~anoop/teaching/CMPT-413-Spring-2014/python-tidbits.ipynb

======================================================================================




关于从Ruby到Python:Crawlersruby on rails python的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于Crawlab 准备之 python+scrapy 环境搭建、CrawlerProcess与CrawlerRunner、Groovy中的Crawler(JSoup VS Crawler4j)、How to Device a Crawler in Python的相关知识,请在本站寻找。

本文标签:

上一篇使用Python和Rpy2进行统计测试(Kolmogorov和T检验)(python 统计检验)

下一篇具有两个等高子项的Flexbox布局,其中一个子项包含带有滚动内容的嵌套flexbox