Python爬虫requests请求库

requests:pip install  request 安装

实例:

import requests
url = 'http://www.baidu.com'
response = requests.get(url=url)
print(type(response)) #请求类型
print(response.status_code) #网站响应状态码
print(type(response.text)) #网站内容类型
print(response.text) #网站内容
print(response.cookies) #网站cookies

'''
requests.post()
requests.get()
requests.put()
requests.delete()
requests.head()
requests.options() #requests可以直接实现各种请求,比urllib方便很多

'''


基本实例
构建一个最简单的get请求,链接为 http://httpbin.org/get
import requests
r = requests.get('http://httpbin.org/get')
print(r.text)
传参
import requests
data = {
  'name':'germey',
  'age':'18'

r = requests.get('http://httpbin.org/get',dat=data)
print(r.text)

转换数据类型
import requests
r = requests.get('http://httpbin.org/get')
print(type(r.text)) #打印出类型是json格式的字符串
pritn(r.json) #将返回结果是json格式的字符串转化为字典,如果返回结果不是json,便会出现解析错误,抛出json.decoder.JSONDecodeError异常
print(type(r.json())) #打印出类型是字典

抓取网页
import requests

headers = {
  'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'
}


r.requests.get(url='www.zhihu.come/explpre',headers=headers)
#这里加入headers请求头,其中包括user-agent字段信息,也就是浏览器标识信息,如果不加,知乎会禁止抓取

抓取二进制数据
#图片、视频、音频这些文件本质是由二进制码组成,犹豫有特定的保存格式和对应的解析方式,我们才可以看到这些 形形色色的媒体,如果抓取他们,就要拿到他们的二进制码
import requests
r = requests.get(url='https://github.com/favicon.ico')
print(r.text) #text结果出现乱码
print(r.content) #结果前带个B,代表是bytes类型数据,由于图片是二进制数据,打印时候转化为str类型,图片直接存为字符串,当然会出现乱码

#将提取的图片保存下来
with open('favicon.ico','wb') as f:
  f.write(r.content)
#这里用了open方法,第一个参数是文件名称,第二个参数代表以二进制写的形式打开,可以向文件写入二进制数据



POST请求
import requests
data = {'name':'germey','age':'22'}
r = requests.post(url='http://httpbin.org/post',data=data)
print(r.text) #可以发现获得返回结果,其中form部分就是提交的数据

响应
import requests

r = requests.get(url='http://www.jianshu.com')
print(type(r.status_code),r.status_code) #响应状态码类型以及状态码
print(type(r.headers),r.headers)       #请求头的类型以及打印请求头
print(type(r.cookies),r.cookies)       #cookies的类型以及打印cookies
print(type(r.url),r.url) #url类型以及打印url
print(type(r.history),r.history)       #history
 







猜你喜欢

转载自www.cnblogs.com/qiblog/p/10289690.html