爬虫笔记(1)- urllib

概念

1.通过一个程序,根据url进行爬取网页,获取有用信息
2.使用程序和浏览器,去向服务器发送请求,获取响应信息

爬虫核心

1.爬取网页
2.解析数据
3.难点:爬虫和反爬虫之间的博弈

爬虫用途

1.数据分析/人工数据集
2.社交软件冷启动
3.舆情监控
4.竞争对手监控

爬虫分类

通用爬虫:
1、实例:360、百度、google等搜索引擎
2、功能:访问网页、抓取数据、数据存储、数据处理、提供检索服务
3、robots协议:一个约定俗成的协议,添加robots.txt文件,来说明本网站哪些内容不可以被抓取,起不到限制作用
4、网站排名:
(1)根据pagerank算法值进行排名
(2)百度竞价排名
5.缺点
(1)抓取的数据大多是无用的
(2)不能根据用户的需求来精准获取数据

聚焦爬虫:
1、功能:根据需求,实现爬虫程序,抓取需要的数据
2、设计思路:
(1)确定要爬取的url -> 如何获取url
(2)模拟浏览器通过http协议访问url,获取服务器返回的html代码
(3)解析html字符串

反爬手段

1.user-Agent
用户代理,简称UA,是一个特殊的字符串头,使得服务器能够识别客户使用的操作系统及版本、CPU类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等

2.代理IP
西次代理
快代理
(1)使用透明代理,对方服务器可以知道你使用了代理,并且也知道你的真实IP。
(2)使用匿名代理,对方服务器可以知道你使用了代理,但不知道你的真实IP。
(3)使用高匿名代理,对方服务器不知道你使用了代理,更不知道你的真实IP。

3.验证码访问
打码平台、云打码平台、超级🦅

4.动态加载网页
网站返回的是js数据,并不是网页的真实数据,selenium驱动真实的浏览器发送请求

5.数据加密
分析js代码

urllib库的使用

python自带

1个类型 6个方法

print(type(response))
#HTTPResponse类型

content = response.read()
content = response.read(5)#返回5个字节
content = response.readline()#读取一行
content = response.readlines()#一行一行读,直到读完
print(response.getcode())#返回状态码,如果是200就证明正确
print(response.geturl())#返回url地址
print(response.getheaders())#获取状态信息

下载

urllib.request.urlretrieve(url,filename)
图片复制地址
视频在网页检查中找vedio的src

请求对象的定制

url组成
http 80/https 443
协议 主机 端口号 路径s 参数wd
mysql 3306、oracle 1521、redis 6379、mongodb 27017

#请求对象的定制,因为urlopen方法中不能存储字典,所以headers不能传递出去
# 参数顺序问题,要加上变量名
request = urllib.request.Request(url=url,headers=headers)

response = urllib.request.urlopen(request)

编解码

get:
quote方法能将汉语转为ASCII码,urllib.parse.quote(‘周杰伦’)

urlencode方法:多个参数的时候,将字典转为ASCII码,两两之间加&

post:

#post请求的参数必须要进行编码
data = urllib.parse.urlencode(data).encode('utf-8')

#post请求的参数不会拼接在url后边的
request = urllib.request.Request(url=url,data=data,headers=headers)

response = urllib.request.urlopen(request)
content = response.read().decode('utf-8')
print(content)

1.post请求方式的参数 必须编码 urlencode
2.编码之后 必须调用encode方法
3.参数是放在请求对象定制的方法中

在这里插入图片描述
如图,是百度翻译的详细翻译。

cookie很重要。

ajax的get请求

爬电影排行前10页

ajax的post请求

在这里插入图片描述
看到如图即为Ajax请求

爬虫中的异常

URLError

HTTPError是URLError的子类

cookie 登陆

有登陆后的cookie可以进任何页面

handler处理器基本使用

在这里插入图片描述

代理

在这里插入图片描述

代理池

proxies_pool=[
    {'http':'118.24.219.151:1681711111'},
    {'http':'118.24.219.151:1681722222'},
]
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值