下你所需,载你所想!
汇集开发技术源码资料

全注释的多线程爬虫例子

:1.345MB :1 :2019-12-31 15:47:16

部分简介

最近公司项目需要一些食材的营养含量xx,为了方便调用,花了半个多少时写了一个爬虫。

后来又加了个多线程当个例子给大家学习一下。

基本每行代码我都写了注释大佬直接忽视本贴,后面可能还会完善一些菜谱什么的,甚至可能开源一个go语言写的api。过几天看看忙不忙。

许可_位置.进入 () ' 修改一下当前进行到的位置
当前抓取位置 = 当前抓取位置 + 1
id = 当前抓取位置 ' 拿到自己应该处理的位置,然后存到局部变量里面
许可_位置.退出 ()
r = 网页_访问S (url)
.判断循环首 (r = “”) ' 有可能网络波动拿不到数据,循环拿,拿到为止,最多10次,避免这个线程在这被堵住了
i = i + 1
log (到文本 (id) + “ 正在尝试” + 到文本 (i + 1) + “次抓取”)
.如果真 (i > 10)
跳出循环 ()
.如果真结束
延迟 (500)
r = 网页_访问S (url)
' 处理事件 () 如果不在线程里面,可以加上这条代码,避免界面假死
.判断循环尾 ()
.如果真 (寻找文本 (r, “记录已被删除”, , 假) ≠ -1) ' 没有这个编号下的数据
log (到文本 (id) + “ 没有记录,无法抓取”)
减少一个线程 ()
返回 ()
.如果真结束
正则.创建 (#营养成分, r)
.' 如果真 (正则.取匹配数量 () = 24)
' o = 超级列表框1.插入表项 (, , , , , )
.如果真结束
.计次循环首 (3, i)
.计次循环首 (8, j)
所有数据 = 所有数据 + “'” + 正则.取子匹配文本 (3 × (j - 1) + i, 1) + “',”
' 超级列表框1.置标题 (o, (i - 1) × 8 + j, 正则.取子匹配文本 (3 × (j - 1) + i, 1))'拿到的数据是横向的,数据库里放的是纵向的,所以要转换一下位置
.计次循环尾 ()
.计次循环尾 ()

全注释的多线程爬虫例子

热门推荐

相关文章