python循环生成变量,爬虫抓取评论

机器学习之禅 2014-04-17 11:35:36
写了个爬虫抓取的脚本,抓取网页上的评论。原始的网页上只有10个评论,点击最下面的获取更多评论可以出来10个评论。我要获取100个评论,所以要点击10次,但是试了好几次只有下面这种方法奏效,请问代码能不能改的更有效率点呢,我也是初学python,还不是很深入,不知道该怎么办
现在就是连续生成10个节点,依次点击,返回给初始节点。由于字数超标 中间省略了一些重复的内容,用。。。表示
baseElementLocator=BaseElementLocator()
baseElementLocator.setLocElement(LocateType.LocElemType.XPATH,'//div[@id="J_Comment_More_Latest"]/a')
baseElementLocator.setNeedClick(True)
baseElementLocator.setRefreshTime(2000)
baseElemLoc_more0=BaseElementLocator()
baseElemLoc_more0.setLocElement(LocateType.LocElemType.XPATH,'//div[@id="J_Comment_More_Latest"]/a')
baseElemLoc_more0.setNeedClick(True)
baseElemLoc_more0.setRefreshTime(2000)
baseElemLoc_more1=BaseElementLocator()
baseElemLoc_more1.setLocElement(LocateType.LocElemType.XPATH,'//div[@id="J_Comment_More_Latest"]/a')
baseElemLoc_more1.setNeedClick(True)
baseElemLoc_more1.setRefreshTime(2000)
。。。
baseElemLoc_more8=BaseElementLocator()
baseElemLoc_more8.setLocElement(LocateType.LocElemType.XPATH,'//div[@id="J_Comment_More_Latest"]/a')
baseElemLoc_more8.setNeedClick(True)
baseElemLoc_more8.setRefreshTime(2000)
baseElemLoc_more7.setNeedSubBase(True)
baseElemLoc_more7.setSubBaseElementLocator(baseElemLoc_more8)
baseElemLoc_more6.setNeedSubBase(True)
baseElemLoc_more6.setSubBaseElementLocator(baseElemLoc_more7)
。。。。。。
baseElementLocator.setNeedSubBase(True)
baseElementLocator.setSubBaseElementLocator(baseElemLoc_more0)
...全文
426 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
NLP分享汇 2015-04-21
  • 打赏
  • 举报
回复
.用了ajax/xmlhttp吗?
ImN1 2014-04-18
  • 打赏
  • 举报
回复
页面url 看上去没变化,可能是下面几种情况 1.用了iframe 2.用了ajax/xmlhttp 3.页面已经预载了,只是隐藏了,用js点击再显示出来 1/2用抓包能看到点击时发出了请求,3看源代码分析
机器学习之禅 2014-04-17
  • 打赏
  • 举报
回复
引用 1 楼 csz429180 的回复:
评论的下一页 每个url其实只有一些细小的变化,比如某个size的变化 1-10这种.所以我的做法是根据第一页的url找到总共的评论条数(一般分析下都有这个值的), 然后构造出后续的url统一放到start_urls里面,这样就只用一个爬虫一个类就可以了.
这个评论的js点击后页面的url没有变化,但是js脚本里的评论数目变多了。
csz429180 2014-04-17
  • 打赏
  • 举报
回复
评论的下一页 每个url其实只有一些细小的变化,比如某个size的变化 1-10这种.所以我的做法是根据第一页的url找到总共的评论条数(一般分析下都有这个值的), 然后构造出后续的url统一放到start_urls里面,这样就只用一个爬虫一个类就可以了.

37,717

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧