python 无头浏览器多线程_一个页面中的这两个信息能不用python无头浏览器爬取到吗?...

在爬取"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代码里面的元素,得到你想要的信息

玩蛇网文章,转载请注明出处和文章网址:https://www.iplaypy.com/wenda/wd14046.html

相关文章 Recommend

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值