文章目录
前言
在互联网大数据时代,数据爆炸式增长,我们得到了海量的信息,但是大多数都是无效的垃圾信息,我们想要获取对自己有用的信息,就可以通过爬虫来实现。
提示:以下是本篇文章正文内容,下面案例可供参考
一、爬虫是什么?
爬虫(spider),又叫做网络爬虫(又被称为网页蜘蛛,网络机器人),是一种按照一定的规则,自动抓取万维网信息的程序或者脚本。
二、所需要的工具
python、pycharm
三、使用步骤
1.引入库
代码如下(示例):
import requests #用来发送请求的
import random
from lxml import etree #用来解析数据的
import time
2.如何安装第三方库
如果下载速度比较慢,可以使用国内的镜像网站:
使用方法:pip install requests -i 网站
清华:https://pypi.tuna.tsinghua.edu.cn/simple
阿里云:http://mirrors.aliyun.com/pypi/simple/
豆瓣:http://pypi.douban.com/simple/
中国科技大学: https://pypi.mirrors.ustc.edu.cn/simple
3.爬虫的基本步骤
1.导入相关的库
2.发送请求,获取响应
3.拿到数据进行解析
4.常见的反反爬措施
4.1. 请求头的伪造(必须)
一.网上可以寻找请求头大全
二…直接用网页上的请求头
三.安装一个库,也可以获得请求头
pip install fake-useragent (有问题的情况 python -m pip install fake-useragent )
from fake_useragent import UserAgent
ua = UserAgent()
print(ua)
4.2. 多次采集,一定要注意:模拟人的行为 time.sleep()
4.3 IP地址代理(推荐 收费)(隐藏自身IP)
相关网站:快代理,西祠代理。
使用方法:
5.常见的响应数据
- HTML文件
- json字符串
例如:
json字符串
Response对象的属性:
response.text | 文本文件 |
---|---|
response.content | 二进制数据 |
response.encoding | 解决编码格式的问题 |
response.status_code | 状态码,200表示连接成功,404表示失败 |
response.content 用来保存图片音乐等文件
6.关于post和get的区别
1.相对post请求是安全的,因为get只是查询数据功能,而post是要更新数据的
2.get请求参数放在url?后,post放在http请求主体里面
data = {
"cname":"",
"pid":"",
"keyword": "重庆", #地址也可以修改
"pageIndex": "1",
"pageSize": "90" #一页显示的数据
}
response = requests.post(url=post_url,data = data,headers=headers)
post请求要加上表单数据
7.解决cookie的问题
cookie:用来让服务器端记录客户端的相关状态
手动处理:通过抓包工具获取cookie值,将该值封装到headers中(不建议)
自动处理:cookie的来源是由模拟登录post请求后,由服务端创建。session会话的作用在请求发送的过程中产生了cookie,则该cookie会自动被储存到session对象中;用session对象对个人主页进行发送。
#创建一个session对象
session = requests.session()
response = session.post(url=url,data=data)
总结
以上就是今天要讲的内容,因为本人也是刚刚学习爬虫,所以也只能简单介绍了爬虫的使用,来爬取一些简单的网页。