⼋⽖鱼⽹络爬⾍⼯具——学习笔记整理
⼋⽖鱼是⼀款⽹页爬⾍⼯具,可以不⽤编写代码快速实现⽹页数据的爬取。
特殊翻页
数字翻页
在制作采集规则时,页⾯没有“下⼀页”等翻页按钮,⽽是⼀排页码,如"1","2","3","4","5"……
如何通过数字翻页的进⾏处理?
解决思路:
到⼀条xpath,使得在当前页(除未页外)始终能定位到下⼀页。
常⽤函数:following-sibling::*
⽐如://span[@class=”page_curl”]/ following-sibling=a[1]
其中先到数字页码1所在的位置为span,其class为page_url,这样就定位到了数字1所在的那个span。
然后使⽤following-sibling到其兄弟元素去定位下⼀页,到其下⼀页也即是第2页所在的位置为a标签,由于后⾯所有同级元素的页码都是a标签,所以使⽤a[1]表⽰第1页后的第⼀个a标签。
“加载更多”的翻页形式
适⽤情况:
要采集的⽹页中,有“加载更多”或“再显⽰20条”等按钮,点击这些按钮之后需要采集的数据才会完全显⽰出来。
⽐如下列情况,需要点击“加载更多内容”,⽽且每点击⼀次多显⽰20条的数据:
解决思路:
按照常规操作,创建翻页循环,然后将循环翻页步骤拖到循环-提取数据步骤前,让所有翻页完成之后,再进⾏循环提取数据步骤,不然会很多重复数据。
循环翻页的点击按钮⼀般是ajax加载,即点击翻页的⾼级选项需勾选ajax,并设置超时时间(时间长短根据数据加载快慢设置),不要勾选新标签。
好的素材网站对于此种情况,我们需要将循环提取数据拖到循环翻页下⾯,如右图,这样就会先将所有的数据都加在出来,再⼀起执⾏数据的提取了。注意,有时候数据太多,它会⽆限制地执⾏加载数据,此时可以对翻页设置循环次数限制。另外,需改变循环提取数据的xpath如下图,否则只能提取前20条数据。
某⼏页重复循环现象
适⽤情况:重复采集⽹页中某⼏页的数据
现象:
采集结果出现重复,在翻看数据后发现是重复了采集⽹页中某⼏页的数据。例如,重复采集⼀⼆页的数据。
原因分析:
⽹页中有上⼀页按钮,也有下⼀页按钮,xpath定位不准,在某⼀页会定位到上⼀页按钮,导致重复采集某⼏页数据
墨茶official怎么去世的解决思路:
修改xpath,使在当前页(末页除外),只能定位到下⼀页按钮
⽐如:有的⽹页在执⾏某⼀页之后的翻页时候,它的xpath会同时定位到上⼀页和下⼀页按钮,这时候需要重新修改它的xpath,使其只能定位到下⼀页,⽐如原有的xpath://a[@class=”next”],观察其源码,需要将其修改为://a[@class=”next” and text()=”下⼀页”]
最后⼀页死循环现象
适⽤情况:
要采集的⽹页,明明已经采完了最后⼀页的数据,但重复采集最后⼀页数据,不停⽌采集。
或者循环点击下⼀页后不进⾏翻页,⼀直在采集某⼀页的数据。
原因分析:
xpath定位不准,在最后⼀页还能定位到“下⼀页”按钮,循环翻页⽆法结束
解决思路:
修改xpath,使当前页是最后⼀页时,定位不到“下⼀页”按钮,⽽⾮最后⼀页时可以定位到“下⼀页”(
分别观察当前页是最后⼀页的时候和不是最后⼀页的时候的下⼀页的定位xpath,然后修改其xpath)
其它翻页现象
点击输⼊数字页码输⼊框,选择输⼊⽂字,点击确定,然后在流程中拖进去⼀个循环框,将输⼊⽂字拖进循环框,并将其设置为从循环选择内容,然后设置循环内容为1,2,3等的页码即可。
这种可以在输⼊⽹址的时候直接输⼊多个⽹址,以换⾏符换⾏,然后进⾏采集数据即可。
3.进⾏⼏次翻页后,直接跳到后⼏页(漏数据-漏⼏页数据未采集)
适⽤场景:
因点击翻页导致的某⼏页未采集。如,进⾏⼏次翻页后,直接跳到后⼏页。
解决思路:
以上⽅式不仅可以解决部分⽹站的⽆法翻页或翻页后容易出现采集中断问题,还可以在⼀定程度上避免⽹站的防采集措施。
登录与验证码
c语言教程入门Cookie登录
输⼊账号密码登录之后打开⽹页步骤设置获取cookie,此时可以删除之前的输⼊账号密码的步骤。如果要以当前账号新建任务也可以复制打开⽹页的⽹址新建任务。注意:cookie是有⽣命周期的;如要更换账号,设置打开⽹页时清楚缓存。
验证码登陆:设置执⾏前等待⽅法
适⽤场景:
登录页⾯在输⼊⽤户名和密码后,还需做验证码识别才能正常登录,
重点针对于滑块拖动验证,点击选择某些图⽚或⽂字,拼图验证,
以及其余各种验证码识别控件不能⾃动识别的验证码类型。
对于此种需要验证码才能登录的场景,可以通过设置执⾏前等待,完成验证码识别。
配置tomcat做法:在输⼊账号密码之后的点击登录的步骤,设置执⾏前等待的时间,⽐如15s,则当采集数据的时候当到输⼊验证码的时候,系统会给⽤户留出15s的时间来输⼊验证码,15s之后会⾃动执⾏登录步骤。注意:只适⽤于本地采集,不⽤于云采集。
验证码登陆:控件识别⽅法
对于有验证码需要输⼊的情况,也可以设置控件识别。做法为:
如下图,输⼊账号密码后,先点击验证码图⽚,然后点击验证码输⼊框,再按照提⽰输⼊验证码识别错误和正确的配置信息即可。
Iframe框架
Iframe框架是什么:
有些⽹站的登录框其实是iframe的登录框,iframe即html标签,会创建包含另外⼀个⽂档的内联框架(即⾏内框架),含义是⽹页中的⽹页。有时候因为⽹页使⽤的是iframe框架会定位不到输⼊框。
爬虫软件 app如何查看⽹页是否使⽤Iframe框架:
借助⽕狐浏览器来查看。以具体⽹址来看⼀下,例如天猫的登录页就使⽤了iframe的登录框架。
1、将⽹页在⽕狐浏览器中打开
2、将⿏标移⾄天猫登录框,右键右击后选择“此框架”>>“在新标签页中打开框架”
⼋⽖鱼中iframe框架的处理:
⼋⽖鱼⼀般能⾃动识别⽹页中的iframe框架,并⽣成相应iframe框架的XPath。如遇到不能⽣成的,则需先在浏览器中定位到该框架,然后将iframe框架的XPath填⼊⼋⽖鱼中。软件⽀持⼀层iframe框架,若⽹站有多层框架,则应先去除多余框架。或将在浏览器中得到的该框架的地址复制进去⼋⽖鱼。
XPath
XPath简介
XPath是专门针对xml设计的,在复杂结构化数据中查信息的语⾔,简单来说,就是利⽤⼀条路径表达式,到我们需要的数据位置。查看/⾃动⽣成xpath的⽅法
在⽕狐浏览器中的菜单中的附件管理器中搜索firebug和firepath插件进⾏安装,安装后需要重启即可使⽤。
2、通过⼋⽖鱼采集器⽣成/查看XPath
⼋⽖鱼采集器内部有⼀套针对html的XPath引擎,直接⽤XPath就能精准的查、定位⽹页⾥⾯的数据,从⽽进⾏数据提取。在⼋⽖鱼中进⾏规则配置的时候,会⾃动⽣成定位数据的XPath
在⼋⽖鱼规则配置中,除了打开⽹页步骤没有XPath外,其他步骤都涉及到XPath定位
查xpath⽅式,如下图:
XPath节点
在 XPath 中,所有事物都是节点。共有七种类型的节点:元素、属性、⽂本、命名空间、处理指令、注释、⽂档(根)节点。XPath语法
XPath轴:定义当前节点与其他节点间的关系。
XPath语法:使⽤路径表达式来选取html⽂档中的节点或节点集。
谓语:路径表达式的附加条件,对节点进⾏进⼀步筛选,被嵌在[ ]中,使⽤谓语时,我们经常会⽤到⼀些XPath函数。网站模板自己修改
应⽤-修改提取数据字段xpath
适⽤于调整XPath解决采集数据中出现的漏数据,数据错位等问题。
应⽤场景:
1.⽹页上有的信息,采集结果出现部分字段的未采集到。
2.采集结果出现部分字段数据错位,实际采集内容与字段名不对应。
原因分析:
⽹页结构不⼀致,导致原本的xpath,在某些页⾯⽆法正确定位到所需数据。
解决思路:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论