高手问答第 214 期 —— 和你聊聊 Python 绝技:爬虫之术

发布于 2018/10/10 00:32
阅读 7K+
收藏 17

【开源中国 APP 全新上线】“动弹” 回归、集成大模型对话、畅读技术报告”

OSCHINA 本期高手问答(2018 年 10 月 10 日 — 10 月 16 日)我们请来了@梁睿坤 为大家解答关于 Python 爬虫方面的问题。

梁睿坤,现任增增智能科技CEO,从事机器人、视觉智能、语音智能及 IoT 等技术的产品研发与企业经营方面的工作,曾任优晟网络、越维科技公司的CTO。虽然长期身任技术管理职位,但十多年来一直坚持参与第一线的研发工作。擅长敏捷开发模式,推崇端到端及多领域融合的个人技术发展路向,倡导实践先行的学习方法,乐于分享所学所悟,在 Python 与 Javascript 方面有深厚的理论基础与实践经验。

爬虫虽说并不是一门新的技术,但却是一门伴随互联网而生、实用性最强的一门技术。数据分析、大数据、机器学习都离不开数据的“喂养”。数据无处不在,唾手可得,但要从互联网这个无边无际的数据海洋中采集我们所需要的海量的数据却绝非易事,如何能精准、高效、合理、持续而低成本地从互联网中采集所需的数据,这就是爬虫系统要实现的最基本目标。

本期问题内容:

  1. 网络爬虫的应用方向
  2. 网络爬虫开发的关键技术点
  3. 网络爬虫系统的设计要点
  4. 部署网络爬虫的要点

或有其他相关问题,也欢迎大家积极提问。

为了鼓励踊跃提问,@博文视点 会在问答结束后从提问者中抽取 5 名幸运会员赠予《虫术——Python绝技》一书。

购买链接:京东
OSChina 高手问答一贯的风格,不欢迎任何与主题无关的讨论和喷子。
下面欢迎大家就 Python 爬虫方面的问题向@梁睿坤 提问,请直接回帖提问。

加载中
0
南方Go
南方Go

@梁睿坤   python爬虫怎样设置使用多代理ip比较好,有啥框架可以直接使用吗?

梁睿坤
梁睿坤
你可以试试用Tor,我在书中的 5-2-3 Tor 网络一节中有介绍具体用法。
0
networkexception
networkexception

@梁睿坤 您好,我看了下目录,请问书里有没有讲爬出来的数据(比如网页关键信息)保存在哪里?是数据库吗?用什么数据库好呢?谢谢老师

梁睿坤
梁睿坤
我在第4章第6节“数据的存储”中对爬取数据的后处理有详细的介绍。至于用什么数据库好那得看具体情况而定,对此我在书中也用很长的篇幅与例子进行了说明。
0
查无此人94
查无此人94
反爬虫策略是不是只有不停更新才能抵制爬虫
梁睿坤
梁睿坤
爬与反爬是两个互相对立又互相促进的面,爬取的技术是会因应反爬策略而变化的,无论是爬或是反爬首先是要分析对方的行为模式,然后再定出策略。
蜉先生
蜉先生
策略是死的,人是活的,根据服务器上的日志分析,发现异常值,启动响应的方案就好
0
烨儿
烨儿

@梁睿坤 那种爬JS生成的页面可否这样:自己写一个程序去预加载这些页面,然后把静态HTML存到自己服务器,然后再起服务,用爬虫去爬自己的静态文件.

梁睿坤
梁睿坤
其实你并不需要这样做,我在书中4-5 处理Javascript就分别用了Selenium 和 Slash 两种框架来介绍如何处理重度的Javascript网页。
烨儿
烨儿
回复 @BlueAnt007 : 具体怎么操作?
蜉先生
蜉先生
selenium + chrome 就可以,不需要这么麻烦
0
蜉先生
蜉先生
该评论暂时无法显示,详情咨询 QQ 群:点此入群
蜉先生
蜉先生
回复 @梁睿坤 : Fiddler 毕竟只是抓包工具,请求加密单使用Fiddler 也是解决不了问题呀,业界对请求加密的解决方案也就是对APP 进行反编译,去代码中寻找答案。主要想问问 安卓端的 hook 技术你们有相对比较成熟的方案么?
梁睿坤
梁睿坤
你可以尝试使用Fiddler,它会是个不错的助手。
0
xiaoaiwhc1
xiaoaiwhc1

@梁睿坤 对于有些网站没有特别明显的模式来批量处理的情况,除了正则外,有其它什么更好的工具吗?另外,同问,对于存在比较复杂的验证码验证或身份验证的网站,如何处理比较方便呢。

0
AmCoder
AmCoder

@梁睿坤 实际开发过程中,小项目还好,大项目会遇到各种各样的问题,比如多线程爬取,数据处理等,自身体会其中感觉最难公关的就是反扒机制。俗话说,道高一尺魔高一丈,越难的破解的反爬机制,越需要对破解有深入的了解,比如,可能需要抓包,动态验证码,图片计算,ip限制等等。所以想问问您,在爬虫的反爬道路上有没有什么可以学习的道路或者建议?

梁睿坤
梁睿坤
你的问题很深入,也非常好证明你也是从此坑中求存。至于如何去应对反爬策略也是我写这本书的其中一个重点,你可以参考我书中第五章第二节突破封印 中的内容。
0
雲霏霏
雲霏霏

@梁睿坤基于Python 2还是Python 3?

梁睿坤
梁睿坤
Python2.x没有什么兼容性问题,但Python3会有更多的语法功能与较好的性能,我个人是比较建议使用Python3的。
T
Tztw
现在还是学python3吧
0
熊大信了熊二的话
熊大信了熊二的话

@梁睿坤    python学起来感觉还是比较简单的,但是用起来感觉无从下手, 其他语言转过来的,该怎么学习?

梁睿坤
梁睿坤
我也是多年前从C#转到python上的,要快速学习的最佳办法就是实践,找个课题写写就很容易上手了,例如写爬虫。
T
Tztw
python学习手册 python核心编程 书都有点厚 都可以当做参考
0
z
zjshen
@目前还没学过,只想要本书,看看入门一波
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部