iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python 爬虫 urllib模块:p
  • 832
分享到

Python 爬虫 urllib模块:p

爬虫模块Python 2023-01-31 01:01:39 832人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

本程序以爬取 'Http://httpbin.org/post' 为例格式:  导入urllib.request  导入urllib.parse  数据编码处理,再设为utf-8编码:  bytes(urllib.parse.urlenco

本程序以爬取 'Http://httpbin.org/post' 为例

格式:

  导入urllib.request

  导入urllib.parse

  数据编码处理,再设为utf-8编码:  bytes(urllib.parse.urlencode({'Word': 'hello'}), encoding = 'utf-8')

  打开爬取的网页: response = urllib.request.urlopen('网址', data = data)

  读取网页代码: html = response.read()

  打印:

      1.不decode 

      print(html) #爬取的网页代码会不分行,没有空格显示,很难看

      2.decode

      print(html.decode()) #爬取的网页代码会分行,像写规范的代码一样,看起来很舒服

  查询请求结果:

      a. response.status # 返回 200:请求成功  404:网页找不到,请求失败

      b. response.getcode() # 返回 200:请求成功  404:网页找不到,请求失败



1.不decode的程序如下:

import urllib.request
import urllib.parsse

data = bytes(urllib.parse.urlencode({'word': 'hello'}), encoding = 'utf-8')
response = urllib.request.urlopen(' data = data )
html = response.read()

print(html)
print("------------------------------------------------------------------")
print("------------------------------------------------------------------")
print(response.status)
print(response.getcode())


运行结果:

blob.png


2.带decode的程序如下:

import urllib.request
import urllib.parsse

data = bytes(urllib.parse.urlencode({'word': 'hello'}), encoding = 'utf-8')
response = urllib.request.urlopen(' data = data )
html = response.read()

print(html.decode())
print("------------------------------------------------------------------")
print("------------------------------------------------------------------")
print(response.status)
print(response.getcode())


运行结果:

{
  "args": {}, 
  "data": "", 
  "files": {}, 
  "fORM": {
    "word": "hello"
  }, 
  "headers": {
    "Accept-Encoding": "identity", 
    "Connection": "close", 
    "Content-Length": "10", 
    "Content-Type": "application/x-www-form-urlencoded", 
    "Host": "httpbin.org", 
    "User-Agent": "python-urllib/3.4"
  }, 
  "JSON": null, 
  "origin": "106.14.17.222", 
  "url": "http://httpbin.org/post"
}

------------------------------------------------------------------
------------------------------------------------------------------
200
200


为什么要用bytes转换?

因为

data = urllib.parse.urlencode({'word': 'hello'}) ##没有用bytes
response = urllib.request.urlopen('http://httpbin.org/post', data = data )
html = response.read()

错误提示:

Traceback (most recent call last):
  File "/usercode/file.py", line 15, in <module>
    response = urllib.request.urlopen('http://httpbin.org/post', data = data )
  File "/usr/lib/python3.4/urllib/request.py", line 153, in urlopen
    return opener.open(url, data, timeout)
  File "/usr/lib/Python3.4/urllib/request.py", line 453, in open
    req = meth(req)
  File "/usr/lib/python3.4/urllib/request.py", line 1104, in do_request_
    raise TypeError(msg)
TypeError: POST data should be bytes or an iterable of bytes. It cannot be of type str.

由此可见,post方式需要将请求内容用二进制编码。

class bytes([source[, encoding[, errors]]])

    Return a new “bytes” object, which is an immutable sequence of integers in the range 0 <= x < 256bytes is an immutable version of bytearray– it has the same non-mutating methods and the same indexing and slicing behavior.

Accordingly, constructor arguments are interpreted as for bytearray().


--结束END--

本文标题: Python 爬虫 urllib模块:p

本文链接: https://www.lsjlt.com/news/183194.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python 爬虫 urllib模块:p
    本程序以爬取 'http://httpbin.org/post' 为例格式:  导入urllib.request  导入urllib.parse  数据编码处理,再设为utf-8编码:  bytes(urllib.parse.urlenco...
    99+
    2023-01-31
    爬虫 模块 Python
  • python爬虫urllib中的异常模块处理
    目录urllib中的异常处理url的组成部分URLErrorHTTPError简介Urllib.error 模块异常处理urllib中的异常处理 在我们写爬虫程序时,若出现url中的...
    99+
    2024-04-02
  • Python中urllib爬虫、request模块和parse模块的示例分析
    小编给大家分享一下Python中urllib爬虫、request模块和parse模块的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!urlliburlli...
    99+
    2023-06-14
  • python爬虫之请求模块urllib的基本使用
    目录前言urllib的子模块HttpResponse常用方法与属性获取信息urlli.parse的使用(一般用于处理带中文的url)✅爬取baidu官网HTML源代码✅添加请求头信息...
    99+
    2024-04-02
  • python爬虫urllib中的异常模块如何处理
    这篇文章主要介绍“python爬虫urllib中的异常模块如何处理”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“python爬虫urllib中的异常模块如何处理”文章能帮助大家解决问题。urllib...
    99+
    2023-06-30
  • python爬虫urllib库中parse模块urlparse的使用方法
    这篇文章主要介绍了python爬虫urllib库中parse模块urlparse的使用方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。在python爬虫urllib库中,u...
    99+
    2023-06-14
  • python爬虫实例(urllib&Be
    python 2.7.6urllib:发送报文并得到responseBeautifulSoup:解析报文的body(html)#encoding=UTF-8 from bs4 import BeautifulSoup from urllib...
    99+
    2023-01-31
    爬虫 实例 python
  • python爬虫之selenium模块
    目录一、什么是Selenium二、selenium安装1、PhantomJS: 无可视化界面的浏览器(无头浏览器)2、下载浏览器驱动三、selenium基本使用1、声明浏览器对象He...
    99+
    2024-04-02
  • python爬虫常用模块
    python标准库之urllib模块涉及到网络这块,必不可少的模式就是urllib.request了,顾名思义这个模块主要负责打开URL和HTTP协议之类的urllib最简单的应用就是urllib.request.urlopen(url, ...
    99+
    2023-01-30
    爬虫 模块 常用
  • Python爬虫之urllib库详解
    目录一、说明:二、urllib四个模块组成:三、urllib.request1、urlopen函数2、response 响应类型3、Request对象 4、高级请求方式四、urlli...
    99+
    2024-04-02
  • python爬虫selenium模块详解
    目录selenium模块 selenium基本概念基本使用基于浏览器自动化的操作selenium处理iframe:selenium模拟登陆QQ空间无头浏览器和规避检测selenium...
    99+
    2024-04-02
  • Python爬虫中urllib库怎么用
    这篇文章给大家分享的是有关Python爬虫中urllib库怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、说明:urllib库是python内置的一个http请求库,requests库就是基于该库开发出来...
    99+
    2023-06-29
  • Python爬虫技术栈 | urllib库&&urllib3库
    ❤️urllib库详解❤️ 每篇前言: 第一部分:urllib库 一、request模块:发送请求 1.urlopen() ...
    99+
    2023-09-10
    python 爬虫 urllib库urllib3库
  • python3 urllib 爬虫乱码问
    #!/usr/bin/env python # -*- coding: utf-8 -*- from bs4 import BeautifulSoup from urllib.request import urlopen ba...
    99+
    2023-01-31
    爬虫 乱码 urllib
  • Python爬虫使用lxml模块爬取豆瓣
    上次使用了BeautifulSoup库爬取电影排行榜,爬取相对来说有点麻烦,爬取的速度也较慢。本次使用的lxml库,我个人是最喜欢的,爬取的语法很简单,爬取速度也快。 本次爬取的豆瓣书籍排行榜的首页地址是: https://www.dou...
    99+
    2023-01-31
    爬虫 豆瓣 模块
  • Python爬虫之Urllib库的基本使
    # get请求 import urllib.request response = urllib.request.urlopen("http://www.baidu.com") print(response.read().decode('...
    99+
    2023-01-30
    爬虫 Python Urllib
  • Python爬虫(十六)_JSON模块与JsonPath
    数据提取之JSON与JsonPATH JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它是的人们很容易的进行阅读和编写。同时也方便了机器进行解析和生成。适用于进行数据交互的场景,比如网站前台与后...
    99+
    2023-08-30
    python 爬虫 json 正则表达式 开发语言
  • Python爬虫urllib和requests的区别详解
    我们讲了requests的用法以及利用requests简单爬取、保存网页的方法,这节课我们主要讲urllib和requests的区别。 1、获取网页数据 第一步,引入模块。 两者引入...
    99+
    2024-04-02
  • python爬虫之selenium模块怎么使用
    这篇文章主要介绍了python爬虫之selenium模块怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇python爬虫之selenium模块怎么使用文章都会有所收获,下面我们一起来看看吧。一、什么是Se...
    99+
    2023-06-30
  • python爬虫之request模块深入讲解
    目录一、概述二、安装和基本步骤使用三、http知识复习四、request请求模块的方法使用五,params和payload参数使用说明总结一、概述 在后期渗透测试中,经常会遇到需要向...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作