在python爬虫模块中,我们讲了requests库应用的几个方面,但是它也有解决不了的问题。在加载界面的功能上,我们可以选择JS的加载界面方式,这个知识点我们也有运用过。假设我们的页面加载速度变快,那么爬虫获取数据的速度也会用时进行加快。接下来小编就来带大家学习python中用JS加载加快爬虫获取的方法吧。
python的requests库只能爬取静态页面,爬取不了动态加载的页面。使用JS加载数据方式,能提高爬虫门槛。
爬虫方法:
抓包获取数据url
通过抓包方式可以获取数据的请求url,再通过分析和更改url参数来进行数据的抓取。
示例:
1.看 https://image.baidu.com这部分的包。可以看到,这部分包里面,search下面的那个 url和我们访问的地址完全是一样的,但是它的response却包含了js代码。
2.当在动物图片首页往下滑动页面,想看到更多的时候,更多的包出现了。从图片可以看到,下滑页面后得到的是一连串json数据。在data里面,可以看到thumbURL等字样。它的值是一个url。这个就是图片的链接。
3. 打开一个浏览器页面,访问thumbURL=https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=1968180540,4118301545&fm=27&gp=0.jpg,发现搜索结果里的图片。
4. 根据前面的分析,就可以知道,用浏览器访问这个链接确定他是公开的。
5. 最后就可以寻找URL的规律,对URL进行构造便可获取所有照片。
使用selenium
通过使用selenium来实现模拟用户操作浏览器,然后结合BeautifulSoup等包来解析网页通过这种方法获取数据,简单,也比较直观,缺点是速度比较慢。
同样模拟浏览器进行登陆的方法,还有最近学到的user-agent,这里对比一下selenium似乎还是前者更好用。好啦,本篇用JS加载加快爬虫获取的方法到这里就结束了,小伙伴们也赶快动手试试吧。
神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试