用Python爬网页需要了解什么背景知识
2017-01-14 15:19
519 查看
在知乎上有一位同学提出的问题:用Python爬网页需要了解什么背景知识,恰好我对爬虫有所了解,所以昨天晚上做了回答,今天放到公众号上面希望对大家有所帮助,如有帮助欢迎转发。
文中涉及到一些教程链接在本篇文章无法打开,可以点击阅读原文查看我在知乎上的原回答,也欢迎大家给我的回答点赞。
要学会使用Python爬取网页信息无外乎以下几点内容:
1、要会Python
2、知道网页信息如何呈现
3、了解网页信息如何产生
4、学会如何提取网页信息
第一步Python是工具,所以你必须熟练掌握它,要掌握到什么程度呢?如果你只想写一写简单的爬虫,不要炫技不考虑爬虫效率,你只需要掌握:
数据类型和变量
字符串和编码
使用list和tuple
条件判断、循环
使用dict和set
你甚至不需要掌握函数、异步、多线程、多进程,当然如果想要提高自己小爬虫的爬虫效率,提高数据的精确性,那么记住最好的方式是去系统的学习一遍Python,去哪儿学习?Python教程
假设你已经熟悉了最基础的Python知识,那么进入第二步:知道网页信息如何呈现?你首先要知道所需要抓取的数据是怎样的呈现的,就像是你想要学做一幅画,在开始之前你要知道这幅画是用什么画出来的,铅笔还是水彩笔...等等,可能种类是多样的,但是放到网页信息来说这儿只有两种呈现方式:
1、HTML (HTML 简介)
2、JSON (JSON 简介)
HTML是用来描述网页的一种语言
JSON是一种轻量级的数据交换格式
假设你现在知道了数据是由HTML和JSON呈现出来的,那么我们紧接着第三步:数据怎么来?数据当然是从服务器反馈给你的,为什么要反馈给你?因为你发出了请求。
“Hi~ ,服务器我要这个资源”
“正在传输中...”
“已经收到HTML或者JSON格式的数据”
这是什么请求?要搞清楚这一点你需要了解一下http的基础知识,更加精确来说你需要去了解GET和POST是什么,区别是什么。也许你可以看看这个:浅谈HTTP中Get与Post的区别 - hyddd - 博客园
很高兴你使用的是Python,那么你只需要去掌握好快速上手 - Requests 2.10.0 文档,requests可以帮你模拟发出GET和POST请求,这真是太棒了。
饭菜已经备好,两菜一汤美味佳肴,下面就是好好享受了。现在我们已经拿到了数据,我们需要在这些错乱的数据中提取我们需要的数据,这时候我们有两个选择。
第一招:万能钥匙
Python正则表达式指南 ,再大再乱的内容,哪怕是大海捞针,只要告诉我这个针的样子我都能从茫茫大海中捞出来,强大的正则表达式是你提取数据的不二之选。
第二招:笑里藏刀
Beautiful Soup 4.2.0 文档,或许我们有更好的选择,我们把原始数据和我们想要的数据的样子扔个这个Beautifulsoup,然后让它帮我们去寻找,这也是一个不错的方案,但是论灵活性,第二招还是略逊于第一招。
第三招:双剑合璧
最厉害的招式莫过于结合第一招和第二招了,打破天下无敌手。
基础知识我都会,可是我还是写不了一个爬虫啊!
客观别急,这还没完。
以下这些项目,你拿来学习学习练练手。
两个教学项目你值得拥有:
03. 豆瓣电影TOP250
04. 另一种抓取方式
还不够?这儿有很多:
知乎--你需要这些:Python3.x爬虫学习资料整理
如何学习Python爬虫[入门篇]? - 知乎专栏
知乎--Python学习路径及练手项目合集
偶遇一个段子
赞赏
人赞赏
文中涉及到一些教程链接在本篇文章无法打开,可以点击阅读原文查看我在知乎上的原回答,也欢迎大家给我的回答点赞。
要学会使用Python爬取网页信息无外乎以下几点内容:
1、要会Python
2、知道网页信息如何呈现
3、了解网页信息如何产生
4、学会如何提取网页信息
第一步Python是工具,所以你必须熟练掌握它,要掌握到什么程度呢?如果你只想写一写简单的爬虫,不要炫技不考虑爬虫效率,你只需要掌握:
数据类型和变量
字符串和编码
使用list和tuple
条件判断、循环
使用dict和set
你甚至不需要掌握函数、异步、多线程、多进程,当然如果想要提高自己小爬虫的爬虫效率,提高数据的精确性,那么记住最好的方式是去系统的学习一遍Python,去哪儿学习?Python教程
假设你已经熟悉了最基础的Python知识,那么进入第二步:知道网页信息如何呈现?你首先要知道所需要抓取的数据是怎样的呈现的,就像是你想要学做一幅画,在开始之前你要知道这幅画是用什么画出来的,铅笔还是水彩笔...等等,可能种类是多样的,但是放到网页信息来说这儿只有两种呈现方式:
1、HTML (HTML 简介)
2、JSON (JSON 简介)
HTML是用来描述网页的一种语言
JSON是一种轻量级的数据交换格式
假设你现在知道了数据是由HTML和JSON呈现出来的,那么我们紧接着第三步:数据怎么来?数据当然是从服务器反馈给你的,为什么要反馈给你?因为你发出了请求。
“Hi~ ,服务器我要这个资源”
“正在传输中...”
“已经收到HTML或者JSON格式的数据”
这是什么请求?要搞清楚这一点你需要了解一下http的基础知识,更加精确来说你需要去了解GET和POST是什么,区别是什么。也许你可以看看这个:浅谈HTTP中Get与Post的区别 - hyddd - 博客园
很高兴你使用的是Python,那么你只需要去掌握好快速上手 - Requests 2.10.0 文档,requests可以帮你模拟发出GET和POST请求,这真是太棒了。
饭菜已经备好,两菜一汤美味佳肴,下面就是好好享受了。现在我们已经拿到了数据,我们需要在这些错乱的数据中提取我们需要的数据,这时候我们有两个选择。
第一招:万能钥匙
Python正则表达式指南 ,再大再乱的内容,哪怕是大海捞针,只要告诉我这个针的样子我都能从茫茫大海中捞出来,强大的正则表达式是你提取数据的不二之选。
第二招:笑里藏刀
Beautiful Soup 4.2.0 文档,或许我们有更好的选择,我们把原始数据和我们想要的数据的样子扔个这个Beautifulsoup,然后让它帮我们去寻找,这也是一个不错的方案,但是论灵活性,第二招还是略逊于第一招。
第三招:双剑合璧
最厉害的招式莫过于结合第一招和第二招了,打破天下无敌手。
基础知识我都会,可是我还是写不了一个爬虫啊!
客观别急,这还没完。
以下这些项目,你拿来学习学习练练手。
两个教学项目你值得拥有:
03. 豆瓣电影TOP250
04. 另一种抓取方式
还不够?这儿有很多:
知乎--你需要这些:Python3.x爬虫学习资料整理
如何学习Python爬虫[入门篇]? - 知乎专栏
知乎--Python学习路径及练手项目合集
偶遇一个段子
赞赏
人赞赏
相关文章推荐
- 制作网页开始时候需要认识和了解知识
- 构建强化学习系统,你需要先了解这些背景知识
- [J2EE]使用 EJB 组件你需要了解些什么呢?--是一些关于使用条件的判断标准
- 网站设计WEB开发需要了解的一点色彩运用知识
- 网页设计者需要了解的_网页字体大小数据参考
- 使用 EJB 组件你需要了解些什么呢?
- 使用 EJB 组件你需要了解些什么呢?
- 介绍有关学习C++ STL的预备知识和STL的相关背景知识,适合想对STL做大致了解的初学者
- linux基础知识需要懂什么
- .NET基本需要了解的知识
- 编写线程需要了解的知识
- 写网页内容需要注意些什么?
- 系统分析员要了解什么知识?
- 写网页内容需要注意些什么?
- 了解更多:什么是个人知识管理?
- 网页设计者需要了解的_网页字体大小数据参考
- 除了VC、VB、C#,我还需要了解什么语言?
- 采购需要了解的财务知识
- 黑客最初需要了解的一些知识
- 开始学习asp.net需要学习什么相关的知识??