请教关于selenium+phantomJS动态网页爬虫获取的问题??

hc_net 2018-07-01 07:19:24
想写一个关于selenium phantomJS 获取网页动态JS 输出的问题:
from selenium import webdriver
service_args=[]
service_args.append('--load-images=no')
service_args.append('--disk-cache=yes')
service_args.append('--ignore-ssl-errors=true')
d=webdriver.PhantomJS("phantomjs.exe",service_args=service_args)

d.implicitly_wait(10) ##设置超时时间
d.set_page_load_timeout(10) ##设置超时时间
d.get('http://baidu.com')


data = d.page_source
d.implicitly_wait(5)
d.save_screenshot('1.png') #截图保存
print(data)
d.quit()



上面这个python 代码在 python 命令窗口下复制运行可以获取到网页上的动态数据

把代码保存为 test.py 用 python test.py 来执行 后,截图和动态数据都获取不到,

请大家指点一下看看,是什么原因???
...全文
235 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
hc_net 2018-07-03
  • 打赏
  • 举报
回复
多谢各位了,这个问题只能用延时。。百度是很快2秒就可以了。解决了。。只是不解的是, 拿怕网面加载在慢的网站,phantomJS 按正常也要等上一步加载完后,才执行下一步,没加载完就执行了下一步造成的。。。。。。采集器已写完了。。
ambit_tsai-微信 2018-07-02
  • 打赏
  • 举报
回复
引用 2 楼 hc_net 的回复:
不是地址的问题这个地址我是随便填上去的。。,我现在用time 延时10秒是可以抓取到了。。。。。但是在python 命令窗口里一句一句执行,是一点问题都没有,难道是d.get('http://baidu.com') python 脚本里这步没全部加载好就执行了下一步了,不过用 time 延时能临时解决这个问题。。

要不试试设置一下请求头部信息,伪装成谷歌等浏览器试试
ambit_tsai-微信 2018-07-02
  • 打赏
  • 举报
回复
引用 3 楼 china_hcnet 的回复:
这个问题每个站点加载时间不同。。。。。有些JS 生成的动态数据还没有出来,所以获不到,要延时设置。。

感觉百度不应该这么慢的
china_hcnet 2018-07-02
  • 打赏
  • 举报
回复
这个问题每个站点加载时间不同。。。。。有些JS 生成的动态数据还没有出来,所以获不到,要延时设置。。
hc_net 2018-07-01
  • 打赏
  • 举报
回复
不是地址的问题这个地址我是随便填上去的。。,我现在用time 延时10秒是可以抓取到了。。。。。但是在python 命令窗口里一句一句执行,是一点问题都没有,难道是d.get('http://baidu.com') python 脚本里这步没全部加载好就执行了下一步了,不过用 time 延时能临时解决这个问题。。
ambit_tsai-微信 2018-07-01
  • 打赏
  • 举报
回复
地址换成https://www.baidu.com试试

87,901

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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