鱼C论坛

 找回密码
 立即注册
查看: 1318|回复: 0

[技术交流] python爬虫——第二篇:我的第一个爬虫程序

[复制链接]
发表于 2021-10-23 18:13:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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()
表示向网站发起请求并获取响应对象,如下所示:
  1. 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是是爬虫和反爬虫斗争的第一步
  1. urllib.request.Request(url,headers)
复制代码

参数说明如下:
url:请求的URL地址。
headers:重构请求头。

3) html响应对象方法
  1. bytes = response.read() # read()返回结果为 bytes 数据类型
  2. string = response.read().decode() # decode()将字节串转换为 string 类型
  3. url = response.geturl() # 返回响应对象的URL地址
  4. code = response.getcode() # 返回请求时的HTTP响应码
复制代码


4) 编码解码操作
  1. #字符串转换为字节码
  2. string.encode("utf-8")
  3. #字节码转换为字符串
  4. bytes.decode("utf-8")
复制代码



小甲鱼的第53课上我的第一爬虫程序,爬猫片的
  1. import easygui
  2. import urllib.request

  3. easygui.msgbox('欢迎来看猫片!',ok_button='快点给我猫')

  4. field = ('宽.xp','高.xp')
  5. vlaue = ['500','600']
  6. input_vlaue = easygui.multenterbox('请输入适合你尺寸,我将为您提供你想要的猫',fields=field,values=vlaue)

  7. #获得需要爬取页面的链接
  8. url = 'http://placekitten.com/g/%s/%s'%(int(input_vlaue[0]),int(input_vlaue[1]))

  9. #第一步:发起请求,获取响应对象
  10. response = urllib.request.urlopen(url)
  11. host_url = easygui.filesavebox(default=r'F:\pythonProject\猫片_%s_%s.jpg'%(int(input_vlaue[0]),int(input_vlaue[1])))
  12. #第二步:获取网页代码
  13. cat_img = response.read()
  14. #第三部:解析网页代码,获取自己想要的内容
  15. """这里整个网页就是图片,所有代码就是图片,不需要第三步解析网页代码"""

  16. with open(host_url,'wb') as f:
  17.     f.write(cat_img)
复制代码

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-28 19:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表