爬虫基本库的使用

urllib库

urllib库是python中一个最基本的网络请求库。可以模拟浏览器的行为,向指定的服务器发送一个请求,并可以保存服务器返回的数据。(python标准库)

urlopen函数

在python3的urllib库中,所有和网络请求相关的方法,都被集到urllib.request模块中:

from urllib import request
resp=request.urlopen("http:www.baidu.com")
print(resp.read())

urlopen函数详解

创建一个表示远程url的类文件对象,然后像本地文件一样操作这个类文件对象来获取远程数据。

  1. url:请求的url
  2. data:请求的data,如果设置了这个值,那么将变成post请求。
  3. 返回值:返回值是一个http.client.HTTPResponse对象,这个对象是一个类文件句柄对象。(有read(size)、readline、readlines以及getcode等方法)

数据保存方式

urlretrieve函数

这个函数可以方便的将网页上的一个文件保存到本地。

from urllib import request
request.urlretrieve('https://123.sogou.com/','sogou.html')#(url,文件名)

url编解码

urlencode函数

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

from urllib import parse
data={'name':'爬虫基础','greet':'hello world','age':100}
qs=parse.urlencode(data)
#a='英语'
#qs=parse.quote(a)对字符串编码
print(qs)

parse_qs函数

对url解码

parse.parse_qs(qs)

URL地址解析

urlparse和urlsplit

有时候拿到一个url,想要对这个url中的各个组成部分进行分割,那么这时就可以使用urlparse或urlsplit.
urlparse和urlsplit基本一样,唯一不同的地方是:
urlparse里有params属性,而urlsplit没有这个属性。(可选参数)

from urllib import parse

url='https://page.1688.com/channel/szyx/re/index.html?cosite=sogoudaohang&location=mingzhan'

#result=parse.urlparse(url)
result=parse.urlsplit(url)
print(result)
print(result.path)

request.Request类

如果想要在请求中添加一些请求头,那么就必须使用request.Request类来实现。比如添加一个user-agent.

from urllib import request
header={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36'}
#构造url连接
rq=request.Request("http://www.baidu.com",headers=header)
resp=request.urlopen(rq)
print(resp.read())
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值