Python urllib 根据网址下载内容

urllib网址爬虫下载文件

可以导入头文件urllib.request和urllib.parse

import urllib.request as urlRequest
import urllib.parse as urlParse

对于GET请求方式的网址下载代码:

url = "http://www.baidu.com" #一个例子网址
# 打开url地址
x = urlRequest.urlopen(url)
# 获得源
sourceCode = x.read()

 对于POST请求方式的网址下载代码:

url = "https://www.baidu.com"
values = {"q": "python if"} 
# 解码url包含的值字段
values = urlParse.urlencode(values)
# 将解码的值格式化为  UTF-8 格式
values = values.encode("UTF-8")
# 根据字段值,创建一个目标url新连接
targetUrl = urlRequest.Request(url, values)
# 打开url连接
x  = urlRequest.urlopen(targetUrl)
# 获得源
sourceCode = x.read()

对于GET请求(403禁止请求)的网址下载:

url = "https://www.baidu.com"
# 假设win10系统下,Chrome浏览器,可F12查看
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36"}
req = urlRequest.Request(url, headers = headers)
# 打开Url
x = urlRequest.urlopen(req)
# 获得源
sourceCode = x.read()

Win10系统,Chrome浏览器如何查找headers

  • 1.在网页任意地方右击选择审查元素或者按下 shift+ctrl+c, 打开chrome自带的调试工具;
  • 2.选择network标签, 刷新网页(在打开调试工具的情况下刷新);
  • 3.刷新后在左边找到该网页url,点击 后右边选择headers,就可以看到当前网页的http头了;

对于POST请求(403禁止请求)的网址下载:

url = "https://www.baidu.com"
values = {"q": "python urllib"}
# 假设win10系统,Chrome 浏览器
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36"}
# 解码url的字段值
values = urlParse.urlencode(values)
# 将解码值转为UTF-8格式
values = values.encode("UTF-8")
# 创建一个目标url
targetUrl = urlRequest.Request(url = url, data = values, headers = headers)
# 打开目标url
x  = urlRequest.urlopen(targetUrl)
# 获得源
sourceCode = x.read()
发布了147 篇原创文章 · 获赞 146 · 访问量 77万+

猜你喜欢

转载自blog.csdn.net/miao0967020148/article/details/102670814