|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 非凡 于 2021-10-23 23:21 编辑
爬取网页html信息主要步骤:
1、获取响应对象
2、从对象中获取网页代码
3、从代码中获取自己想要的信息。
1、根据自己获得的信息,获取新的新的响应对象。
2、从对象中获取网页代码
3、从代码中获取自己想要的信息。
python的urllib库和Requists库都是可以获取网页的 html 信息
urlilb:
urllib 库属于 Python 的标准库模块,无须单独安装,它是 Python 爬虫的常用模块。
Requists:
需要安装,但这Requists库是真的香。后面会介绍,现在先介绍urllib。
常用方法
下面关于 urllib 做简单总结。
1) urlopen()
表示向网站发起请求并获取响应对象,如下所示:
- urllib.request.urlopen(url, data=None, [timeout, ]*)
复制代码
urlopen() 有两个参数,说明如下:
url:表示要爬取数据的 url 地址。
data参数:data用来指明发往服务器请求中的额外的信息
data默认是None,此时以GET方式发送请求;当用户给出data参数的时候,改为POST方式发送请求。
timeout:设置等待超时时间,指定时间内未得到响应则抛出超时异常。
2) Request()
该方法用于创建请求对象、包装请求头,比如重构 User-Agent(即用户代理,指用户使用的浏览器)使程序更像人类的请求,而非机器。User-Agent可以理解为浏览器识别码,网站服务器可以通过User-Agent识别出你是通过什么浏览器访问网站的。python的User-Agent常被网站服务器拒绝访问,重构User-Agent是是爬虫和反爬虫斗争的第一步
- urllib.request.Request(url,headers)
复制代码
参数说明如下:
url:请求的URL地址。
headers:重构请求头。
3) html响应对象方法
- bytes = response.read() # read()返回结果为 bytes 数据类型
- string = response.read().decode() # decode()将字节串转换为 string 类型
- url = response.geturl() # 返回响应对象的URL地址
- code = response.getcode() # 返回请求时的HTTP响应码
复制代码
4) 编码解码操作
- #字符串转换为字节码
- string.encode("utf-8")
- #字节码转换为字符串
- bytes.decode("utf-8")
复制代码
小甲鱼的第53课上我的第一爬虫程序,爬猫片的
- import easygui
- import urllib.request
- easygui.msgbox('欢迎来看猫片!',ok_button='快点给我猫')
- field = ('宽.xp','高.xp')
- vlaue = ['500','600']
- input_vlaue = easygui.multenterbox('请输入适合你尺寸,我将为您提供你想要的猫',fields=field,values=vlaue)
- #获得需要爬取页面的链接
- url = 'http://placekitten.com/g/%s/%s'%(int(input_vlaue[0]),int(input_vlaue[1]))
- #第一步:发起请求,获取响应对象
- response = urllib.request.urlopen(url)
- host_url = easygui.filesavebox(default=r'F:\pythonProject\猫片_%s_%s.jpg'%(int(input_vlaue[0]),int(input_vlaue[1])))
- #第二步:获取网页代码
- cat_img = response.read()
- #第三部:解析网页代码,获取自己想要的内容
- """这里整个网页就是图片,所有代码就是图片,不需要第三步解析网页代码"""
- with open(host_url,'wb') as f:
- f.write(cat_img)
复制代码
|
|