首页
学习
活动
专区
圈层
工具
发布

基于Apify+node+reactvue搭建一个有点意思的爬虫平台

本文介绍的内容来自于笔者之前负责研发的爬虫管理平台, 专门抽象出了一个相对独立的功能模块为大家讲解如何使用nodejs开发专属于自己的爬虫平台.文章涵盖的知识点比较多,包含nodejs, 爬虫框架, 父子进程及其通信...Apify框架介绍和基本使用 apify是一款用于JavaScript的可伸缩的web爬虫库。...); await requestQueue.addRequest({ url: 'https://www.iana.org/' }); const pseudoUrls = [new Apify.PseudoUrl...queue.slice(start, i+1)) start = i } } 复制代码 以上代码即可实现每次同时抓取6个网页, 当第一次任务都结束之后才会执行下一批任务.代码中的urls指的是用户输入的...为了搭建完整的node服务平台,笔者采用了 koa 一款轻量级可扩展node框架 glob 使用强大的正则匹配模式遍历文件 koa2-cors 处理访问跨域问题 koa-static 创建静态服务目录

2.7K20

linux 正则表达式匹配不包含某些字符串的技巧

经常我们会遇到想找出不包含某个字符串的文本,程序员最容易想到的是在正则表达式里使用,^(hede)来过滤”hede”字串,但这种写法是错误的。...我们可以这样写:[^hede],但这样的正则表达式完全是另外一个意思,它的意思是字符串里不能包含‘h',‘e',‘d'三个但字符。那什么样的正则表达式能过滤出不包含完整“hello”字串的信息呢?...你可以理解,正则表达式((?!hede).)*匹配字符串"ABhedeCD"的结果false,因为在e3位置,(?!hede)匹配不合格,它之前有"hede"字符串,也就是包含了指定的字符串。...在正则表达式里, ?! 是否定式向前查找,它帮我们解决了字符串“不包含”匹配的问题。...在hacker news上看到regex golf,几道很有趣的正则表达式的题,有的需要用到不匹配这种匹配,比如需要匹配不包含某个单词的串。

9.9K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    django 1.8 官方文档翻译: 1-2-3 编写你的第一个Django应用,第3部分

    Django 将请求的 URL 从上至下依次匹配列表中的正则表达式,直到匹配到一个为止。 需要注意的是,这些正则表达式不会匹配 GET 和 POST 参数,以及域名。...url() 参数: view 当 Django 匹配了一个正则表达式就会调用指定的视图功能,包含一个 HttpRequest 实例作为第一个参数和正则表达式 “捕获” 的一些值的作为其他参数。...P 将会定义名称用于标识匹配的内容; 而 \d+ 是一个用于匹配数字序列(即一个数字)的正则表达式。 因为 URL 模式是正则表达式,所以你可以毫无限制地使用它们。...它将返回一个包含有给定模板根据给定的上下文渲染结果的 HttpResponse 对象。 抛出 404 异常 现在让我们解决 poll 的详细视图 – 该页显示一个给定 poll 的详细问题。...在 mysite/urls.py 文件 (项目的 urls.py,不是应用的) 中,修改为包含命名空间的定义: from django.conf.urls import patterns, include

    2.9K50

    Django url 反向解析 和 命令空间

    一旦某个正则表达式与请求的URL相匹配,则Django 导入并调用给定的视图,该视图仅为一个单纯的Python 函数(或者是一个基于类的视图)。...如果所匹配的正则表达式返回的是若干个无名组,那么该正则表达式所匹配的内容将被作为位置参数提供给该视图。...关键字参数由与正则表达式相匹配的命名组组成,并且这些关键字参数可以被django.conf.urls.url()的可选参数kwargs覆盖。...在更高级的用法中,可以使用命名的正则表达式组来捕获URL  中的值并以关键字 参数传递给视图。 在Python 正则表达式中,命名正则表达式组的语法是(?...')), # ... snip ... ] 注意,这个例子中的正则表达式没有包含$(字符串结束匹配符),但是包含一个末尾的斜杠。

    3.2K30

    Django路由控制URL详解

    导入并调用匹配行中给定的视图,该视图是一个简单的Python函数(被称为视图函数),或基于类的视图。 视图将获得如下参数: 一个HttpRequest 实例。...如果匹配的正则表达式返回了没有命名的组,那么正则表达式匹配的内容将作为位置参数提供给视图。...关键字参数由正则表达式匹配的命名组组成,但是可以被django.conf.urls.url()的可选参数kwargs覆盖。...在更高级的用法中,可以使用命名的正则表达式组来捕获URL 中的值并以关键字 参数传递给视图。 在Python 正则表达式中,命名正则表达式组的语法是(?...注意,这个例子中的正则表达式没有包含$(字符串结束匹配符),但是包含一个末尾的斜杠。

    1.6K20

    Django基础篇-url路由配置

    互联网上的每个文件都有一个唯一的 URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。...捕获位置参数(可变参数):在 url 函数中,第一个正则表达式使用()括号进行捕获参数。 2. 捕获关键字参数:在 url 函数中,第一个正则表达式使用(?P)进行捕获。...子 url 在配置的时候,其实就是字符串的匹配,一层套一层的。 主 url 匹配,开始的地方不需要加反斜杠。...django.conf.urls.url() 函数可以接收一个可选的第三参数,它是一个字典,表示想要传递给视图函数的额外关键字参数。 主 url 文件 ?...django.template.loader 定义了函数用来加载模板 get_template(template_name,using = None) 该函数使用给定的名称加载模板并返回一个 Template

    2.2K30

    项目实战 | Python爬虫概述与实践(二)

    ) tips: “class”是python的保留关键字,在查找class属性时可以采用以下两种方法 #使用BeautifulSoup自带关键字 class_ second_li=soup.find(...(url) for name,url in zip(movie_names,movie_urls): print(name,':',url) 三、正则表达式 正则表达式是对字符串操作的逻辑公式...,用事先定义好的特定字符或这些字符的组合构造“规则字符串”,用“规则字符串”来查找“给定字符串”是否含有某种子串。...re content1="fdifngidngogdikf89109101d" content2="10dingpng90" patten='\d{2}' #正则表达式的匹配规则是否有两个连续的数字...在得到html文档后,在文档中找到包含电影名和链接的标签,制定正则表达式规则对想要的内容进行检索。

    1.1K10

    Django 视图URLconf3.1

    i=1&p=new,只匹配“/python/1/”部分 正则表达式非命名组,通过位置参数传递给视图 url(r'^([0-9]+)/$', views.detail, name='detail'), 正则表达式命名组...,通过关键字参数传递给视图,本例中关键字参数为id url(r'^(?...性能:urlpatterns中的每个正则表达式在第一次访问它们时被编译,这使得系统相当快 包含其它的URLconfs 在应用中创建urls.py文件,定义本应用中的urlconf,再在项目的settings...urls.py中的配置 url(r'^([0-9]+)/$', views.detail, name='detail'), 匹配部分是:/booktest/1/ 匹配过程:在settings.py中与“...booktest/”成功,再用“1/”与booktest应用的urls匹配 使用include可以去除urlconf的冗余 参数:视图会收到来自父URLconf、当前URLconf捕获的所有参数 在include

    58230

    django之urls系统

    分组命名匹配 上面的示例使用简单的正则表达式分组匹配(通过圆括号)来捕获URL中的值并以位置参数形式传递给视图。...在更高级的用法中,可以使用分组命名匹配的正则表达式组来捕获URL中的值并以关键字参数形式传递给视图。 在Python的正则表达式中,分组命名正则表达式组的语法是(?...如果第一个模式匹配上了,page()函数将使用其默认参数num=“1”,如果第二个模式匹配,page()将使用正则表达式捕获到的num值。...url(r'^admin/', admin.site.urls), url(r'^blog/', include('blog.urls')), # 可以包含其他的URLconfs文件 ]...django.conf.urls.url() 函数可以接收一个可选的第三个参数,它是一个字典,表示想要传递给视图函数的额外关键字参数。

    1.8K70

    Django之路由层

    三、路由层 3.1路由匹配 url第一个参数是一个正则表达式只要该正则表达式能够匹配到内容,就会立刻执行后面的视图函数 而不再往下继续匹配了,Django中进行路由匹配时先直接对接收到的url进行一次路由匹配...3.2有名分组 会将分组内的正则表达式匹配到的内容当做关键字参数传递给视图函数 url(r'^testadd/(?...P\d+)/', views.testadd) #year就是关键字参数的关键字,参数是year匹配到的内容 3.3无名分组 将分组内正则表达式匹配到的内容当做位置参数传递给视图函数如: url...的不同之处是,传给path的第一个参数不再是正则表达式,而是一个完全匹配的路径,相同之处是第一个参数中的匹配字符均无需加前导斜杠 #2、使用尖括号()从url中捕获值,相当于有名分组 #3、中可以包含一个转化器类型...若果没有转换器,将匹配任何字符串,当然也包括了 / 字符 path默认的五种转换器 str,匹配除了路径分隔符(/)之外的非空字符串,这是默认的形式 int,匹配正整数,包含0。

    1.8K21

    创建一个模块应用

    ,包含模块需要的基本文件结构,如下: 2....[ url(r"^$", views.index, name="index") ] 配置好我们模块应用中的urls地址映射之后,需要将这个模块的映射关系包含到我们的根模块mysite的映射关系中才能生效...中进行正则匹配:url(r"^polls", include("polls/urls")),开始打开通过include包含的polls.urls子模块映射文件polls/urls.py 4.进入项目子模块...polls的映射文件中进行匹配,由于polls/路径已经匹配通过,开始匹配polls/后面的路径-> 路径为:""; 进入polls/urls.py中查找对应的路径->url(r"^$", view.index...,用于匹配接收到的url路径,Django会按照顺序进行正则表达式的匹配,匹配成功就会调用指定的资源 参数view:当第一个正则表达式的路径匹配成功时,Django就会开始调用view参数指向的视图函数

    48710

    Django之路由系统

    分组命名匹配   上面的示例使用简单的正则表达式分组匹配(通过圆括号)来捕获URL中的值并以位置参数形式传递给视图。...在更高级的用法中,可以使用分组命名匹配的正则表达式组来捕获URL中的值并以关键字参数形式传递给视图。 在Python的正则表达式中,分组命名正则表达式组的语法是(?...如果第一个模式匹配上了,page()函数将使用其默认参数num=“1”,如果第二个模式匹配,page()将使用正则表达式捕获到的num值。...url(r'^admin/', admin.site.urls), url(r'^blog/', include('blog.urls')), # 可以包含其他的URLconfs文件 ]...django.conf.urls.url() 函数可以接收一个可选的第三个参数,它是一个字典,表示想要传递给视图函数的额外关键字参数。

    1.6K70

    Django来敲门~第一部分【4. 创建第一个模块应用】

    [ url(r"^$", views.index, name="index") ] 配置好我们模块应用中的urls地址映射之后,需要将这个模块的映射关系包含到我们的根模块mysite的映射关系中才能生效...:url(r"^polls", include("polls/urls")),开始打开通过include包含的polls.urls子模块映射文件polls/urls.py 4.进入项目子模块polls...浏览器访问子模块应用 附注:url(regex, view, kw, name)参数解析 参数regex:这是一个正则表达式,用于匹配接收到的url路径,Django会按照顺序进行正则表达式的匹配...,匹配成功就会调用指定的资源 参数view:当第一个正则表达式的路径匹配成功时,Django就会开始调用view参数指向的视图函数,并且将django.http.HttpRequest内置对象作为函数的第一个参数传递给函数并且调用执行函数...参数kw:任意关键字都可以作为参数传递给函数 参数name:给当前的url命名,命名之后就可以在任意地方使用这个url ----

    45910

    Django学习(一) 之 环境搭建

    django_project/urls.py: 该 Django 项目的 URL 声明; 一份由 Django 驱动的网站"目录"。...可以包含变量,例如 ,以从 URL 中捕获参数并将其传递给视图函数。 view: 视图函数,处理与给定路由匹配的请求。可以是一个函数或一个基于类的视图。...kwargs(可选): 一个字典,包含传递给视图函数的额外关键字参数。 name(可选): 为 URL 路由指定一个唯一的名称,以便在代码的其他地方引用它。...name=None): return re_path(regex, view, kwargs, name) regex: 正则表达式,与之匹配的 URL 会执行对应的第二个参数 view。...view: 用于执行与正则表达式匹配的 URL 请求。 kwargs: 视图使用的字典类型的参数。 name: 用来反向获取 URL。

    48910

    Pycharm开发Django项目URL分发器

    因此django给我们提供了一个方法,可以在app内部包含自己的url匹配规则,而在项目的urls.py中再统一包含这个app的urls。使用这个技术需要借助include函数。...其中还有几种常用的类型: str:非空的字符串类型。默认的转换器。但是不能包含斜杠。 int:匹配任意的零或者正数的整形。到视图函数中就是一个int类型。...slug:由英文中的横杠-,或者下划线_连接英文字符或者数字而成的字符串。 uuid:匹配uuid字符串。 path:匹配非空的英文字符串,可以包含斜杠。...传到视图函数中的时候,会作为一个关键字参数传过去。...re_path函数: 有时候我们在写url匹配的时候,想要写使用正则表达式来实现一些复杂的需求,那么这时候我们可以使用re_path来实现。

    1.1K10

    Django的URL路由系统

    ), ] 注意事项    1. urlpatterns中的元素按照书写顺序从上往下逐一匹配正则表达式,一旦匹配成功则不再继续.   2....分组命名匹配   上面的实例使用简单的正则表达式分组匹配(通过圆括号) 来捕获URL中的值并以位置参数形式形式传递给视图.   ...在更高级的用法中,可以使用分组命名匹配的正则表达式组来捕获URL中的值并以关键字参数形式传递给视图.   在Python的正则表达式中,分组命名正则表达式组的语法(?...如果第一个模式匹配上了,page()函数将使用其默认参数num=“1”,如果第二个模式匹配,page()将使用正则表达式捕获到的num值。   ...), url(r'^blog/', include('blog.urls')), # 可以包含其他的URLconfs文件 url(r'^app01/',include('app01.urls

    2.1K40
    领券