您的位置:首页 > 编程语言 > Python开发

入门python3爬虫需要掌握的知识与技巧

2017-12-02 01:34 253 查看
近期学了几天的python爬虫,在一个人瞎摸索中吸取了很多经验,在此把自己的初学者学习的经验拿出来分享。

下面讲的是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()解码
编码解码还有这两种函数,str是关于编码的函数,bytes是关于解码的函数。

网页涉及到的编码经常有’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 爬虫 经验