星野

2018-10-06   阅读量: 3121

Python爬虫

学习python爬虫技术很难么?要具备哪些基础知识?

扫码加入数据分析学习群

如题

422.6509 9 2 关注作者 收藏

评论(1)

杨Yuer参上
2018-10-07

对于Python爬虫难与不难的问题, 我的观点是

关键看你想要用爬虫来做一些什么事情... 1. 如果你的目的是: 从一个常见的小型网站, 例如xx企业网站, xx博客, xx政府网站上面, 把一些需要的数据提取出来, 爬虫是很简单的. 在掌握Python基础的情况下(后面有讲需要哪些内容), 大概经过三四天的学习, 就可以轻松的达成. 2. 如果你的目的是: 从一些大型的, 知名网站上面批量的提取大量数据. 例如, 你想从知乎上面提取一千万用户信息, 想从实时抓取微博热点数据用于舆论分析, 想要从天猫上面批量获取用户评论信息等. 难度就会指数级上升了. 最起码,如何处理任务队列, 如何多线程, 如何识别验证码, 如何爬取动态网站, 如何操作数据库等等这些内容都是你绕不开的难点. 1. 如果你的目的是: 成为专业的爬虫工程师, 甚至爬虫架构师, 将爬虫技术应用于商业活动. 那么难度就可以参考同等级薪水的专业程序员了. 验证码识别, 防止ip封杀, 编写分布式爬虫, 应对网站不断更新的反爬系统, 破解加密数据, 防止封杀等等的相关知识非常多. 下面再来说一下爬虫所需要的基础知识 对于第一级别的爬虫学习者而言: Python基础方面所需知识 基础数据结构这部分, 对于字符串的操作方法, 以及列表和字典的操作方法一定要熟悉. 再详细点说, 判断, 循环, 切片, 文件读写, 简单的编码常识这些总得会吧? 爬取数据时, 首先要明白的是, 从网页上提取出来的源代码, 从根本上来讲都是"字符串", 很长, 很乱的字符串而已. 最终从网页中提取出来的数据, 也都是以字符串的格式存在的, 因此字符串的操作可以说是核心中的核心了. 了解了以上这些基础知识, 再结合 BeautifulSoup 解析库, 就已经可以爬出很多网站的内容了. HTML代码 基础知识方面, 如果懂得基础的HTML代码, 对于学习爬虫会非常有帮助. 为啥? 因为网站源码都是一些HTML代码嘛 HTML是一个树形的层级结构. 退一步讲, 即使你完全不了解每个HTML标签是什么含义, 但对于这种层级结构一定要有很深的认知, 否则是没有办法写好爬虫的. 浏览器开发者工具 浏览器上F12打开开发者工具, 界面非常复杂, 不比一个大型软件差了, 想要彻底掌握它还是需要一些时间的. 对于爬虫的开发必不可少, 和HTML是相辅相成的关系. 解析库 也就是具体用什么规则去解析HTML代码, 从中提取你需要的内容. 理论上来讲, 爬虫解析库只要掌握一种就可以了, BeautifulSoup, Xpath, 任选一种看你喜欢. 下面是对于第二级别的开发者 正则表达式 如果在复杂一点, 可能就需要你掌握"正则表达式", 字符串处理Real 重要的一门技术, 主要是用于字符串的规则匹配的. 不需要多么精通, 最起码几个简单的 . * ? \d 等规则需要会写会用. 掌握了正则表达式, 再复杂的内容, 也可以游刃有余. 数据库 这里对应的是上面的第二等级学习了, 如果是第一级别的比较少量的数据, 个人认为没有必要非得存到数据库里面. 简单的存成文本格式, csv, txt, json等就可以了. 如果是对于数据量比较大, 比较复杂的数据可能需要保存到数据库中, 爬到的数据一般表关系比较弱, 个人推荐使用NoSQL, 例如mongdb等. Selenium爬取动态网站 现在动态加载的网站越来越多了, 没办法, 很多时候就是等上自动化测试的内容. 利用Selenium可以实现和真实开启网站一样的效果, 真正达到无所不能爬的境界. 俗话说兴趣是最好的老师, 培养点兴趣比啥都重要, 我想如果对爬虫真的有兴趣的话, 这些都是不难的! 好的, Python爬虫基础方面的内容大概就介绍这些啦, 码文不易, 觉得不错的小伙伴给点个赞!

0.0000 5 0 回复

推荐课程