入门python3爬虫需要掌握的知识与技巧
2017-12-02 01:34
253 查看
近期学了几天的python爬虫,在一个人瞎摸索中吸取了很多经验,在此把自己的初学者学习的经验拿出来分享。
下面讲的是python3,没了解过python2,不过似乎有些地方两者区别很大。
入门python3爬虫需要对一些库和模块有一定的了解,还需学会查看网页源代码的技巧,并了解一些爬虫框架。
初学爬虫者,主要是掌握urllib库中request模块的一堆函数功能。
有必要的话,也可以学习一下error模块。
request模块一些常用到的函数
一些常用到的方法
编码解码还有这两种函数,str是关于编码的函数,bytes是关于解码的函数。
网页涉及到的编码经常有’utf-8’和”gb18030’等。
一些编码解码的内容可以看这一篇博客——python3 中的编码和解码
首先,需要了解的是 re模块——正则表达式模块。
正则表达式是什么?可以这么说,是用于快速从一大堆字符中快速找出想要的子字符串的一种表达方式。函数+表达方式=快速找出子字符串。
这个模块是初学者必须要弄清楚的,内容比较多,在这里就不多说了。可以参考我写的一篇简略的博客——正则表达式
os模块
可用于对文件文本的操作,可以创建文件夹,访问文件夹内容等(博主对该库了解不深,只用来创建过文件夹和访问文件夹内容)
可以了解的函数有 创建文件夹用的函数mkdir和chdir、访问文件夹里的所有文件函数listdir。
csv模块
爬取出来的数据可以以csv的格式保存,可以用office办公软件中的Excel表格软件打开。
网上给出的写法有好几种,在此给出博主的写法。
首先你需要了解内置函数open的newline参数用法,在这里,用与去除存入csv文件时多出来的空行。
csv模块函数
writer,返回一个对写入数据操作的对象。
writerow,参数是列表,在表格中写入一行数据。
一般鼠标右击该网页,找到”查看网页源代码“这一选项即可打开。
快捷键:Ctrl + U
不过网页源代码太多太乱,有的时候找信息并不容易,可以使用Ctrl+F查找功能进行查找。
也可以在网页中,找到你想爬取的信息,然后右击该信息位置,找到”审核元素”或者”检查”选项,可以看到整齐简洁的代码。
但是,爬取信息都是基于网页源代码的,而”检查”选项给出的代码可能与源代码不一样,这样的话就会出错。这涉及到网络编程知识,不作解释。
这些都需要下载,下载对于新手来说比较麻烦。
安装路径太过麻烦,在此就不多说了。
下面讲的是python3,没了解过python2,不过似乎有些地方两者区别很大。
入门python3爬虫需要对一些库和模块有一定的了解,还需学会查看网页源代码的技巧,并了解一些爬虫框架。
一、认识urllib库
urllib是用于获取网络资源的库,python3自带。初学爬虫者,主要是掌握urllib库中request模块的一堆函数功能。
有必要的话,也可以学习一下error模块。
request模块一些常用到的函数
函数 | 功能简介 |
---|---|
Request | 返回一个Request对象,因为对象有些常用的方法,故而必要的时候需要用到。 |
urlopen | 通过直接给的URL或者Request对象化后的URL,返回一个含有该URL的网页源码的对象。 |
ProxyHandler | 跟代理有关函数,搭建与代理的通信 |
build_opener | 跟代理有关函数,创建一个opener对象 |
install_opener | 安装opener |
方法 | 功能简介 |
---|---|
read() | 用于读urlopen函数返回对象中的网页源码 |
encode() | 编码 |
decode() | 解码 |
网页涉及到的编码经常有’utf-8’和”gb18030’等。
一些编码解码的内容可以看这一篇博客——python3 中的编码和解码
二、认识一些模块
re模块首先,需要了解的是 re模块——正则表达式模块。
正则表达式是什么?可以这么说,是用于快速从一大堆字符中快速找出想要的子字符串的一种表达方式。函数+表达方式=快速找出子字符串。
这个模块是初学者必须要弄清楚的,内容比较多,在这里就不多说了。可以参考我写的一篇简略的博客——正则表达式
os模块
可用于对文件文本的操作,可以创建文件夹,访问文件夹内容等(博主对该库了解不深,只用来创建过文件夹和访问文件夹内容)
可以了解的函数有 创建文件夹用的函数mkdir和chdir、访问文件夹里的所有文件函数listdir。
csv模块
爬取出来的数据可以以csv的格式保存,可以用office办公软件中的Excel表格软件打开。
网上给出的写法有好几种,在此给出博主的写法。
首先你需要了解内置函数open的newline参数用法,在这里,用与去除存入csv文件时多出来的空行。
csv模块函数
writer,返回一个对写入数据操作的对象。
writerow,参数是列表,在表格中写入一行数据。
import csv filename = '统计.csv' fileheader = ['姓名', '性别'] contexts = [['小明', '男'], ['小刚', '男'], ['小红', '女'], ['小花', '女']] with open(filename, 'w', newline='', encoding='gb18030') as f: csv_writer = csv.writer(f) csv_writer.writerow(fileheader) for people in contexts: csv_writer.writerow(people)
三、查看网页源码
网站的文字内容,图片网址,基本都在该网站的网页源码。故而爬取时,先把该网站的网页源码爬取出来,然后从网页源码中筛选出自己想要的数据。用正则表达式从网页源码中筛选信息时,需要先看网页源码来制定好合适的正则表达式。一般鼠标右击该网页,找到”查看网页源代码“这一选项即可打开。
快捷键:Ctrl + U
不过网页源代码太多太乱,有的时候找信息并不容易,可以使用Ctrl+F查找功能进行查找。
也可以在网页中,找到你想爬取的信息,然后右击该信息位置,找到”审核元素”或者”检查”选项,可以看到整齐简洁的代码。
但是,爬取信息都是基于网页源代码的,而”检查”选项给出的代码可能与源代码不一样,这样的话就会出错。这涉及到网络编程知识,不作解释。
四、认识一些爬虫框架
爬虫框架实用的有名气大的Beautiful Soup、强大的Scrapy、分布式cola等。这些都需要下载,下载对于新手来说比较麻烦。
安装路径太过麻烦,在此就不多说了。
相关文章推荐
- Python 网络爬虫 002 (入门) 爬取一个网站之前,要了解的知识
- Python 网络爬虫 002 (入门) 爬取一个网站之前,要了解的知识
- python爬虫入门(1) 基础知识 ; 正则表达式 Re 模块
- Python测试人员需要掌握的知识
- Python基础学习-爬虫入门知识
- 网络爬虫及面试中必须掌握的python基础知识(一)
- Python 爬虫学习 —— Scrapy 入门知识学习
- Python爬虫需要注意的技巧
- 想学网页设计怎么入门?需要掌握哪些知识
- python爬虫主要就是五个模块:爬虫启动入口模块,URL管理器存放已经爬虫的URL和待爬虫URL列表,html下载器,html解析器,html输出器 同时可以掌握到urllib2的使用、bs4(BeautifulSoup)页面解析器、re正则表达式、urlparse、python基础知识回顾(set集合操作)等相关内容。
- python爬虫入门(4)-补充知识:XPath 教程(转自w3school)
- python 入门爬虫 -基础知识(数据怎么来的【二】)
- Python零基础入门十九之爬虫基础知识
- 网络爬虫及面试中必须掌握的python基础知识(二)
- python 爬虫入门(2) 爬虫基础知识 ; urllib 模块 ;urllib2 模块
- 学习flex开发需要掌握的入门知识
- Python做数据分析中需要掌握的命令行知识-持续更新中
- Python基础知识——爬虫入门
- Python爬虫入门 | 3 爬虫必备Python知识
- 【Python爬虫】入门知识