我的编程空间,编程开发者的网络收藏夹
学习永远不晚

python如何获取网络数据

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

python如何获取网络数据

Retrieving Data over HTTP

Python 内置了 sockets 可以实现与网络连接并通过 Python 提取数据的功能。

socket 是可以提供双向连接的,我们可以对同一个 socket 进行读写操作。比方说,A 对 socket 写入信息,并且将其发送给 socket 连接另一端 B;那么 B 读取 socket 的内容就可以得到 A 的信息。但是这样会有一个问题,比如说, A端并没有发送任何信息,而 B 端一直在尝试读取 socket 的内容,那么 A 端和 B 端只能陷入漫长的等待。所以就引入了通信协议。协议通过规定谁先发送,谁后响应等来规避上述的问题。


import socket
mysock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
mysock.connect(('fakeserver.com', 80)) # connect to server
cmd = 'GET http://fakeserver.com/fake.txt HTTP/1.0\r\n\r\n'.encode()
# send GET command followed by a blank line
mysock.send(cmd) 

while True: # receive data and print out
    data = mysock.recv(512)
    if (len(data) < 1):
        break
    print(data.decode())
mysock.close()

Retrieving Data with urllib

利用 socket 我们可以与网站服务器,邮件服务器等建立连接。但是在建立连接之前,我们需要查询文档了解通信协议,然后根据协议编写程序。所以相较于 socket 这种黑魔法,我们可以利用更为简单的 Python Package。

利用 urllib.urlopen() 打开网页后,我们就可以读取数据,像读取本地文件一样。


import urllib.request

fhand = urllib.request.urlopen('http://fakeserver.com/fake.txt')
for line in fhand:
    #convert UTF-8 to unicode string and print out
    print(line.decode().strip()) 

因为 urllib 使用简洁方便,所以也常用与网络爬虫。网络爬虫除了要网页读取数据以外还需要在 HTML 格式中解释出可用数据,所以除了 urllib 还有另一常用利器就是 BeautifulSoup。


import urllib.request, urllib.parse, urllib.error
from bs4 import BeautifulSoup
import ssl

# Ignore SSL certificate errors
ctx = ssl.create_default_context()
ctx.check_hostname = False
ctx.verify_mode = ssl.CERT_NONE

html = urllib.request.urlopen('http://fakeserver.com/fake.html', context=ctx).read()
soup = BeautifulSoup(html, 'html.parser')
tags = soup('a')
# Retrieve all of the anchor tags
for tag in tags:
    print(tag.get('href', None))

Retrieving Data from XML

在网络交换数据,我们常用的格式有两种,一是 XML; 二是 JSON。

XML 长得就像是 HTML 的近亲,可以看做是树的一种。利用 Python Package ElementTree 我们可以将 XML 文件转换为树,这样可以方便我们后续提取有效的数据。


import xml.etree.ElementTree as ET
data =  '''
            <person>
            <name>Jack</name>
            <phone>+123456789</phone>
            <email office="yes"/>
            </person> 
        '''
tree = ET.fromstring(data) # convert xml into a tree
print('Name:', tree.find('name').text)
print('Attr:', tree.find('email').get('office'))

Retrieving Data from JSON

JSON 结构相较于 XML 来说更为简单,所以他的功能就没有那么强大。但是 JSON 有一个优势就是可以直接映射到 Python 的 dictionaries 和 lists 中,非常实用。

我们可以直接利用 Python Package json 来解释 JSON。


import json
data =  '''
            {
                "name" : "Jack",
                "phone" : {
                    "type" : "intl",
                    "number" : "+123456789"
                },
                "email" : {
                    "office" : "yes"
                }
            }
        '''
info = json.loads(data)  # convert json into a dictianary
print('Name:', info['name'])
print('Attr:', info['email']['office'])

作者:Yuki
出处:https://www.cnblogs.com/yukiwu/

以上就是python如何获取网络数据的详细内容,更多关于python获取网络数据的资料请关注编程网其它相关文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

python如何获取网络数据

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

下载Word文档

猜你喜欢

Python网络爬虫之如何获取网络数据

本篇内容介绍了“Python网络爬虫之如何获取网络数据”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!使用 Python 获取网络数据使用 P
2023-07-06

Python网络爬虫之获取网络数据

本文介绍了Python中用于获取网络数据的重要工具之一——Requests库,详细讲解了Requests库的基本使用方法、请求方法、请求头、请求参数、Cookies、Session等内容,并结合实例代码展示了Requests库的应用场景
2023-05-18

python如何获取网页数据

Python获取网页数据的常用方法有以下几种:1. 使用urllib库:urllib是Python内置的标准库,提供了一系列用于处理URL的函数和类。使用urllib库可以发送HTTP请求,获取网页数据。具体的步骤如下:```pythoni
2023-09-07

python获取网络数据的方法

本篇内容主要讲解“python获取网络数据的方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python获取网络数据的方法”吧!Retrieving Data over HTTPPython
2023-06-14

python如何读取网络端口数据

Python提供了多种方法来读取网络端口数据,以下是其中一种常见的方法:```pythonimport socket# 创建一个TCP socket对象s = socket.socket(socket.AF_INET, socket.SOC
2023-08-25

在现代 JavaScript 中如何安全获取网络数据

我个人建议使用现成的包装器来实现Fetch,因为它们可能非常小(1-2kb),通常有更多的文档、测试和社区,而且已经被其他人证明和验证了是一个有效的解决方案。

python爬虫如何获取数据

使用Python爬虫获取数据可以分为以下几个步骤:导入所需的库:通常情况下,使用requests库发送HTTP请求获取网页内容,使用beautifulsoup4库解析网页内容。import requestsfrom bs4 import
python爬虫如何获取数据
2024-02-29

python如何获取商品数据

要获取商品数据,你可以使用Python中的各种库和模块来实现。以下是一些常用的方法:1. 使用网络爬虫:使用Python的库,如BeautifulSoup或Scrapy,可以从网页中提取商品数据。你可以通过解析HTML或使用API来获取数据
2023-08-23

如何在Python中进行网络数据抓取

如何在Python中进行网络数据抓取网络数据抓取是指从互联网上获取信息的过程,在Python中,有许多强大的库可以帮助我们实现这个目标。本文将介绍如何使用Python进行网络数据抓取,并提供具体的代码示例。安装必要的库在开始之前,我们需要安
2023-10-22

Android网络编程,调用API获取网络数据

实现步骤: 阅读API接口使用文档使用okhttp 获取网络数据使用 gson将json数据转为数据实体类安装GsonFormatPlus插件使用glide加载网络图片 build.gradle下导入相关依赖 //数据解析
Android网络编程,调用API获取网络数据
2023-12-23

Python数据获取如何实现图片数据提取

本篇内容主要讲解“Python数据获取如何实现图片数据提取”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python数据获取如何实现图片数据提取”吧!有很多功能…比如用户画像,客户
2023-06-30

Python Django如何获取URL中的数据

小编给大家分享一下Python Django如何获取URL中的数据,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!Django获取URL中的数据URL中的参数一般有两种形式。如下所示:1. https://zy010101.
2023-06-25

python如何爬取网站数据

Python爬取网站数据Python是一种适用于网站数据爬取的编程语言。它提供广泛的库,如requests、BeautifulSoup、Selenium、lxml和scrapy。爬取过程涉及发送请求、解析响应、提取数据和存储数据。Python爬虫灵活、高效、易于使用,但可能受限于反爬虫措施、数据结构化程度低以及道德和法律问题。最佳实践包括遵循网站条款、使用用户代理、限制频率、处理错误以及合乎道德地存储和使用数据。
python如何爬取网站数据
2024-04-12

redis如何获取数据

redis 提供以下获取数据的方式:get:获取指定键的值。mget:同时获取多个键的值。hget:获取哈希表中指定字段的值。hgetall:获取哈希表中所有字段的值。lindex:获取列表中指定索引处的元素。lrange:获取列表中指定范
redis如何获取数据
2024-04-20

Android网络编程之获取网络上的Json数据实例

为要获取网络上的Json所以需要服务器端提供的支持。 一、创建服务器端: 服务器端项目结构:服务器端运行效果图:第一步:创建业务所需的JavaBean代码如下: package com.jph.sj.model; import jav
2022-06-06

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录