从零快速搭建自己的爬虫系统

本文介绍了从零开始搭建网页爬虫系统的基础知识和常见实现,包括网页抓取、网页分析、任务去重与调度、数据存储与预处理、防反爬策略。推荐使用pyspider框架,详细讲解了其功能和使用方法,以及一些实战中的小技巧和问题解决策略。
摘要由CSDN通过智能技术生成

近期由于工作原因,需要一些数据来辅助业务决策,又无法通过外部合作获取,所以使用到了爬虫抓取相关的数据后,进行分析统计。在这个过程中,也看到很多同学爬虫相关的文章,对基础知识和所用到的技术分析得很到位,只是缺乏快速的实战系统搭建指导。

本文将简单归纳网页爬虫所需要的基础知识,着重于实现一套完整可用的小型网页爬取、分析系统,方便大家在有需要时,能够快速搭建系统,以用到实践中去。

关于网页爬虫的定义和用途,想必做技术的都有所了解,这里就不再赘述。目前, 大家使用爬虫的目的除搜索引擎属于无差别爬取外,其他多用于垂直领域或特定网站内容的爬取,本文以特定网站内容爬取作为切入点,当然,也可以应用于垂直领域。

一套合格的网页爬取、分析系统,大致分为:网页抓取、网页分析与链接发现、任务去重与调度、数据预处理与存储、防反爬虫策略、进度展示等几个重要方面。下边逐一做简单归纳介绍。

一、基础知识

(1)网页爬取

网页读取,即读取给定网页的完整内容,包含异步加载的内容,也就是完整地呈现到浏览器窗口的内容。

随着智能手机的普及,网页普遍分为 PC 端 和 移动设备端,由于不同端的网速、流量、设备速度、屏幕大小等原因,移动设备端多采用异步加载的方式来优化用户体验,timeline 类型的无缝翻页就是最佳的例子。这导致常用的 python requests, python urlib, wget, curl 等获取到的网页内容不完整,只有网页的骨架而无内容,内容需要等待 JS 异步加载。

这种问题的解决,我们一般使用带 JS 执行引擎的浏览器驱动来执行网页内的异步加载 JS,解决异步加载问题。常见的解决方案是 selenium 自动化浏览器测试组件配合 chromedriver 或 firfoxdriver 这些有界面浏览器来使用,如果是 linux 服务器命令行下,则可配合 phantomjs 这款无界面浏览器。

python selenium 安装:pip install selenium

phantomjs 下载地址:http://phantomjs.org/download.html

这里附上简单的应用示例代码:

from selenium import webdriver

browser = webdriver.Chrome() # 使用 ChromeDriver,需要安装

browser.get("http://www.baidu.com")

browser.find\_element\_by\_id("kw").send\_keys("selenium")

browser.find\_element\_by\_id("su").click() 

dir( browser ) # 查看所有属性和方法

print browser.page\_source # 网页源码

browser.quit()

(2)网页分析与链接发现

网页分析,即将爬取到的网页内容进行

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值