(1)抓取目的

现在网站有大量数据,但网站本身并不提供api接口,如果要批量获得这些页面数据,必须通过网页抓取方式实现。
比如某房产网站的二手房数据,在页面上很整齐的展示,因此可以通过分析网页的html源码,找到总价、单价、位置、户型等数据,并最终实现批量抓取。

(2)抓取原理

1)首先要获取网页的html源码,这个并不难,在浏览器里右击菜单里选择“查看网页源代码”就能看到html源码,页面上能看到的文字基本在都在html源码里。

2)得到html源码后,就需要定位到各个数据的位置,比如“总价”,如下图所示:

可以看到“560”在html里能找到。

同时可以得到“总价”这个字段的xpath:
/html/body/div[4]/div[1]/ul/li[8]/div[1]/div[6]/div[1]/span
我们可以把html看成是一个标签树,xpath就是在标签树的寻找路径。

依此可以得到“单价”、“户型”等字段的xpath,也就可以获取1条发布信息的数据。

3)得到1条信息的数据后,一个页面通常会显示二三十条信息,可以发现这些信息的格式都是一致的,如下图所示:

因此可以发现这些信息都在
/html/body/div[4]/div[1]/ul/
路径下
第1条就是/html/body/div[4]/div[1]/ul/li[1]
第2条就是/html/body/div[4]/div[1]/ul/li[2]
……
基于此,通过基础path+字段相对path就可以得到每个字段的绝对path,然后可以编程实现单个页面的抓取功能了。

4)得到单个页面的数据后,就可以实现多页面抓取,假如网站有100页数据,通过观察网站地址url可以发现,一般第二页就是 “xxx/page2”,第一百页就是“xxx/page100”,因此这个也是很有规律的,修改下url就可以实现多页面抓取了。

(3)hawk抓取

由于网页抓取如此常见,可以在网上搜到大量的抓取软件,并不一定需要自己再开发一个抓取软件(写一个抓取软件不难,写一个通用性强且好用的难),hawk就是一个相当好用的抓取软件。
hawk的介绍页面:
https://github.com/ferventdesert/Hawk

关于hawk的详细介绍,可以看其主页,这里说一下个人使用心得:
1)hawk包含”网页采集器”和”数据清洗”两个模块,网页采集用于定位各个字段的xpath,数据清洗用于抓取数据,并对各个字段做一定的处理,以及导出数据。
2)网页采集器模块很好用,输入url得到网页html源码后,在“搜索字符”里输入比较典型的搜索文本,比如“农光南路双朝南两居室”后,hawk会在html里搜索这个字符串,获取xpath。
“添加字段”后,再点击“手气不错”会自动搜索出每条信息里包含的所有字段值,这个功能真的很强大,有点人工智能的效果了,网页采集工作一次完成。
3)数据清洗模块也很好用,个人用了其中4个模块

1 生成区间数 2 合并多列 3 从爬虫转换 4 写入数据表

具体操作可观看主页提供的视频教程,其中第三步“从爬虫转换”要设置网页采集器的名称(视频少了这个步骤),最后导出到Excel表,得到想要的数据。

hawk这个软件功能很全,而且界面操作方便,支持很多的数据模块,推荐使用。

网页抓取神器hawk使用心得相关推荐

  1. 初次使用Winform抓取数据的一点心得

    初次使用Winform抓取数据的一点心得 (一)字符串截取及正则表达式.         字符串截取主要使用的两个函数String.IndexOf()以及String.Substring(),前者主要 ...

  2. 用Python构建网页抓取器

    借助使用Python构建的尖端网页抓取技术,启动您的大数据项目 Scrape the Planet! Building Web Scrapers with Python 你会学到什么 如何理论化和开发 ...

  3. 一段使用cURL实现的网页抓取源码,支持POST,Cookies,代理,自定义头.

    为什么80%的码农都做不了架构师?>>>    <?php /*** 名称:cURL网页抓取* 版本:v0.3* 作者:吣碎De人(http://www.qs5.org)* 最 ...

  4. python爬虫怎么爬同一个网站的多页数据-如何用Python爬数据?(一)网页抓取

    如何用Python爬数据?(一)网页抓取 你期待已久的Python网络数据爬虫教程来了.本文为你演示如何从网页里找到感兴趣的链接和说明文字,抓取并存储到Excel. 需求 我在公众号后台,经常可以收到 ...

  5. 有关网页抓取问题的一些经验总结 - passover【毕成功的博客】 - 51CTO技术博客

    有关网页抓取问题的一些经验总结 - passover[毕成功的博客] - 51CTO技术博客 有关网页抓取问题的一些经验总结 2011-05-05 18:07:38 标签:爬虫 网页抓取 在写爬虫的时 ...

  6. 一个小型的网页抓取系统的架构设计

    一个小型的网页抓取系统的架构设计 网页抓取服务是互联网中的经常使用服务.在搜索引擎中spider(网页抓取爬虫)是必需的核心服务.搜索引擎的衡量指标"多.快.准.新"四个指标中,多 ...

  7. python3爬取网易云歌单数据清洗_网页抓取网易云音乐及评论数据分析

    网页抓取网易云音乐及评论数据分析 游贤 成都理工大学信息科学与技术学院 [摘 要] 摘要:为了分析网易云音乐中哪些歌曲是热门歌曲,哪些歌曲的评论 最多,从而了解到人们对于不同音乐类型的喜爱程度,采用成 ...

  8. 代理服务器ip地址如何获得_详细教程:如何使用代理服务器进行网页抓取?

    全文共2136字,预计学习时长7分钟 图源:Unsplash 万维网是数据的宝库.大数据的易得性.数据分析软件的迅猛发展以及日益廉价的计算能力进一步提高了数据驱动战略对竞争差异化的重要性. 据Forr ...

  9. python爬取数据案例分析_基于Python及webdriver的网页抓取案例

    上次有朋友问怎么抓取交易所网站的数据,特别是历史数据,这里特别推荐使用selenium这一自动化测试框架. 原本selenium是用来完成大量基于浏览器的自动化测试的,但由于可以方便地执行JS代码,摸 ...

最新文章

  1. lua mysql insert_Lua MySQL操作
  2. Matlab中将数据保存为txt或dat格式四种方案
  3. P1852-跳跳棋【思维,差分,二分】
  4. 什么是G1垃圾回收算法
  5. 一个简单的录音软件程序代码【C++】
  6. LVS详解(五)——LVS NAT模式实战
  7. 微信公众号开发 ----微信获取access_token(2)
  8. 中图分类法---- U 交通运输
  9. 2020-12-13:C语言钱币兑换问题
  10. GeoServer离线地图
  11. Flac无损音频怎么转换格式
  12. https请求百度share分享报错问题
  13. 计算机考研复试之KY122 找出直系亲属(c++)
  14. Android 百度地图反向Geo “PERMISSION UNFINISHED“
  15. 微信公众号批量打标签的自动化实现方法
  16. 小米路由器R3原厂BootLoader和eeprom备份
  17. 互斥锁Mutex解锁两次
  18. 常用电子元器件用途索引表
  19. [BZOJ]4180: 字符串计数 SAM+矩阵乘法+二分
  20. matlab里实现AR人脸库2600张人脸图的分类处理

热门文章

  1. windows 强力 删除
  2. mysql cluster rpm包的作用_MySQL之——MySQL Cluster集群搭建详解(基于RPM安装包)
  3. Python:解析PDF文本及表格——pdfminer、tabula、pdfplumber 的用法及对比
  4. 教你实现一个天气实时查询微信小程序
  5. 详解Facebook手机
  6. pecs_PECS原则
  7. Uncaught SyntaxError: The requested module ‘/node_modules/.vite/deps/vue.js?v=3e1adf4e‘ does not ...
  8. PHP集成工具xampp的替代品phpstudy
  9. 成功打造工业品牌的三大基石
  10. linux如何判断是文件还是目录