网络数据采集是指通过程序在互联网上自动采集数据,采集数据所用的程序也被称为网络爬虫(Web crawler)。本文主要是记录一些网上数据采集常用的模块及其简单的相关操作。

文章目录

  • ⚪urllib模块及其request子模块
  • ⚪requests模块
  • ⚪BeautifulSoup包
  • ⚪you-get包

⚪urllib模块及其request子模块

urllib是网络数据采集中不可缺少的模块,包含在Python标准库中。在Python3.x中,urllib模块有urllib.request、urllib.parse、urllib.error、urllib.robotparser四个子模块。
官网说明文档参考→https://docs.python.org/zh-cn/3/library/urllib.html

其中,urllib.request是最主要的模块,用于打开和访问URL上的数据,包含了urlopen()、urlretrieve等函数及Request等类。

网络数据采集首先是要通过URL向网络服务器发出请求,然后对返回的数据进行解析。

urllib.request模块中的urlopen函数用于打开HTTP、HTTPS、FTP协议的URL,接收返回的URL资源,语法如下:
urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None)
参数url可以是一个字符串(URL地址)或一个 Request 对象;参数data是在以post方式提交URL时使用;timeout是超时间设置;参数中以ca开头的都和身份验证有关,不太常用。
函数返回的是Response对象。Response对象是一个类文件对象,可以像文件对象一样进行操作,如read(),此外,Response对象还有其他几个方法,示例如下

'''request 获取网站基本信息'''
with request.urlopen('http://www.sohu.com') as f:  # 打开网络协议的URL,返回的是Response对象print(f.geturl(), "\n")  # 返回response的URL信息,常用于URL重定向print(f.info, "\n")  # 返回response的基本信息print(f.getcode(), "\n")  # 返回response的状态代码,(200表示成功返回网页,404表示请求的网页不存在,503表示服务器暂时不能用)data = f.read()  # 对response类文件对象进行读取print(data.decode('utf-8'))  # 对读取的信息解码输出

输出如下:

互联网上的数据文件可以通过URL向网络服务器发出请求,如果请求成功就可以下载数据。urllib.request模块中retrieve函数用于下载指定URL地址的文件,语法如下:
retrieve(url, filename-None, reporthook=None)
url是指定的URL地址;filename是保存的路径及文件名,若缺省则随机生成文件名并保存到temporary目录下;reporthook用于调用一个显示下载进度的函数。
示例如下:

'''网络数据文件下载,retrieve函数'''
# 下载网页的html文件
url = "http://baidu.com"
request.urlretrieve(url, "D:/tmp/baidu.html")
# 下载图片、视频等文件只要有找到对应网址,保存路径的文件后缀名写成对应的就行
url = "https://gimg3.baidu.com/***/*****.jpeg"
request.urlretrieve(url, "D:/tmp/baidup.jpg")

⚪requests模块

requests是一个用Python编写的第三方模块,擅长处理复杂的HTTP请求、cookie、header(响应头和请求头)等内容。
说明文档参考→(英文)https://docs.python-requests.org/en/master/
(中文)https://docs.python-requests.org/zh_CN/latest/user/quickstart.html

Python之网络数据采集入门常用模块初识相关推荐

  1. Python:网络爬虫入门

    Python:网络爬虫入门 这只是一个最最最基础版本的Python爬虫入门,代码是我两年前写的,最近两天没事翻出来再写(shui)一篇博客.就是爬取王者荣耀英雄的皮肤.然后备注也是写的十分的详细,所以 ...

  2. 第01章 网络数据采集入门

    序言 1. 内容介绍 本章详细介绍了网络数据采集基本流程,selenium 基本操作方法等内容. 2. 理论目标 了解网络数据采集基本流程 了解 selenium 基本操作方法 3. 实践目标 能掌握 ...

  3. python网络数据采集 第三版_(数据科学学习手札31)基于Python的网络数据采集(初级篇)...

    一.简介 在实际的业务中,我们手头的数据往往难以满足需求,这时我们就需要利用互联网上的资源来获取更多的补充数据,但是很多情况下,有价值的数据往往是没有提供源文件的直接下载渠道的(即所谓的API),这时 ...

  4. Python Socket网络编程(一)初识Socket和Socket初步使用

    目录 前言 网络编程 实质 IP地址和端口 数据传输协议 协议 Socket 概念 套接字 socket对象方法 初步使用 功能 源码 运行结果 结语 前言 本系列博客是笔者学习Python Sock ...

  5. Python学习-基础篇5 常用模块+类与对象(1)

     #random模块 1 import random2 3 print(random.random())#(0,1)----float 大于0且小于1之间的小数4 5 print(random.ran ...

  6. Python自动化运维之常用模块—logging

    在现实生活中,记录日志非常重要.银行转账时会有转账记录:如果有出现什么问题,人们可以通过日志数据来搞清楚到底发生了什么.     对于系统开发.调试以及运行,记录日志都是同样的重要.如果没有日志记录, ...

  7. python popen函数讲解_Python常用模块函数代码汇总解析

    一.文件和目录操作 创建.删除.修改.拼接.获取当前目录.遍历目录下的文件.获取文件大小.修改日期.判断文件是否存在等.略 二.日期和时间(内置模块:time.datatime.calendar) 1 ...

  8. Python自动化运维之常用模块—OS

    os模块的作用: os,语义为操作系统,所以肯定就是操作系统相关的功能了,可以处理文件和目录这些我们日常手动需要做的操作,就比如说:显示当前目录下所有文件/删除某个文件/获取文件大小-- 另外,os模 ...

  9. Python之网络编程(socketserver模块详解、链接认证)

    文章目录 多线程对多客户端 socketserver 分类(2种) 12个类的继承关系(原理) socketserver的实现效果 认证链接的合法性 加盐(hmac) 对暗号 socketserver ...

  10. python做cae库_python常用模块-OS模块

    importos__file__:指当前文件,带有路径的 D:/svn_auto3/test_case1/test1.py(注意这里的斜杠,和abspath的区别就是这里)#路径操作 >> ...

最新文章

  1. 列表控件ListCtrl的使用
  2. 深度技术揭秘 | 大促狂欢背后,如何有效评估并规划数据库计算资源?
  3. 【搜索/推荐排序】总结
  4. vrm华为_华为-笔记本电脑如何安装FusionCompute虚拟化平台?
  5. 许志安刘强东倪震:结构性中年危机下的男人们
  6. 管状合金电阻和片状合金电阻的区别_SAE 6118、高电阻合金际锻材
  7. 【Sigmoid】操作对象(对数据结果进行验证)
  8. 使用mat工具分析对比dump文件
  9. 一、css样式(内部样式,外部样式,行内样式)
  10. iphone5处理屏幕分辨率
  11. DDNS设置(自用)
  12. VMware虚拟机中安装的系统共享主机无线网络的方法
  13. java常用逻辑运算
  14. iOS中获取WiFi的SSID(CNCopySupportedInterfaces())
  15. 多态、虚函数举例(人与复读机)
  16. 编写C语言程序:输入一个n,计算从1到n的和
  17. imoo c1语言设置在哪里,不再被“辣眼睛”!imoo C1 护眼功能解析
  18. 摄像头在线测试_Leez学院| 面部检测 精准可靠 Leez P515 OpenCV工程测试
  19. 四、指针高级应用总结
  20. jdbc:mysql:///是什么

热门文章

  1. 【C语言】C语言实现泛型编程
  2. QNX系统开启telnet远程登录
  3. 韩立刚老师 《计算机网络》视频课程目录
  4. 条件数、奇异值与海森矩阵
  5. 工业视觉检测—制造过程中的缺陷和异常检测
  6. oracle ebs 采购入库,ORACLE EBS/ERP 采购库存模块分录
  7. sqlmap使用教程(sqli-labs1-10详解)
  8. 鸿蒙智慧屏安装apk,亲测华为智慧屏支持安装以下第三方软件,大家赶紧试试!...
  9. html如何改成花体英文字体,花体英文在线转换
  10. 自己开发的一套实用故障报修管理系统【分享推荐大家】