摘要:
原理 中文分词,即 Chinese Word Segmentation,即将一个汉字序列进行切分,得到一个个单独的词。表面上看,分词其实就是那么回事,但分词效果好不好对信息检索、实验结果还是有很大影响的,同时分词的背后其实是涉及各种各样的算法的。 中文分词与英文分词有很大的不同,对英文而言,一个单词 阅读全文
该文被密码保护。 阅读全文
该文被密码保护。 阅读全文
摘要:
用Splash做页面抓取时,如果爬取的量非常大,任务非常多,用一个Splash服务来处理的话,未免压力太大了,此时可以考虑搭建一个负载均衡器来把压力分散到各个服务器上。这相当于多台机器多个服务共同参与任务的处理,可以减小单个Splash服务的压力。 1. 配置Splash服务 要搭建Splash负载 阅读全文
摘要:
Splash是一个JavaScript渲染服务,是一个带有HTTP API的轻量级浏览器,同时它对接了Python中的Twisted和QT库。利用它,我们同样可以实现动态渲染页面的抓取。 1. 功能介绍 利用Splash,我们可以实现如下功能: 异步方式处理多个网页渲染过程; 获取渲染后的页面的源代 阅读全文
摘要:
Selenium是一个自动化测试工具,利用它可以驱动浏览器执行特定的动作,如点击、下拉等操作,同时还可以获取浏览器当前呈现的页面的源代码,做到可见即可爬。对于一些JavaScript动态渲染的页面来说,此种抓取方式非常有效。本节中,就让我们来感受一下它的强大之处吧。 1. 准备工作 本节以Chrom 阅读全文
摘要:
在前一章中,我们了解了Ajax的分析和抓取方式,这其实也是JavaScript动态渲染的页面的一种情形,通过直接分析Ajax,我们仍然可以借助requests或urllib来实现数据爬取。 不过JavaScript动态渲染的页面不止Ajax这一种。比如中国青年网(详见http://news.yout 阅读全文
该文被密码保护。 阅读全文
摘要:
这里还以前面的微博为例,我们知道拖动刷新的内容由Ajax加载,而且页面的URL没有变化,那么应该到哪里去查看这些Ajax请求呢? 1. 查看请求 这里还需要借助浏览器的开发者工具,下面以Chrome浏览器为例来介绍。 首先,用Chrome浏览器打开微博的链接https://m.weibo.cn/u/ 阅读全文
摘要:
这里仍然以微博为例,接下来用Python来模拟这些Ajax请求,把我发过的微博爬取下来。 1. 分析请求 打开Ajax的XHR过滤器,然后一直滑动页面以加载新的微博内容。可以看到,会不断有Ajax请求发出。 选定其中一个请求,分析它的参数信息。点击该请求,进入详情页面,如图6-11所示。 图6-11 阅读全文