如何让爬虫更快

本文章属于爬虫入门到精通系统教程第十一讲 在前面的教程中,我们已经学会了如何抓取一个网页,可是,当我需要抓取的数据足够多的时候,应该如何让我抓取的速度更快呢? 最简单的方法就是使用多进程. 什么是多线程 多线程(英语:multithreading),是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。 使用多线程的好处 * 使用线程可以把占据时间长的程序中的任务放到后台去处理 * 用户界面可以更加吸引人,这样比如用户点击了一个按钮去触发某些事件的处理,可以弹出一个进度条来显示处理的进度 *

继续阅读全文 »

抓取手机app的数据(摩拜单车)

背景 前几天有人私信我,问能不能帮忙抓取摩拜单车的数据。。。 我想着授人以鱼不如授人以渔,所以本次我们就讲讲如何抓取手机app的内容吧 fiddle的安装与配置 抓手机包我用的是fiddle。 安装 先在下载页面下载—>Download Fiddler Web Debugging Tool for Free by Telerik 选择你“准备用fiddle来干嘛” 你的邮箱 以及同意“最终用户许可协议”就可以下载了 下载后按照提示安装就可以了。 配置 * 点击tool->telerik fiddler options… * * 点击connections,然后勾选 a

继续阅读全文 »

mongodb的基本使用

本文章属于爬虫入门到精通系统教程第十讲 在之前我们讲解了如何爬取网页(不管是异步加载的还是普通的),但是爬取下来的数据该如何保存呢? 保存到文本文件? 可能有人会说那我保存在文本文件里面,这样也是可以的,但是到你需要用这个数据的时候,可能就会很麻烦了… 我今天爬取了10000部日本电影 假如说你要找苍老师出演的,那么你可能会说,我直接ctrl+f查找”苍老师”不就行了 但是假如你想要找”苍老师+无码”怎么办呢??? 这个时候就是体现数据库的作用了。 Mongodb的介绍 为什么用mongodb呢? 1. 文档结构的存储方式 2. 简单讲就是可以直接存json,list 3.

继续阅读全文 »

headers的详细讲解(If-modified-since)

本文讲解的知识点是headers里面的If-modified-since 案例 本次我们要抓取的内容是苹果应用商店里面的所有app 从 iTunes 下载的 App Store 当我第一次打开王者荣耀:在 App Store 上的内容网页的时候,再次刷新的时候,你会看到http状态码返回 304 那么知道了这个http状态码304对我们爬虫有什么用呢? 当我需要每天的爬取苹果应用商店的app的时候,因为苹果app很多,所以每次如果我全部爬取的话,会花费很多的时间,其实我只要抓取有更新的内容就好了。那么http状态码304就派上用场了。 看代码 1 2 3 4 5 6 7 impo

继续阅读全文 »

拒绝撕逼,用数据来告诉你选择器到底哪家强

背景 前几天写了一篇文章,爬虫入门到精通-网页的解析(xpath) - 知乎专栏 然后有人问我,xpath速度比bs4快么?说实话,我也不太清楚。。。 还有人说,“XPATH是最快的”,那么xpath,bs4,pyquery到底谁比较快呢? 作为一个严谨的程序员,我们必须拿数据说话 测试环境 硬件环境: 操作系统:Windows7 64 处理器:Inter(R)Xeon(R) CPU E5-2650 v3 内存:8G 软件环境: pyquery:1.2.17 lxml:3.7.3 bs4:4.5.1 parsel:1.1.0 测试代码 1 2 3 4 5 6 7 8 9 10 11

继续阅读全文 »