码迷,mamicode.com
首页 > 编程语言 > 详细

Python爬虫:urllib库的基本使用

时间:2020-01-23 22:54:36      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:ascii码   port   转换   open   需要   htm   encoding   params   param   

请求网址获取网页代码

import urllib.request
url = "http://www.baidu.com"
response = urllib.request.urlopen(url)
data = response.read()
# print(data)
# 将文件获取的内容转换成字符串
str_data = data.decode("utf-8")
print(str_data)
# 将结果保存到文件中
with open("baidu.html", "w", encoding="utf-8") as f:
    f.write(str_data)

get带参数请求

import urllib.request

def get_method_params(wd):
    url = "http://www.baidu.com/s?wd="
    # 拼接字符串
    final_url = url + wd
    # 发送网络请求
    response = urllib.request.urlopen(final_url)
    print(response.read().decode("utf-8"))

get_method_params("美女")

直接这么写会报错:
技术图片

原因是,网址里面包含了汉字,但是ascii码是没有汉字的,需要转义一下:

import urllib.request
import urllib.parse
import string

def get_method_params(wd):
    url = "http://www.baidu.com/s?wd="
    # 拼接字符串
    final_url = url + wd
    # 将包含汉字的网址进行转义
    encode_new_url = urllib.parse.quote(final_url, safe=string.printable)
    # 发送网络请求
    response = urllib.request.urlopen(encode_new_url)
    print(response.read().decode("utf-8"))

get_method_params("美女")

Python爬虫:urllib库的基本使用

标签:ascii码   port   转换   open   需要   htm   encoding   params   param   

原文地址:https://www.cnblogs.com/wbyixx/p/12231527.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!