python爬虫入门—urllib模块

在了解了认识爬虫后我们就开始我们的简单爬虫练习吧!

urllib库的基本使用
urllib是python内置的HTTP请求库,无需安装即可使用,它包含了4个模块:
1,request:它是最基本的http请求模块,用来模拟发送请求。
2,error:异常处理模块,如果出现错误可以捕获这些异常。
3,parse:一个工具模块,提供了许多URL处理方法,如:拆分、解析、合并等。
4,robotparser:主要用来识别网站的robots.txt文件,然后判断哪些网站可以爬。

因为urllib模块是python自带的模块所以我们不需要安装直接导入使用即可

# 导入urllib库
import urllib.request

# 通过百度的url向百度网发送请求,并返回百度网响应的类文件对象
response = urllib.request.urlopen("http://www.baidu.com/")

# 类文件对象支持 文件对象的操作方法,如read()方法读取文件全部内容,返回字符串
html = response.read()

# 打印字符串
print(html)

##结果如下(我只截取了前面一点)
b'<!DOCTYPE html><!--STATUS OK-->\n\n\n    <html><head><meta http-equiv="Content-Type" content="text/html;charset=utf-8">...

实际上,如果我们在浏览器上打开百度主页, 右键选择“查看源代码”,你会发现,跟我们刚才打印出来的是一模一样。也就是说,上面的4行代码就已经帮我们把百度的首页的全部代码爬了下来。其中的b代表了这些数据是二进制数据
在这里插入图片描述

User-Agent
但是这样直接用urllib给一个网站发送请求的话,确实略有些唐突了,就好比,人家每家都有门,你以一个路人的身份直接闯进去显然不是很礼貌。而且有一些站点不喜欢被程序(非人为访问)访问,有可能会拒绝你的访问请求。

但是如果我们用一个合法的身份去请求别人网站,显然人家就是欢迎的,所以我们就应该给我们的这个代码加上一个身份,就是所谓的User-Agent头。

  • 浏览器 就是互联网世界上公认被允许的身份,如果我们希望我们的爬虫程序更像一个真实用户,那我们第一步就是需要伪装成一个被浏览器。用不同的浏览器在发送请求的时候,会有不同的 User-Agent 报头。
  • urllib默认的User-Agent头为:Python-urllib/x.y (x和y 是Python 主.次 版本号,例如 Python-urllib/3.7)

获取User-Agent
在这里插入图片描述

# 导入urllib模块
import urllib.request

#访问的网站
url = "http://www.baidu.com/"

# IE 9.0 的 User-Agent,包含在 user_agent里
user_agent = {"User-Agent": "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)"}

# url 连同 headers,一起构造Request请求,这个请求将附带 IE9.0 浏览器的User-Agent
request = urllib.request.Request(url=url, headers=user_agent)

# 向服务器发送这个请求
response = urllib.request.urlopen(request)

html = response.read()
print(html)

##结果如下(我只截取了前面一点)
b'<!DOCTYPE html><!--STATUS OK-->\n\n\n    <html><head><meta http-equiv="Content-Type" content="text/html;charset=utf-8">...

由于如今的爬虫使用urllib模块的使用很少很少,所以我们对于urllib模块只做了解即可。希望喜欢的朋友点个关注,我会陆陆续续的发表文章分享自己学习爬虫的经过,从简单爬虫,到分布式爬虫,多线程爬虫,以及Scrapy框架的学习。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值