求助: 集算器 web_crawl 网抓
大佬们,我想用集算器外部库函数 web_crawl 抓取以下网址上的表格:
http://quote.stockstar.com/stock/ranklist_a_1_0_1.html
官网函数参考文档以及论坛中唯一一篇关于网抓的文章中所举例子里的网址都上不去了:
函数参考文档: https://d.raqsoft.com.cn:6443/esproc/func/webcrawl.html
网抓文章: 集算器 SPL 抓取网页数据
所以不能依样画葫芦地玩,网抓这一块非常陌生,我对着文档折腾半天,搞不出名堂。比如我想抓取上述网址中展示的 172 张表格,搞来搞去只能搞到第一张:
上图所示的写法能出结果,会在指定的 save_path 下生成一个以 domain 所示文本命名的文件夹,文件夹里生成一个以网址最后部分命名的 txt 文件 ranklist_a_1_0_1_html.txt,该文件只有数据,没有表头。
如果要抓取两个网页中的表格,目前我的做法在 init_url 中枚举两个网址,如下:
这样就会生成两个不同的 txt 文件:
显然,这样枚举的做法是不科学的,172 个网页要枚举 172 次。
注意到函数写法里还有很多参数,像 help_url,target_url,page_url,还可以用正则表达式过滤网址,但示例文档因为网址的关系,没有结果生成,我也看不明白。
所以,想恳请大佬们有空时能不能以本帖中提供的网址为例,帮忙抓一遍,都是些基础要求 (会者不难):
1、抓到的表格要有表头;
2、抓取全部 172 个表,或者指定其中的某些表格。
目前比较关心的几个问题:
1、extractby 这里应该比较关键,可以写 xpath 路径,这个得自己另外去查资料了;
2、如何实现批量抓取,就是有共同特征的网址,要如何写正则表达式过滤,我照抄了没有用,甚至没有出结果。也就是 help_url,target_url,page_url 中的 filter 和 reg_url 要怎么写,这个非常困惑。
以下是我抄的几句能出结果的可复制代码,把 save_path 改一下即可:
A | |
1 | [{web_info:{domain:'quote.stockstar.com',save_path:"/Users/bianqi/Downloads",save_post:"false"}}, {init_url:["http://quote.stockstar.com/stock/ranklist_a_1_0_1.html"]}, {page_url:{extractby:"table",class:'default'}}] |
2 | =web_crawl(A1) |
恳请大佬们空闲时给予帮助指导,谢谢🙏
顺祝国庆快乐🙏
先从简单的入手,按这个顺序:初始网址、网址页、下载页,先获取网址 url,数据 url,下载数据后提取数据。
参所的参考文档是针对用户对爬虫抓取技术熟悉,熟悉 xpath 知识与正则表达式是爬虫抓取技术基本要求。有这个基础后,结合网页内容特点才能写出过滤表达式提取 url, 出抓网页的数据.
大佬,你方便的时候帮忙写一个,行不😂 我依葫芦画瓢,说不定能看懂入门。
要靠我自己摸索出来,实在太难。🙏
好的