一个页面中的这两个信息能不用python无头浏览器爬取到吗?,python无头,在爬取"http://w
一个页面中的这两个信息能不用python无头浏览器爬取到吗?,python无头,在爬取"http://w
在爬取"http://www.haodf.com/doctor/DE4r08xQdKSLBVM8i9sHYQ8uQGIO.htm"这个页面的时候, 发现"擅长"和"执业经历"这两个信息通过beautifulsoup是取不到的, 我选取这两个信息的代码如下:
soup.select('#full_DoctorSpecialize').get_text(strip=True)soup.select('#full').get_text(strip=True)
查询页面发现这两个信息好像是通过JS查询的结果, 除了把网页全部正则表达式匹配的方法, 请教各位:
1, 这两个信息能否直接取到?
2, 除了类似"Selenium"这样的工具, 是否还有其他方式能够取到这两个信息?
3, 能否通过分析查询接口的方式解决?
谢谢
可能这个页面,你要抓的这个数据,是页面加载后,使用js渲染出来的。也就是说,这个#full_DoctorSpecialize
里面的数据是ajax,从服务器上拿回来的。具体要如何拿这样的数据,你可以百度下 phantomjs ,你一定会 有收获 的。
这2个信息可以直接获取,只是信息包含在JS块中BigPipe.onPageletArrive({这个里面}) , 可以通过正则表达式获取。这个里面是一段JSON格式的字符串。匹配之后转换为json还是很容易处理的。想要通过查询接口获取的话,应该是可以的,不过得分析JS代码,这个太麻烦,可以通过抓包工具来抓它的http请求。然后看看是那个请求返回的数据。相比较而言还是写正则匹配比较快。
这个就像楼上说的是js渲染的,内容在js代码里面,可以正则匹配js代码里面的元素,得到你想要的信息
编橙之家文章,
相关内容
- Python菜鸟对类应用的问题求助,python菜鸟问题求助,cl
- Python如何实现点阵造字,python点阵造字,刚刚嵌入式老师
- 动态加载数据库再重新加载的问题url route,urlroute,把
- 请大牛帮看下我pymsyql插入数据的类型需要修改吗?,大
- pycharm启动单独py程序调试,怎么配置settings,pycharmpy,想单
- 将集合中的值分别保存到符合字典Key条件中,具体示例如
- 请问tornado与gevent结合应用比原生tornado速度快的原因,
- 做python爬虫的时候如何判断是否抓取过了?,python爬虫
- 求问tornado 3.2 chatdemo如何实现异步,不是很理解,tornad
- 如何用python方法完善平台求手指引,python平台,之前提过
评论关闭