python入门网络请求与解析(代码片段)

白玉梁 白玉梁     2023-01-06     117

关键词:

安装网络请求模块:Requests

pip install requests

是否似曾相识?是否想起了nodejs?

简单测试:

先导入requests模块:

import requests

get请求:

response = requests.get("https://www.baidu.com")
print(response)

结果:

说明已经请求成功了,我们可以在编辑器中查看response中都有什么:

打印response.text:

这个就是百度首页内容,不过乱码了,别着急,加上这一步:

response = requests.get("https://www.baidu.com")
response.encoding = response.apparent_encoding
print(response.text)


OK!是不是灰常简单?

当然,requests不仅仅支持get,同样也支持post,put,delete等:

在具体使用不同请求方式时,同样也支持headler,param等等:

requests.get("https://www.baidu.com",headers=,params=)

这是网络请求框架必不可少的!

我们以360图片接口为例,进行分页请求:http://wallpaper.apc.360.cn/index.php?c=WallPaperAndroid&a=getAppsByCategory&cid=9&start=0&count=99

当然,我们可以直接通过get请求该链接,也可以通过post请求并传入参数:

params = 
    'c': 'WallPaperAndroid',
    'a': 'getAppsByCategory',
    'cid': 9,
    'start': 0,
    'count': 10

response = requests.post("http://wallpaper.apc.360.cn/index.php", params=params)
print(response.text)

请求结果(json格式):

解析json:

json_data = json.loads(response.text)
print('errno=%s,errmsg=%s' % (json_data['errno'], json_data['errmsg']))
list = json_data['data']
print("count=" + str(len(list)))

结果:

注意:print打印log时,字符串后面使用+拼接参数时只能时字符串类型,所以需要用str()将int类型转为string类型!

好了,json格式的解析完了,如果我想去解析网页该怎么做呢?我很早以前使用java解析网页时,用到一个工具叫jsoup,相信也有不少同学用过,它时直接按xml格式解析,各种node,element…

python一样有类似且强大的网页解析工具: BeautifulSoup。(:python原生带有xml-sax,xml-dom解析器,但好不好用需要自己体会了!)

BeautifulSoup使用文档

BeautifulSoup优缺点:

我们一般在解析网页数据时,就是用的第二种:BeautifulSoup(markup, “lxml”)!

安装BeautifulSoup:pip install bs4

简单测试,以百度首页为例:

from bs4 import BeautifulSoup

response = requests.get("https://www.baidu.com")
response.encoding = response.apparent_encoding
print(response.text)
soup = BeautifulSoup(response.text, "lxml")
title = soup.find(name='title').text  # 也可以省略name:soup.find('title')
print(title)

执行报错:

Couldn't find a tree builder with the features you requested: lxml. 
Do you need to install a parser library?

解决方案:

1.安装virtualenv:
pip install virtualenv

1.安装lxml:
pip install lxml

再次执行py程序,结果:

python入门网络请求与解析(代码片段)

安装网络请求模块:Requestspipinstallrequests是否似曾相识?是否想起了nodejs?简单测试:先导入requests模块:importrequestsget请求:response=requests.get("https://www.baidu.com")print(response)结果:说明已经请求... 查看详情

python网络爬虫与信息提取—requests库入门(代码片段)

...c;自动网络请求提交此博客为中国大学MOOC北京理工大学《Python网络爬虫与信息提取》的学习笔记requests库的安装requests库是Python的第三方库,是目前公认的,爬取网页最好的第三方库。关于requests库的更多信息,可以在... 查看详情

kmm入门处理http网络请求(代码片段)

背景与Server的数据交互已经成为App必不可少的一个重要部分,常用的方式即HTTP(S),当然也有WebSocket、TCP、UDP等等在KMM模块中,为保证双端逻辑一致,且对JVM、Native进行统一兼容,可以使用官方推荐的Ktor进行网... 查看详情

快速入门python爬虫|requests请求库|pyquery定位库(代码片段)

目录1.分析爬虫发现网址规律2.库requests网络请求库爬虫反爬[转链接]pyquery网页解析定位库html字符串转化为PyQuery选择器表达式classidtag多层tagtag&attrtag&attr&attr_valuePyQuery常用方法PyQuery(Selector_Expression)PyQuery.items(Selector_Expressi 查看详情

axios网络请求框架源码解析(代码片段)

早期axios0.1.0版本做了对IE浏览器与包含XmlHttpRequest的浏览器的支持。并且做了对请求参数拼接、Json对象序列化等基本功能。到0.19.0版本时,内部请求已经变为了在Node环境下与主流浏览器的支持,其中Node环境下支持http请... 查看详情

python零基础入门爬虫原理与数据抓取--http的请求与响应(代码片段)

TTP和HTTPSHTTP协议(HyperTextTransferProtocol,超文本传输协议):是一种发布和接收HTML页面的方法。HTTPS(HypertextTransferProtocoloverSecureSocketLayer)简单讲是HTTP的安全版,在HTTP下加入SSL层。SSL 查看详情

python网络与web编程(代码片段)

1.作为客户端与HTTP服务交互(1)发送一个简单的HTTPGET请求到远程的服务上fromurllibimportrequest,parse#url的get请求请求信息连同url一起发送url='http://httpbin.org/get'#需要请求获取的信息parms='name1':'value1' 查看详情

python零基础入门爬虫原理与数据抓取--http的请求与响应(代码片段)

TTP和HTTPSHTTP协议(HyperTextTransferProtocol,超文本传输协议):是一种发布和接收HTML页面的方法。HTTPS(HypertextTransferProtocoloverSecureSocketLayer)简单讲是HTTP的安全版,在HTTP下加入SSL层。SSL(SecureSocketsLay... 查看详情

python教程入门学习python爬虫入门学习:网络爬虫是什么(代码片段)

网络爬虫又称网络蜘蛛、网络机器人,它是一种按照一定的规则自动浏览、检索网页信息的程序或者脚本。网络爬虫能够自动请求网页,并将所需要的数据抓取下来。通过对抓取的数据进行处理,从而提取出有价值的... 查看详情

史上最详细的python爬虫库urllib讲解:绝对经典,值得收藏(代码片段)

...定义规则Robots协议的解析errorHTTPError网络库urlliburllib库是Python3内置的 查看详情

js模块化入门与commonjs解析与应用(代码片段)

JS模块化的基本原理commonjs规范commonjs在前端模块化中的基本使用commonjs的实现原理AMD与CMD规范剖析博客链接 一、JS模块化基本原理在JS没有提出来模块化的时候,开发JS项目比较简单,同时也比较杂乱,第一个问题就是全局变... 查看详情

快速入门python爬虫常用解析库(xpathbs4)(代码片段)

...录第一章XPath解析第二章BeautifulSoup模块第一章XPath解析在Python中可以支持XPath提取数据的解析模块有很多,本文主要介绍lxml模块,该模块可以解析HTML与XML,并且支持XPath解析方式。由于lxml模块为第三方模块,需要... 查看详情

05python网络爬虫的数据解析方式(代码片段)

一.爬虫数据解析的流程  1.指定url  2.基于requests模块发起请求  3.获取响应中的数据  4.数据解析  5.进行持久化存储二.解析方法  (1)正则解析  (2)bs4解析  (3)xpath解析  1.正则解析    常用正则表达式 ... 查看详情

flutter从入门到入土网络请求dio(代码片段)

1、网络请求1Dio_dio=newDio();23FuturegetInformationJson(Useruser)async45varurl=‘http://xxx/xxx/xxx?username=‘+user._username+6‘&password=‘+user._password;78Responseresponse=await_dio.get(url);9if(response.statusCode==HttpStatus.ok)10vardata=jsonDecode(response.toString());  //JS... 查看详情

jsp入门解析(代码片段)

JSPjsp的书写与html的类似,但是不能直接访问,需要部署在服务器上,才能访问,但是html的语法规则在jsp中同样适用,可以得到同样的效果。jsp可以显示动态资源,动态获取后台的传输的资源,动态的显示在页面上,更好的直观... 查看详情

带你一步步剖析retrofit源码解析:一款基于okhttp实现的网络请求框架(代码片段)

...与联系是怎样的?参考答案:OkHttp和Retrofit都是目前流行网络开源框架封装不同:Retrofit封装了具体的请求,线程切换以及数据转换。retrofit通过使用代理,外观,策略模式对okhttp进行了封装OkHttp是基于Http协议封装的一套请求客... 查看详情

python入门自学进阶——8-网络编程(代码片段)

网络编程,就是在两台或多台计算机之间通信,网络通信的三个要素:IP地址、端口号、协议。socket所在层次示意图:我们写的程序运行起来就是用户进程,我们的程序进行在运行时,如果要进行网络通信&... 查看详情

scrapy框架入门(代码片段)

一、介绍?Scrapy是一个基于Twisted的异步处理框架,是纯Python实现的爬虫框架,其架构清晰,模块之间耦合较低,扩展性和灵活强,是目前Python中使用最广泛的爬虫框架。架构示意图;它分为以下几个部分:Engine:引擎,处理整个... 查看详情