爬虫的构建流程
HTTP Error 418: 这个错误是对方发现你是爬虫。
主要是分为四步:准备工作、获取数据、解析内容、保存数据
一、准备工作:
- 一般python程序第一行须加入
#-*_coding:utf-8-*-
或者#coding=utf-8
这样可以在代码种包含中文 - 在python中,使用函数实现单一功能或相关联功能的代码段,可以提高可读性和代码重复利用率,函数代码块以def关键词开头,后接空格、函数标识符、名称、圆括号()、冒号:,括号中可以传入参数,函数段缩进(Tab或四个空格,只能选择一种),return用于结束函数,可以返回一个值,也可以不带任何表达式(表示返回None)
- Python文件中可以加入main函数用于测试程序:
if __main__ == "__main__":
- python 使用#添加注释,说明代码(段)的作用。
模块(module):用来从逻辑上组织python代码(变量、类、函数),本质就是py文件,提高代码的可维护性。python使用import来导入模块,如:
import requests
from bs4 import BeautifulSoup #进行数据获取,网页解析
import re #正则表达式,进行文字匹配
import urllib.request,urllib.error #指定url,获取网页数据。
import xlwt #进行excel操作
import sqlite3 #进行SQlite数据库操作
二、获取数据
一般使用urllib库获取页面。
- 获取页面数据:
- 对每一个页面,调用askURL函数获取页面内容
- 定义一个获取页面的函数askURL,传入一个url参数,表示网页。
- urllib.request生成请求;
urllib.urlopen发送请求获取响应;read获取页面内容。 - 在访问页面时经常会发生错误,为了程序正常运行。加入异常捕获try…except…语句
1.获取一个get请求
import urllib.request
response = urllib.request.urlopen("http://www.baidu.com")
print(response)
对获取到的网页进行utf-8的解码
import urllib.request
response = urllib.request.urlopen("http://www.baidu.com")
print(response.read().decode