在ScrapingHub上部署Scrapy spider

什么是ScrapingHub?

null

Scrapy是一个用于web爬行的开源框架。这个框架是用python编写的,最初是为网页抓取而设计的。Web抓取也可以用于使用API提取数据。ScrapingHub提供了从网页抓取数据的整个服务,即使对于复杂的网页也是如此。

为什么是ScrapingHub?

比如说,一个网站提供了一个输入字段,作为回报,一个基于搜索查询的get响应。其目的是通过输入并获得响应来获取所有数据。现在这个输入字段可以有从“0000”字符串到“9999”字符串的数字,所以简而言之,需要输入10000个,这样就可以从网站上获得所有结果。现在,对于每个请求,比如“0000”,将需要4-5分钟,作为响应,您将获得1000多个字段的数据。它可能会有所不同,因为在最后,网站将返回所有数字以“0000”结尾的数据,而对于网站来说,查询和返回这些数据需要时间。如果我们做一些小数学,那么10000*5=50000分钟,这意味着大约35天。

因此,对于初学者来说,可以使用Python2.7的mechanize模块进行查询,但最终需要35天才能通过不间断地运行PC/笔记本电脑来完成。另一种解决方案是,可以使用多线程和多处理来避免这种情况,但以有组织的方式保存数据并克服这种复杂性需要大量时间。但是使用 痒痒的 将节省大量时间。尽管如此,我们仍然需要运行这个脚本至少1-3天,因为我们正在讨论如何删除数百万数据。因此,要克服这个问题,最好的选择是求助于 ScrapingHub .

ScrapingHub提供了在云上部署Scrapy spider并执行它的功能。作为回报,它将运行我们的蜘蛛24小时(免费用户)或7天(付费),这是值得的。这就是为什么人们可以使用ScrapingHub来节省时间和成本。

如何做到这一点:

步骤1:在本地机器中创建Spider

在里面 前一篇文章 ,我们创建了一个简单的蜘蛛来抓取网页并获取该网站上的所有URL。同样,只需添加一个额外的功能,通过在脚本中维护set并在添加之前进行交叉检查,就可以避免删除重复的url。

# importing scrapy module
import scrapy
class ExtractUrls(scrapy.Spider):
# Name of the spider
crawled = set ()
# Set to avoiding duplicate url
name = "extract"
def start_requests( self ):
# Starting url mentioned
for url in urls:
yield scrapy.Request(url = url,
callback = self .parse)
def parse( self , response):
title = response.css( 'title::text' ).extract_first()
links = response.css( 'a::attr(href)' ).extract()
for link in links:
yield
{
'title' : title,
'links' : link
}
if ( 'geeksforgeeks' in link and
link not in self .crawled):
self .crawled.update(link)
yield scrapy.Request(url = link,
callback = self .parse)


scrapy crawl extract -o links.json

运行这个爬行器之后,它应该能够成功地抓取并将其保存在链接中。但我们需要节省时间,并希望至少运行24小时。所以我们将在ScrapingHub上部署这个蜘蛛。 第2步:在ScrapingHub创建帐户

ScrapingHub登录页面 并使用谷歌或Github登录。它将重定向到仪表板。

图片[1]-在ScrapingHub上部署Scrapy spider-yiteyi-C++库

现在点击CreateProject并提及项目名称。点击Scrapy按钮,因为我们的蜘蛛是用Scrapy框架构建的。

单击后,您将被重定向到项目仪表板,并将看到两个部署选项。 1.使用CLI部署 2.使用Github部署

与CLIm一起做,因为它更受欢迎。让我们切换回本地项目,配置一些设置。 第3步:配置

  • 首先安装shub CLI,这有助于部署代码。
    pip install shub
  • 现在安装后,你需要登录并提及应用程序密钥;这样ScrapingHub就会知道你在做哪个项目,在哪里部署。
    shub login
  • 在登录并写入应用程序密钥后,用户将登录。现在,下一步就是使用以下方法简单地部署它:
    shub deploy ID
  • Id将在代码和部署部分提到,长度为6位。输入后,用户应获得如下输出: 图片[2]-在ScrapingHub上部署Scrapy spider-yiteyi-C++库

    在Spiders仪表板部分,用户可以看到准备就绪的spider。只需点击蜘蛛名称和运行按钮。免费用户将获得1个单元的免费,即用户可以运行一个蜘蛛最多24小时。之后,它将自动停止。用户可以购买单位来延长时间。 图片[3]-在ScrapingHub上部署Scrapy spider-yiteyi-C++库

    通过点击Running Job(运行作业)部分下的项目,它将被重定向到另一个页面,该页面将显示当时所有被刮除的项目。工作区将显示图表;显示蜘蛛的数据。运行spider 5-6小时后,此图是一个完美的可视化效果。

    图片[4]-在ScrapingHub上部署Scrapy spider-yiteyi-C++库

    要在本地机器中获取数据,请转到“项目”部分,然后在右上角单击“导出”按钮。它将显示各种格式,如CSV、JSON、JSON行、XML。值得一提的是,这个功能非常有用,而且确实节省了很多时间。

    图片[5]-在ScrapingHub上部署Scrapy spider-yiteyi-C++库

    使用ScrapingHub,只需部署spider并以首选格式下载,就可以在短短几天内收集大约数百万数据。

    注: 刮取任何网页都不是合法活动。未经允许,不得进行任何刮削操作。

  • © 版权声明
    THE END
    喜欢就支持一下吧
    点赞12 分享