初识urllib原生框架

初识urllib原生框架

爬虫流程:url处理 => 建立连接爬取数据 => 数据分析 => 数据存储

import urllib.request # url相关的基本函数
import urllib.parse  # 导入parse,这个库主要用于处理url的格式问题

基本函数介绍

创建一个url

url = "http://www.baidu.com/"
urllib.request.urlopen()函数

说明:urlopen()这个方法用于打开一个远程链接,并且返回响应对象

返回值:<http.client.HTTPResponse object at 0x7ffa4efc1898>

常用参数:url

res = urllib.request.urlopen(url) 
urllib.request.urlretrieve()函数

说明:urlretrieve()用于把url的内容下载下载下来存储到filename目录下

常用参数:url,filename:文件存储路径

urllib.request.urlretrieve(url, "./baidu.html")

参数解析部分

用到了urllib.parse模块

urllib.parse.urlencode(dic)函数

说明:建立一个字典存储参数,urllib库不能识别汉字,如果有汉字需要转成ascii编码格式

返回值:string,url后面的参数

# urlencode() urllib库不能识别汉字,如果有汉字需要转成ascii编码格式
# 1)把待处理的参数写成字典的形式
dic = {"wd": "赵丽颖"}
# 2)用urlencode()方法字典处理成url参数形式(xx==xx&pp=pp)
data = urllib.parse.urlencode(dic)

header伪装成浏览器部分

用到了urllib.request模块

用户代理:有些网站为了防止某些恶意的爬虫攻击网站,会设置用户代理,进行过滤,返回403

解决方案:伪装成浏览器

header = {
"User-Agent": "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N)"
}

构建ruquest对象,并让其携带用户代理

1.第一种方法

req = urllib.request.Request(url=url, headers=header)
res = urllib.request.urlopen(url=req)

2.第二种方法

req = urllib.request.Request(url=url)
req.add_header("User-Agent", "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N)")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值