【异周话题 第 9 期】聊聊网络爬虫那些事儿(已结束)

图像说明文字

【异周话题 第 9 期】聊聊网络爬虫那些事儿

话题背景


互联网包含了迄今为止最有用的数据集,并且大部分可以免费公开访问。但是,这些数据难以复用。它们被嵌入在网站的结构和样式当中,需要抽取出来才能使用。从网页中抽取数据的过程又被称为网络爬虫。随着越来越多的信息被发布到网络上,网络爬虫也变得越来越有用。

而从今年开始,爬虫行业竞争越发激烈。一些公司开发出“骨骼清奇”的爬虫产品,开始抢夺市场。比如在现金贷行业中的“同业爬虫”产品,可以直接将其他现金贷平台的放款额和风控数据爬出来。

本周的【异周话题】我们就聊聊 网络爬虫 那些事儿。

话题内容

大家可以围绕以下一个或多个问题展开讨论:
1. 你是否写过网络爬虫?如果写过的话用的是那种语言?
2. 你认为哪种语言最适合用来写爬虫?请给出理由。
3. 你认为网络爬虫是否符合道德规范与法律要求?
4. 你用网络爬虫做过哪些有意思的事?
5. 你见过哪些脑洞大开的反击爬虫的措施?

欢迎各位同学积极在文章的底部发表评论,参与话题!

话题时间

2017年11月13日-11月19日

话题奖励

话题结束后,我们将选取 3 位讨论精彩的同学,每人赠送 1 本吧《用Python写网络爬虫》

图像说明文字

《用Python写网络爬虫》

图书作者【澳】Richard Lawson(理查德 劳森),Richard Lawson来自澳大利亚,毕业于墨尔本大学计算机科学专业。毕业后,他创办了一家专注于网络爬虫的公司,为超过50个国家的业务提供远程工作。他精通于世界语,可以使用汉语和韩语对话,并且积极投身于开源软件。他目前在牛津大学攻读研究生学位,并利用业余时间研发自主无人机。

图书简介:本书讲解了如何使用Python来编写网络爬虫程序,内容包括网络爬虫简介,从页面中抓取数据的三种方法,提取缓存中的数据,使用多个线程和进程来进行并发抓取,如何抓取动态页面中的内容,与表单进行交互,处理页面中的验证码问题,以及使用Scarpy和Portia来进行数据抓取,并在最后使用本书介绍的数据抓取技术对几个真实的网站进行了抓取,旨在帮助读者活学活用书中介绍的技术。本书适合有一定Python编程经验,而且对爬虫技术感兴趣的读者阅读。


【异周话题 第 9 期】获奖名单

图像说明文字

恭喜以上 3 位获奖的同学,请 3 位同学私信小编,并提供收件人姓名收件地址邮编联系电话,小编会尽快将《用Python写网络爬虫》寄到各位同学的手中!

2 推荐
  • David W. 2017-11-20 10:24

    没有写过专门的网络爬虫,但有一次为了从某网站下载电影写了个超简单的代理服务器,是用nodejs做的,没有使用第三方库,

    需要过滤的地方都是用Regex搞定的。

    要问那种语言适合写网络爬虫,个人的理解一是看爬虫的规模用途,二是看团队擅长使用什么语言。

    好多爬虫的参考书用的是python,那是因为python开发灵活,第三方库丰富。不用严格的变量定义,内存分配,对象清理,可能二十几行代码,一个爬虫的骨架就出来了。

    但是爬虫不但要爬去内容,关键还要对内容进行过滤,整合,识别,输出。爬取的结果很少直接推给用户浏览。

    另外的考量就是并行,互联网门户网站众多,页面更是难以亿数,如何快速的从浩瀚的网站拉到内容并完成数据处理,处理速度绝对是要考虑的,没有高并发做支撑,很难快速完成海量处理,所以是否支持高并发开发以及与云计算平台对接是决定编程语言是否适合爬虫开发的关键因素。

    至于网络爬虫是否符合道德规范与法律要求,这主要看你的用途及处事方式。内容放出来就是给人看的,浏览器是代理用户负责获取内容并呈现给用户的工具。爬虫也应该算到代理的范畴,但是你要尊重原始站点的版权,不能刻意的隐藏版权信息,不能绕过网站限制抓取明令禁止robots抓取的内容。否则被拉黑或引起司法纠纷在所难免。

    2
    • 异步君
      异步君 2017-11-20 10:52

      很抱歉,昨天就已经结束了,每周的【异周话题】周二上线,到周末结束,您可以参加本周的【异周话题】,感谢您的关注!

  • Guibs 2017-11-18 06:50

    作为一个信息采集人员, 关于爬虫与道德法律的关系是脑中很紧绷的一根弦. 

    单从技术来说, 网络爬虫本质完全是一种合乎道德和法律规范的技术手段. 而使其进入非议不断的灰色地带的元凶, 是数据需求方提出的需求范围所界定的.

    主观的说, 无论是出于什么目的使用爬虫获取了robots 协议外的任何数据, 哪怕只是用于非盈利的研究目的等, 均是在向道德和法律发起越界的挑衅.

    另一方面来说, 这件事情从一定角度来让我们重视了robots 协议的规范制定和数据分类保护的重要性.

    1
  • sjf0115 2017-11-17 13:39

    1. 你是否写过网络爬虫?如果写过的话用的是那种语言?

    使用Python和Java写过网络爬虫

    2. 你认为哪种语言最适合用来写爬虫?请给出理由。

    还是推荐使用Python吧。Python方面网络爬虫资源还是比较多的。其实如果只是爬取几个简单页面,简单解析用什么语言都无所谓。

    但是如果爬取还要解析Js动态生成的内容(例如,京东手机价格不会在网页上出现,通过js动态生成),以及大规模爬取,还要考虑效率等建议使用Python。

    Python有丰富的爬虫框架(scrapy等)。

    3. 你认为网络爬虫是否符合道德规范与法律要求?

    如果抓取的数据属于个人使用或科研研究,一般不会有问题,但是如果数据属于商业使用,就另当别论了。

    在深入讨论爬取一个网站之前,我们首先需要对目标站点要有一定程度的了解.网站自身的robots.txt和Sitemap文件都可以为我们提供一定的帮助.

    大多数网站都会定义robots.txt,这样可以让爬虫了解爬取该网站时存在哪些限制,那些可以爬取,哪些不可以爬取。

    还有就是过于快速的爬取都会对服务器产生巨大的压力,因此要限制一下自己的爬虫速度,尽可能的对别人服务器减少影响。

    4. 你用网络爬虫做过哪些有意思的事?

    使用Python写过网络爬虫,爬取了京东和中关村在线的手机价格用于特征挖掘;还爬取自如租房信息等等;

    5. 你见过哪些脑洞大开的反击爬虫的措施?

    有些我们爬取的价格等信息使用的是图片,根据不同的偏移,显示出不同的字符。

    0
  • 钢笔布莱恩特 2017-11-16 11:46

    1. 你是否写过网络爬虫?如果写过的话用的是那种语言?

    写过,当时用的java

    2. 你认为哪种语言最适合用来写爬虫?请给出理由。

    Python,以为可以高效的爬取丰富的信息资源

    3. 你认为网络爬虫是否符合道德规范与法律要求?

    符合,因为信息的价值在于爬取和提炼,遵守互联网条例

    4. 你用网络爬虫做过哪些有意思的事?

    分析关于大学生的账目消费

    5. 你见过哪些脑洞大开的反击爬虫的措施?

    人工智能技术和加密

    0
  • 银色子弹 2017-11-16 00:42

            最适合写爬虫的语言是Python,因为它有以下优点:

            1)抓取网页本身的接口

            相比与其他静态编程语言,如java,c#,C++,python抓取网页文档的接口更简洁;相比其他动态脚本语言,如perl,shell,python的urllib2包提供了较为完整的访问网页文档的API。(当然ruby也是很好的选择)

            此外,抓取网页有时候需要模拟浏览器的行为,很多网站对于生硬的爬虫抓取都是封杀的。这是我们需要模拟user agent的行为构造合适的请求,譬如模拟用户登陆、模拟session/cookie的存储和设置。在python里都有非常优秀的第三方包帮你搞定,如Requests,mechanize

    2)网页抓取后的处理

            抓取的网页通常需要处理,比如过滤html标签,提取文本等。python的beautifulsoap提供了简洁的文档处理功能,能用极短的代码完成大部分文档的处理。

            其实以上功能很多语言和工具都能做,但是用python能够干得最快,最干净。

    0
异步君
异步君 V6

北京 丰台

4.4K经验值

相关技术

相关图书

相关文章

相关用户