文章目录

  • urllib包
    • 介绍
    • urllib.request模块
    • urllib.error 模块
    • urllib.parse模块
    • 构建流程

urllib包

介绍

request:主要负责构造和发起网络请求,定义了适用于在各种复杂情况下打开 URL (主要为 HTTP) 的函数和类
error:处理异常
parse:解析各种数据格式
robotparser:解析robots.txt文件

urllib.request模块

url:表示进行操作的URL地址
data:要发送到服务器的数据
timeout:设置网站的访问超时时间

urllib.request.urlopen(url,data=None,[timeout, ]*,cafile=None,capath=None,cadefault=False,context=None)
# 使用urlopen()方法在百度搜索关键词中得第一页连接
from urllib.request import urlopen  #导入python的内置模块
from urllib.parse import urlencode  #导入python的内置模块
import  re
##wd=input(输入一个要搜索的关键字:’)
wd='www.toppr.net'  #初始化变量wd
wd=urlencode({'wd':wd})
url='http://www.baidu.com/s?'+wd
page=urlopen(url).read()
#定义变量content,对网页进行编码处理,并实现特殊字符处理
content=(page.decode('utf-8')).replace("\n","").replace("\t","")
title=re.findall(r'<h3 class="t".*?h3>',content)
#正则表达式处理
title=[item[item.find('href =')+6:item.find('target=')] for item in title]
title=[item.replace('',").replace("",") for item in title]
for item in title:   #遍历titleprint(item)

urllib.error 模块

在urllib中主要设置了两个异常,一个是URLError,一个是HTTPError,HTTPError是URLError的子类。

HTTPError还包含了三个属性:

code:请求的状态码
reason:错误的原因
headers:响应的报头

from urllib.error import HTTPError
try:request.urlopen('https://www.baidu.com')
except HTTPError as e:print(e.code)

urllib.parse模块

data参数需要用urllib.parse模块对其进行数据格式处理。

urllib.parse.quote(url):(URL编码处理)主要对URL中的非ASCII码编码处理

urllib.parse.unquote(url):(URL解码处理)URL上的特殊字符还原

urllib.parse.urlencode:对请求数据data进行格式转换

构建流程

from bs4 import BeautifulSoup  #网页解析,获取数据
import re  #正则表达式,进行文字匹配
import urllib.request,urllib.error  #定制URL,获取网页数据
import xlwt  #进行excel操作
import sqlite3 #进行SQLlite数据库操作
def main():baseurl="https://movie.douban.com/top250?start="
# 1爬取数据datalist=getData(baseurl)savepath=".\\豆瓣电影TOP250.xls"saveData(savepath)# 爬取网页
def getData(baseurl):datalist=[]# 2解析数据return datalist
# 3保存数据def saveData(savepath):if __name__=="__main__":#当程序执行时print("***")
import urllib.request# 获取get请求
from socket import timeout
from urllib import requestfrom networkx.release import urlresponce=urllib.request.urlopen("https://www.baidu.com")
print(responce.read().decode('utf-8'))#将读取的文件用UTF-8来解析# 获取一个post请求
responce=urllib.request.urlopen("http://httpbin.org/#/HTTP_Methods/post_post")
print(responce.read().decode('utf-8'))

python基础--urllib相关推荐

  1. 爬虫学习笔记-python基础+urllib

    目录 一.Python基础知识回顾 1.pip下载源 2.pycharm设置作者信息 3.python注释 4.变量 4.1 类型转换 4.2 字符串函数 find函数 startswith和ends ...

  2. 数据分析与爬虫实战视频——学习笔记(一)(python基础、urllib、超时设置、自动模拟HTTP请求、异常处理、浏览器伪装、代理服务器、新闻爬虫、淘宝登陆和图片爬取)

    未经允许,请勿转载. 连载未完成状态 网址: [数据挖掘]2019年最新python3 数据分析与爬虫实战_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili https://www.bilibili ...

  3. python 基础知识点整理 和详细应用

    Python教程 Python是一种简单易学,功能强大的编程语言.它包含了高效的高级数据结构和简单而有效的方法,面向对象编程.Python优雅的语法,动态类型,以及它天然的解释能力,使其成为理想的语言 ...

  4. python基础知识理解

    一.概述 看了一天的python基础语法,基本对python语法有了一个大概的了解(其实之前断断续续也看过python),学习网址:Python 基础教程.因为之前我学过C++,因此在学习python ...

  5. 九. Python基础(9)--命名空间, 作用域

    九. Python基础(9)--命名空间, 作用域 1 ● !a 与 not a 注意, C/C++可以用if !a表示if a == 0, 但是Python中只能用if not a来表示同样的意义. ...

  6. python基础教程第三版豆瓣-1024,程序媛/猿请查收!

    点击上方蓝字关注我们 节专享福利:1024程序员 本期活动,不仅有赠书福利,且有购书福利,图灵公司联合当当网特意为{印象python}读者们申请了一波购书福利.感兴趣的读者朋友,请下拉至文末,领取福利 ...

  7. 学python爬虫需要什么基础-学爬虫,需要掌握哪些Python基础?

    入手爬虫确实不要求你精通Python编程,但基础知识还是不能忽视的,那么我们需要哪些Python基础呢? 首先我们先来看看一个最简单的爬虫流程: 第一步要确定爬取页面的链接,由于我们通常爬取的内容不止 ...

  8. python开发需要掌握哪些知识-Python基础进阶需要掌握哪些知识点?

    Python基础进阶需要掌握哪些知识点?Python将是每个程序员的标配,有编程基础再掌握Python语言对于日后的升职加薪更有利.Python语言简洁利于理解,语法上相对容易能够让开发者更专注于业务 ...

  9. python基础知识整理-python爬虫基础知识点整理

    首先爬虫是什么? 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本. 根据我的经验,要学习Python爬虫 ...

最新文章

  1. Microbiome:芝麻菜中肠杆菌科主导核心微生物组并贡献抗生素抗性组
  2. 使用Apache Commons Configuration读取配置信息
  3. python数据比例_#python# #数据分析# 性别比例分析
  4. php mysql update 返回_php mysql_query增删改查(update delete insert)返回值类型
  5. pip 另一种安装方法:python setup.py install
  6. Tensorflow实现多元线性回归
  7. 编写delegate(明天补充)
  8. 日志服务(原SLS)新功能发布(4)-- 使用OSS进行日志存储与分析
  9. python顺序查找算法解释_顺序查找算法详解(包含C语言实现代码)
  10. 线性代数知识荟萃(4)——矩阵相抵
  11. 浏览器关闭百度右侧的图片推荐---简洁就是美
  12. 在Spring环境下存取properties文件中的数值
  13. 基于神经网络和相关性分析的数学建模思路分享
  14. 离散数学 | 数理逻辑
  15. android pad的屏幕纯多少,16:9比例10.1寸屏幕,Galaxy Tab S4可以说是一部好的安卓平板...
  16. GTC 2020:开发者谈NS版《巫师3》移植
  17. 计算机数据存储原理 以及 进制
  18. 烟雾检测电路c语言程序,基于51单片机火灾报警器系统烟雾检测温度检测设计(原理图+程序仿真+论文)...
  19. php秒表计时器,JS实现可暂停秒表计时器的效果(图文详解)
  20. 7、TM4单片机学习之串口功能

热门文章

  1. 常用数据结构讲解与案例分析
  2. 【C语言】一些简单编译错误或警告
  3. java类安卓app 简介_android.app.Activity 的介绍
  4. 高频开关电源原理_程控开关电源的工作原理
  5. C++ 获取当前时间的年,月,日,以及时分秒
  6. Java 遍历map
  7. Kotlin implements 的实现
  8. 从0开始搭建坚不可摧的Web系统主流架构
  9. Go 学习笔记(2)— 安装目录、工作区、源码文件和标准命令
  10. iter迭代器的应用