爬虫一 requests库与BeautifulSoup库、HTML

安装requests库
方法是:在Mac电脑里打开终端软件(terminal),输入pip3 install requests,然后点击enter即可;Windows电脑里叫命令提示符(cmd),输入pip install requests 即可。

爬虫第一步、获取数据

requests.get()方法

import requests #引入requests库。
requests [riˈkwests] n. 请求,要求( request的名词复数 ); 需要; 所请求的事物; 申请书
res = requests.get(‘URL’) #requests.get是在调用requests库中的get()方法,它向服务器发送了一个请求,括号里的参数是你需要的数据所在的网址,然后服务器对请求作出了响应。我们把这个响应返回的结果赋值给变量res
requests.get()发送了请求,然后得到了服务器的响应。服务器返回的结果是个Response对象,现在存储到了我们定义的变量res中。
print(type(res)) #打印变量res的数据类型
这代表着:res是一个对象,属于requests.models.Response类。好,既然已经知道res是一个Response对象了,我们也就可以去了解它的相应属性和方法了。

Response对象常用的四个属性:
Response读作: [risˈpɔns]中文意思n.响应.回答,答复;反应
在这里插入图片描述

属性一、response.status_code 用法

status[ˈsteitəs] n.状况;地位;资格;身份;情形
code[kəud]n.代码,代号;电码

print(res.status_code)#打印变量res的响应状态码,以检查请求是否成功
在这里插入图片描述
**

属性二、response.content

**
content 读作:[ˈkɔntent]n.(pl.)–内容;书报内容 ,
它能把Response对象的内容以二进制数据的形式返回,适用于图片、音频、视频的下载 示例:
pic = res.content
#新建了一个文件ppt.jpg,这里的文件没加路径,它会被保存在程序运行的当前目录下。
#图片内容需要以二进制wb读写。
photo = open(‘ppt.jpg’,‘wb’)
#获取pic的二进制内容
photo.write(pic)
#关闭文件
photo.close()

属性三、response.text

这个属性可以把Response对象的内容以字符串的形式返回,适用于文字、网页源代码的下载。例:
import requests
res = requests.get(……….网址)
#把Response对象的内容以字符串的形式返回
novel=res.text
#现在,可以打印小说了,但考虑到整章太长,只输出800字print(novel[:800])

属性四、response.encoding

它能帮我们定义Response对象的编码。事实上,requests.get()发送请求后,我们得到一个Response对象,其中,requests模块会对数据的编码类型做出自己的判断。
用法示例:

# 引用requests库
import requests

# 下载《三国演义》第一回,我们得到一个对象,它被命名为res
res=requests.get('https://localprod.pandateacher.com/python-manuscript/crawler-html/sanguo.md')
# 定义reponse对象的编码为utf-8。
res.encoding='utf-8'
# 把Response对象的内容以字符串的形式返回
novel=res.text
# 打印小说的前800个字。
print(novel[:800])
遇上乱码的时候,才考虑用res.encoding,一般不用。

总结
在这里插入图片描述
可以看到,爬虫的第0步:获取数据,本质就是通过URL去向服务器发出请求,服务器再把相关内容封装成一个Response对象返回给我们,这是通过requests.get()实现的,而我们获取到的response对象下有四个常用的属性。要注意这种从URL到Response这种操作对象的转换关系。

robots协议是互联网爬虫的一项公认的道德规范,它的全称是“网络爬虫排除标准”(robots exclusion protocol),这个协议用来告诉爬虫,哪些页面是可以抓取的,哪些不可以。
淘宝的robots协议 ( http://www.taobao.com/robots.txt)示例:

User-agent:  Baiduspider # 百度爬虫
Allow:  /article # 允许访问 article 
Allow:  /oshtml 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值