python——爬虫(1)
程序员文章站
2022-07-14 10:46:24
...
数据检索
1.requests库
【安装】
- 用管理员身份运行cmd
- 输入
pip install requests
- 测试requests库是否安装完成
用百度网站测试requests库是否安装成功
```python
>>> import requests #调用requests库
>>> r=requests.get("https://www.baidu.com/") #访问“百度”这个网站
>>> r.status_code #查看该网站的状态码
200 #200代表访问成功,其他数字代表失败
>>>
```python
>>> r.encoding='utf-8' #使用'utf-8'的方式解码
>>> r.text #打印页面
requests的7个主要方法
2.head()方法
>>> r=requests.head("https://www.baidu.com/")
>>> r.status_code
200
>>> r.headers
{'Cache-Control': 'private, no-cache, no-store, proxy-revalidate, no-transform', 'Connection': 'keep-alive', 'Content-Encoding': 'gzip', 'Content-Type': 'text/html', 'Date': 'Mon, 27 Jan 2020 12:34:35 GMT', 'Last-Modified': 'Mon, 13 Jun 2016 02:50:08 GMT', 'Pragma': 'no-cache', 'Server': 'bfe/1.0.8.18'}
>>> r.text
''
只返回了头部信息,可以快速判断该网页的概要信息,而不展示该网页全部信息
3.post()方法
用于向服务器提供新增数据,不会覆盖服务器原有字段,注意与put()方法的区别
提交字典型的键值对时,出现在from下方的原因:
提交给服务器的字典型信息默认存储于表单的字段下
而字符串形式,直接存储于data字段下
4.put()方法
和post()方法类似,用于向服务器提供新增数据,但会覆盖服务器原有字段
5.patch()方法
向服务器提供局部修改请求
爬取网页的通用代码框架
定义:一组代码,准确的,可靠的爬取网页上的内容
requests库的6种异常
import requests
def getHTMLText(url):
try:
r=requests.get(url,timeout=30)
r.raise_for_status()#如果状态不是200,引发HTTPError异常
r.encoding=r.apparent_encoding
return r.text
except:
return"产生异常"
if __name__=="__main__":
url="https://www.baidu.com/"
print(getHTMLText(url))
其中,r.raise_for_status()代码行可以有效的判断访问链接状态
运行结果
当忘记输入"http://"的错误下
上一篇: rails3中使用delayed_job异步发送邮件的方法
下一篇: Python 爬虫基础(1)