其实学习爬虫也挺简单,主要就是三个步骤
1.抓取网页
2.分析网页
3.保存数据
抓取网页
urllib库
urllib库下主要分成四个模块
1.request 模拟发送请求
2.error 异常处理模块
3.parse 处理URL(拆分,解析,合并)
4.robotparser 识别robot.txt文件,判断网页是否可爬
request模块
1. urlopen()方法(默认GET):
常用参数列表:url,data(如果传递该参数,则用POST方法在表单中传递),timeout
2. Request 构造复杂的请求对象
常用参数列表:url,data,headers={ },请求方的host/IP,请求是否无法验证,method
还可以用add_header()方法添加请求头
3. 高级方法(涉及到验证,cookies,代理等问题)
基本思路 创建对象 ——> 创建句柄(handler)——> 创建opener
error模块
1. URLError
所有异常类的基类,能够处理所有request模块产生的异常
属性:reason
2. HTTPError
URLError的子类,专门用于处理HTTP请求错误
属性:code reason headers
parse模块
urlparse() <——> urlunparse () 协议://域名/路径;参数?查询条件#锚点
urlsplit() <——> urlunsplit() 同上,不解析参数部分
urljoin()拼合两个url
urlencode() 接收字典参数,传递给url参数字段
parse_qs() 把GET请求参数转化为字典
parse_qsl() 把GET请求参数转化为元组的列表
quote() <——> unquote() 中文字符与url编码格式转化
robotparser模块
判断爬虫和搜索引擎哪些页面可抓取(不可抓取) robot.txt
RobotFileParser对象方法:
1.set_url() 也可在创建对象时初始化url
2.read() 读取robot.txt文件,必须调用
3.parse() 解析robot.txt文件
4.can_fetch() 参数:User-agent,url 是否可以抓取 True/False
5.mtime() 上次抓取和分析robot.txt的时间
6.modified() 更新抓取和分析robot.txt的时间