马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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)
|