1.3 网页数据抓取【斯坦福21秋季:实用机器学习中文版】

网页数据抓取
这节课简要的讲了网络爬虫的作用, 并提供了简单案例,着重强调了法律风险
由于现在网页越来越复杂, 实际操作中需要更多的细节, 可以看网络爬虫专门的课程.
这一节的内容相对比较琐碎, 但很重要,尤其是法律相关的说明.

网络爬虫(web crawling)与数据抓取(web scrapping)的区别

这两个概念比较相似,但侧重点有区别
网络爬虫是将整个网络中的数据收集起来并索引, 常常用在搜索引擎上
数据抓取往往关注的是特定站点中特定类型的数据, 最终整理成数据表
数据抓取的工具

网页数据抓取, 就是要和网站的管理者斗智斗勇.
curl 是最传统的工具,直接下载某个特定网页. 但是它很容易失效
headless 浏览器 比如 selenium, 就可以很好的模拟浏览器的操作,
因为他说到底就是一个没有用户界面的浏览器
你如果频繁的去抓取数据, 网站管理员可能会封IP.
这时候你需要多开IP. 可以从一些云服务提供商那边买. 比如 AWS
一个实例

数据抓取:
先要在网页文件中定位数据,
然后将数据所在位置转换成代码中的模板,
最后运行代码将信息成批抓取.
获取网页
使用headless 浏览器将html文件下载,你需要使用一些软件来解析网页,
解析/操作网页
比如Python中的beautifulsoup, 用来解析网页,以及提取信息.
定位数据位置
使用浏览器的inspector (F12) 来检查网页元素. 方便确定数据在网页上的位置.

最终提取出结构化的信息.

成本问题.

使用云服务器的话,优先考虑内存大小.
图像数据的抓取

抓取图片和抓取文字录步骤是一样,但是要考虑图片的存储开销
网页抓取的法律风险

不是非法, 但也没确定是合法. (注意这个说法)\
有些东西最好小心:
- 敏感信息
- 版权
时刻要去看这些网页放出数据时候提供的说明.
不确定的话去找法律认识询问一下.
这一段很重要,尤其在美国. 当然在中国也越来越重要了.
小结
