【urllib.request的基本用法】

本文介绍了Python的urllib.request模块在爬虫工作中的基本用法,包括发送GET请求、处理数据类型转换、URL汉字转译及字典参数的处理。还提供了代码示例,展示了如何进行GET请求和字符串、字典形式的URL拼接。
摘要由CSDN通过智能技术生成

一、爬虫的工作原理
1.确认你抓取的目标的url是哪一个
2.使用python代码发送请求获取数据
3.解析获取到的数据(精确数据)
①找到新的目标(url)②回到第一步(自动化)
4.数据持久化
二、注意问题
1.urllib.request ——url的request模块可以非常方便的抓取url内容,即发送一个get请求到指定的页面,然后返回HTTP的响应。
2.python爬取的数据类型可能是字符串str、二进制bytes…
①如果爬取回来的数据是bytes类型,但如果写入的时候需要字符串类型 ,则需要对其进行解码:decode(“utf-8”)
②如果爬取回来的数据是str类型,但如果写入的时候需要bytes类型,则需要对其进行编码: encode(“utf-8”)
3.urllib.parse、string——该两个库是用于拼接url时汉字部分转译
使用代码发送网络请求,如果网址内包含了汉字(例如http:\www.baidu.com+搜索关键字),使用代码发送网络请求,会出现如下错误:
# UnicodeEncodeError: ‘ascii’ codec can’t encode characters
# in position 10-11: ordinal not in range(128)
因为Python是解释性语言,解析器只支持 ASCII 0-127,ASCII是没有汉字的,不支持中文,故需要将包含汉字的网址进行转译。
使用“urllib.parse.quote(final_url,safe=“string.printable”)
4.字典传参用到“urllib.request.urlencode”,将字典转换为字符串类型;同时字典中的冒号‘:’自动转换为“=”
5.使用Post请求时,代码有如下不同:
urllib.request.openurl(url,data=服务器接收的数据)
二、代码1

import urllib.request #url的request模块可以非常方便的抓取url内容,即发送一个get请求到指定的页面,然后返回HTTP的响应
def load_data():
    url = 'http://www.baidu.com/'
    #get的请求
    #http的请求
    # response:http响应的对象
    response = urllib.request.urlopen(url)
    print(response)#返回: '<http.client.HTTPResponse object at 0x0000000003976CC0>'
    # 读取内容 【bytes类型】
    data = response.read()
    print(data)#返回了HTML的代码如下,第一个字母b代表是二进制;有的网站返回的可能是txt、二进制、字符串。
#b'<html>\r\n<head>\r\n\t<script>\r\n\t\tlocation.replace(l
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值