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

Python爬虫:urllib库的基本使用

时间:2020-01-24 09:31:58      阅读:133      评论:0      收藏:0      [点我收藏+]

标签:enc   zha   ascii   UNC   top   decode   zhang   nta   urlencode   

Python爬虫:urllib库的基本使用

请求网址获取网页代码

  1. import urllib.request 

  2. url = "http://www.baidu.com" 

  3. response = urllib.request.urlopen(url) 

  4. data = response.read() 

  5. # print(data) 

  6. # 将文件获取的内容转换成字符串 

  7. str_data = data.decode("utf-8") 

  8. print(str_data) 

  9. # 将结果保存到文件中 

  10. with open("baidu.html", "w", encoding="utf-8") as f: 

  11. f.write(str_data) 

get带参数请求

  1. import urllib.request 

  2.  

  3. def get_method_params(wd): 

  4. url = "http://www.baidu.com/s?wd=" 

  5. # 拼接字符串 

  6. final_url = url + wd 

  7. # 发送网络请求 

  8. response = urllib.request.urlopen(final_url) 

  9. print(response.read().decode("utf-8")) 

  10.  

  11. get_method_params("美女") 

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

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

  1. import urllib.request 

  2. import urllib.parse 

  3. import string 

  4.  

  5. def get_method_params(wd): 

  6. url = "http://www.baidu.com/s?wd=" 

  7. # 拼接字符串 

  8. final_url = url + wd 

  9. # 将包含汉字的网址进行转义 

  10. encode_new_url = urllib.parse.quote(final_url, safe=string.printable) 

  11. # 发送网络请求 

  12. response = urllib.request.urlopen(encode_new_url) 

  13. print(response.read().decode("utf-8")) 

  14.  

  15. get_method_params("美女") 

使用字典拼接参数

  1. import urllib.request 

  2. import urllib.parse 

  3. import string 

  4.  

  5. def get_params(): 

  6. url = "http://www.baidu.com/s?w" 

  7.  

  8. params = { 

  9. "wd": "美女", 

  10. "key": "zhang", 

  11. "value": "san" 

  12. } 

  13.  

  14. str_params = urllib.parse.urlencode(params) 

  15. print(str_params) 

  16.  

  17. final_url = url + str_params 

  18. # 将带有中文的url转义 

  19. encode_url = urllib.parse.quote(final_url, safe=string.printable) 

  20.  

  21. response = urllib.request.urlopen(encode_url) 

  22. data = response.read().decode("utf-8") 

  23. print(data) 

  24.  

  25. get_params() 

Python爬虫:urllib库的基本使用

标签:enc   zha   ascii   UNC   top   decode   zhang   nta   urlencode   

原文地址:https://www.cnblogs.com/wbytts/p/12231738.html

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