1、爬虫的定义
网络爬虫,又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者,是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。
2、爬虫的基本原理
网络爬虫的基本原理,网络爬虫是捜索引擎抓取系统的重要组成部分。爬虫的主要目的是将互联网上的网页下载到本地形成一个或联网内容的镜像备份。这篇博客主要对爬虫以及抓取系统进行一个简单的概述。
3、爬虫的设计思路:
1)首先确定需要爬取的网页URL地址。
2) 通过HTTP/HTTP协议来获取对应的HTML页面。
3) 提取HTML页面里有用的数据:
a. 如果是需要的数据,就保存起来。
b. 如果是页面里的其他URL,那就继续执行第二步。
4、了解HTML
HTML 是用来描述网页的超文本标记语言(Hyper Text Markup Language),HTML 不是一种编程语言,而是一种标记语言 (markup language),标记语言是一套标记标签 (markup tag)。
5、学习使用python爬虫库
Python 爬虫库,requests是python实现的简单易用的HTTP库,requests是python实现的简单易用的HTTP库,使用起来比urllib简洁很多,因为是第三方库,所以使用前需要cmd安装,找到python安装路径中的Scripts的路径:
C:\Users\Administrator\AppData\Local\Programs\Python\Python38-32\Scripts
cmd:cd C:\Users\Administrator\AppData\Local\Programs\Python\Python38-32\Scripts
6、get请求和post请求的区别
1)get请求无请求体,post有
2)get请求把数据放到URL地址中
3)post请求change用于登录注册
4)post请求携带的数据量比get请求大,多,常用于传输大文本
7、requests模块的学习
1)使用前:pip install requests
2)发送get,post请求
response = requests.get(url) #发送get请求,请求url地址对应的响应
response = requests.post(url,data={请求体的字典}) #发送post请求
response.request.url #发送请求的url地址(字符串)
response.url #response响应的url地址(字符串)
response.request.headers # 请求头(字典)
response.headers #响应头(字典)
3)response的方法
->response.text
该方式往往会出现乱码,出现乱码使用response.encoding=”utf-8”
->response.content.decode()
把响应的二进制字节流转化为str类型
4)获取网页源码的方法(通过下面三种方式一定可以获取到)
->response.content.decode()
->response.content.decode(“gbk”)
->response.text
5)发送header的请求:为了模拟浏览器,获取和浏览器一模一样的内容headers = {“”:””,””:””} #””里面可以在Response Headers里找
例如:
get请求:
import requests
url = 'http://www.baidu.com'
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36"}
response = requests.get(url, headers=headers)
# print(response)
# 获取网页的html字符串
# response.encoding = 'utf-8'
# print(response.text)
print(response.content.decode())
post请求:
import requests
url = 'https://fanyi.baidu.com/basetrans'
query_string = {'query': '人生苦短,我用python', 'from': 'zh', 'to': 'en'}
headers = {'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1'}
response = requests.post(url, data=query_string, headers=headers)
print(response)
print(response.content.decode())
8、简单的爬取网页数据(爬取东方财富网站数据 )
# 创建一个workbook 设置编码
# 停止driver
# 创建一个worksheet
# 写入表头
# 保存