urllib模块是python自带的吗_Python爬虫学习:Python内置的爬虫模块urllib库

urllib库

urllib库是Python中一个最基本的网络请求的库。它可以模拟浏览器的行为发送请求(都是这样),从而获取返回的数据

urllib.request

在Python3的urllib库当中,所有和网络请求相关的方法都被集成到了urllib.request模块下

#基本使用

from urllib importrequest

resp= request.urlopen("URL")print(resp.read())

如果是成功的,那么我们打印的内容和在浏览器中右击查看源代码的内容是一样的。

urlopen接受两个参数:

url:请求的url地址

data:请求的data,如果设置了这个值,请求就会变成是POST请求

返回值:返回值是一个http.client.HTTPResponse对象,这个对象是一个类 文件句柄 对象。有read(size)、readline、readlines以及getcode等方法

urlretrieve函数

这个函数可以非常方便的将网页上的内容保存到本地。

from urllib importrequest

request.urlretrieve("URL","本地保存的文件")

urlencode函数

用浏览器发送请求的时候,如果url中包含了中文或者是其他的特殊字符,那么浏览器会自动的给我们进行一个编码。而如果是我们的爬虫,我们就只能手动的进行编码。

urlencode可以把字典的数据转换为url编码的数据

form urllib importparse

data= {"key":"value"}

url_encode=parse.urlencode(data)print(url_encode)

parse_qs函数

将经过编码后的数据再次进行解码。

form urllib importparse

data= {"key":"value"}

url_encode=parse.urlencode(data)

url_decode=parse.parse_qs(url_encode)print(url_decode)

urlparse和urlsplit

有的时候,我们从页面上拿到一个url,想对这个url进行一个分割,取出某一部分什么的。就可以使用urlparse和urlsplit这些啦

from urllib importrequest,parse

url= 'http://www.baidu.com/s?username=zhiliao'result=parse.urlsplit(url)#result = parse.urlparse(url)

print('scheme:',result.scheme)print('netloc:',result.netloc)print('path:',result.path)

urlparse和urlsplit几乎是一模一样的,唯一不同的就是urlparse中多了一个params属性,这个不常用。

request.Request

还记得在充电中说的请求头吗,如果你想在请求的过程中加上这些请求头,那么你就不得不使用这个request.Request类来实现了。

from urllib importrequest

headers={"User-Agent":""}

req= request.Request("URL",headers=headers)

resp=request.urlopen(req)print(resp.read())

ProxyHandler代理设置

我们制作的爬虫有时候为了爬取更多的数据,有可能会对对方的服务器造成很大的压力。所以,一些网站就专门针对爬虫做了一些防范措施,之前的user-agents是一个,一个Ip访问次数过多也会被禁止,这也是一种防爬机制,所以我们可能会找一些代理IP,当自己的IP无法使用的时候,换一个IP重新使用

form urllib importrequest

handler= requet.ProxyHandler({"代理的协议(http或者https)":"代理IP+端口"})

opener=request.build_opener(handler)

req= request.Request("请求的URL")

resp=opener.open(req)

print(resp.read())

COOKIE的获取和使用

cookie的格式:

Set-Cookie:NAME=VALUE:Expires/Max-age=DATE;Path=PATH;Domain=DOMAIN_NAME;SECURE

NAME:cookie的名字

VALUE:cookie的值

Expires:cookie的过期时间,时间一到,浏览器会自动清除

Path:cookie作用的路劲

Domain:cookie作用的域名

SECURE:是否只在https协议下起作用

使用cookielib库和HTTPCookieProcessor模拟登录

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值