数据获取
使用urllib发送请求
request.urlopen()
from urllib import request
url = "http://ww.baidu.com"
res = request.urlopen(url) #获取响应
print(res.info()) #响应头
print(res.getcode()) #状态码 2xx(正常), 3xx(重定向),4xx(访问的资源有问题),5xx(服务器内部错误)
print(res.geturl()) #返回响应地址
html = res.read()
html = html.decode("utf-8") #解码
print(html)
这种情况很简单,大多是行不通,一般的网站都有反爬机制,所以最好需要加上user-agent:
from urllib import request
url = "http://ww.dianping.com"
#添加header,这是最基本的反爬措施解决的方案
header = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.190 Safari/537.36"
}
req = request.Request(url, headers = header)
res = request.urlopen(req) #获取响应
print(res.info()) #响应头
print(res.getcode()) #状态码 2xx(正常), 3xx(重定向),4xx(访问的资源有问题),5xx(服务器内部错误)
print(res.geturl()) #返回响应地址
html = res.read()
html = html.decode("utf-8")
print(html)