urllib实现请求发送(python3)

urllib实现请求发送

        • 一、传入url:urllib.request.urlopen
        • 二、构造请求:urllib.request.Request

一、传入url:urllib.request.urlopen

import urllib.request
response = urllib.request.urlopen("https://www.baidu.com")
print(response.read) # >
print(response.read()) # b'\r\n\r\n\t\r\n\r\n\r\n\t\r\n\r\n'

二、构造请求:urllib.request.Request

  1. 构造简单请求
import requests
import urllib.request
url = "https://www.baidu.com"
# 构造headers
headers = {"User-Agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36"}
# 构造请求
request = urllib.request.Request(url,headers=headers)
# 发送请求
response = urllib.request.urlopen(request)
print(response.read()) # b'\n\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\r\n        \r\n\t\t\t        \r\n\t\r\n\t\t\t        \r\n\t\r\n\t\t\t        \r\n\t\r\n\t\t\t        \r\n\t\t\t    \r\n\r\n\t\r\n        \r\n\t\t\t        \r\n\t\r\n\t\t\t        \r\n\t\r\n\t\t\t        \r\n\t\r\n\t\t\t        \r\n\t\t\t    \r\n\r\n\r\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n    \n    \n    \n\t\n    \n    \n    \n    \n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n    \n    \xe7\x99\xbe\xe5\xba\xa6\xe4\xb8\x80\xe4\xb8\x8b\xef\xbc\x8c\xe4\xbd\xa0\xe5\xb0\xb1\xe7\x9f\xa5\xe9\x81\x93\n    \n\n\n\n\n\n\n\n\n\n    \n\n\n\n\n    \n\n\n\n\t\n    \n    
\n \n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\n\n\n\r\n'
  1. 发送post请求
    data必须要encode进行转码之后才能传入
import urllib.request
import urllib.parse

url = "http://www.renren.com/PLogin.do"
# 构造headers
headers = {"User-Agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36"}
# 构造请求数据字典
data = {"email":"[email protected]", "password":"password"}
# 对请求数据字典进行编码,转化为bytes类型
data = urllib.parse.urlencode(data).encode('utf-8')
# 构造请求
request = urllib.request.Request(url,data = data,headers=headers)
# 发送请求
response = urllib.request.urlopen(request)
# 获取响应
print(response.read())

response.read()获取的是bytes类型,若要获取字符串类型则需要再进行解码,执行:

response.read().decode()

你可能感兴趣的:(爬虫)