精华内容
下载资源
问答
  • 在爬虫中requests.get()与requests.post()的区别
    千次阅读
    2022-02-27 21:48:33

    **requests.get()**通常是用来向服务器发起获取页面请求的,获取的东西可以缓存到浏览器中,用来获取资源的。
    **requests.post()**用来向服务器传递数据的,服务器会根据这些数据做出相应的反映,通常是用来模拟用户登录的。

    更多相关内容
  • 解决requests.get()方法返回代码与浏览器Elements选项卡不一致的问题 疫情期间无聊,玩起了Python爬虫,正好舍友让我帮忙下载一个知乎视频。这里附上链接。 美版《黄金单身汉》拟音 网站本身的源码很简单。我们查看...
  • You can tell Requests to stop waiting for a response after a givennumber of seconds with the timeout parameter:>... requests.get('http://github.com', timeout=0.001)Traceback (most recent call ...

    You can tell Requests to stop waiting for a response after a given

    number of seconds with the timeout parameter:>>> requests.get('http://github.com', timeout=0.001)

    Traceback (most recent call last):

    File "", line 1, in

    requests.exceptions.Timeout: HTTPConnectionPool(host='github.com', port=80): Request timed out. (timeout=0.001)

    Note:

    timeout is not a time limit on the entire response download; rather,

    an exception is raised if the server has not issued a response for

    timeout seconds (more precisely, if no bytes have been received on the

    underlying socket for timeout seconds).

    在我看来,requests.get()需要很长时间才能返回,即使timeout是1秒。有几种方法可以克服这个问题:

    1。使用内部类TimeoutSauceimport requests from requests.adapters import TimeoutSauce

    class MyTimeout(TimeoutSauce):

    def __init__(self, *args, **kwargs):

    if kwargs['connect'] is None:

    kwargs['connect'] = 5

    if kwargs['read'] is None:

    kwargs['read'] = 5

    super(MyTimeout, self).__init__(*args, **kwargs)

    requests.adapters.TimeoutSauce = MyTimeout

    This code should cause us to set the read timeout as equal to the

    connect timeout, which is the timeout value you pass on your

    Session.get() call. (Note that I haven't actually tested this code, so

    it may need some quick debugging, I just wrote it straight into the

    GitHub window.)If you specify a single value for the timeout, like this:r = requests.get('https://github.com', timeout=5)

    The timeout value will be applied to both the connect and the read

    timeouts. Specify a tuple if you would like to set the values

    separately:r = requests.get('https://github.com', timeout=(3.05, 27))

    展开全文
  • requests.get()解析

    2021-02-03 07:44:58
    1、requests.get(url, params=None, headers=None, cookies=None, auth=None, timeout=None)Sends a GET request. ReturnsResponseobject.Parameters:url – URL for the newRequestobject.params – (optional) Di....

    1、requests.get(url, params=None, headers=None, cookies=None, auth=None, timeout=None)

    Sends a GET request. Returns Response object.

    Parameters:

    url – URL for the new Request object.

    params – (optional) Dictionary of GET Parameters to send with the Request.

    headers – (optional) Dictionary of HTTP Headers to send with the Request.

    cookies – (optional) CookieJar object to send with the Request.

    auth – (optional) AuthObject to enable Basic HTTP Auth.

    timeout – (optional) Float describing the timeout of the request.

    requests.get(url,params = None,headers = None,cookies = None,auth = None,timeout =无)

    发送GET请求。 返回Response对象。

    参数:

    url - 新的Request对象的URL。

    params - (可选)使用请求发送的GET参数字典。

    头文件 - (可选)使用请求发送的HTTP头文件字典。

    Cookie - (可选)使用请求发送的CookieJar对象。

    auth - (可选)AuthObject启用基本HTTP身份验证。

    超时 - (可选)描述请求超时的浮点数。

    Python requests模块解析XML

    检查QQ是否在线(api感觉不准) import requests from xml.etree import ElementTree qq_str = input('please input the ...

    用Python抓取网页并解析

    软件版本 python:2.7.12 网页抓取库 网页抓取库为requests, github地址为:https://github.com/requests/requests, 文档地址为:http: ...

    爬虫——requests模块

    一 爬虫简介 #1.什么是互联网? 互联网是由网络设备(网线,路由器,交换机,防火墙等等)和一台台计算机连接而成,像一张网一样. #2.互联网建立的目的? 互联网的核心价值在于数据的共享/传递:数据是 ...

    爬虫入门之Requests模块学习(四)

    1 Requests模块解析 Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用 Requests 继承了urllib2的所有特性.Requests支持HTTP连接保 ...

    网络爬虫之requests模块的使用+Github自动登入认证

    本篇博客将带领大家梳理爬虫中的requests模块,并结合Github的自动登入验证具体讲解requests模块的参数. 一.引入:   我们先来看如下的例子,初步体验下requests模块的使用: ...

    Requests的基本使用

    Requests库 r=requests.get(url) #返回一个包含服务器资源的Response对象 #构造一个向服务器请求资源的Request对象 格式:requests.get(url,pa ...

    Python简单爬虫入门一

    为大家介绍一个简单的爬虫工具BeautifulSoup BeautifulSoup拥有强大的解析网页及查找元素的功能本次测试环境为python3.4(由于python2.7编码格式问题) 此工具在搜索 ...

    python抓取某学院视频

    视频抓取原理:获取所有的知识类别id->然后获取其子项->根据子项链接分析获取该类课程数->循环获取链接指向的视频.需要安装python库:requestspython解析xml使用 ...

    GJM : Python简单爬虫入门 (一) [转载]

    版权声明:本文原创发表于 [请点击连接前往] ,未经作者同意必须保留此段声明!如有侵权请联系我删帖处理! 为大家介绍一个简单的爬虫工具BeautifulSoup BeautifulSoup拥有强大的解 ...

    随机推荐

    怎么提高OCR文字识别软件的识别正确率

    在OCR文字识别软件当中,ABBYY FineReader是比较好用的程序之一,但再好的识别软件也不能保证100%的识别正确率,用户都喜欢软件的正确率高一些,以减轻识别后修正的负担,很多用户也都提过这 ...

    UVA 11090 Going in Cycle!!(二分答案+判负环)

    在加权有向图中求平均权值最小的回路. 一上手没有思路,看到“回路”,第一想法就是找连通分量,可又是加权图,没什么好思路,那就转换题意:由求回路权值->判负环,求最小值->常用二分答案. 二 ...

    svg学习之旅(2)

    基本图形 circle 圆     cx基于X轴的坐标位置 cy基于y轴的坐标位置 r圆的半径 fill 填充 transparent透明 stroke 边框 stroke-width 边框宽度 st ...

    HttpResponseMessage获取请求响应体内容

    问题描述 使用httpClient获取的HttpResponseMessage类型的response,直接对其toString()获取的是请求的响应头,并没有获取响应体的内容 解决办法 HttpRes ...

    oracle 12C利用dbca建库13步

    oracle用户登录然后命令行执行:dbca 如果没有此命令可以用:find / -name "dbca"查到后执行. 1.选择Create a database 2.选择Adva ...

    Contours 等高线图

    1.画等高线 数据集即三维点 (x,y) 和对应的高度值,共有256个点.高度值使用一个 height function f(x,y) 生成. x, y 分别是在区间 [-3,3] 中均匀分布的256 ...

    JSON笔记

    JSPN示例1: { "firstName": "Brett", "lastName":"McLaughlin", &q ...

    Visual Studio 2017 + Python3.6安装scipy库

    Windows10下安装scipy很麻烦,直接在命令行下使用pip install scipy无法安装,但可以借助VS2017的集成环境来安装. (1)首先在Visual Studio Install ...

    (O)web缓存

    为什么要用缓存 一般针对静态资源如CSS,JS,图片等使用缓存,原因如下: 请求更快:通过将内容缓存在本地浏览器或距离最近的缓存服务器(如CDN),在不影响网站交互的前提下可以大大加快网站加载速度. ...

    proguard-rules.pro、混淆、导jar包

    前记: 买了一个本来最想看的是关于混淆导jar包的,哪知道没有,有点小失望. 好吧,自己来. 在用Android Studio开发的时候,把minify ...

    展开全文
  • requests.get()返回数据乱码解决办法

    千次阅读 2021-01-18 10:51:06
    requests.get()返回信息乱码问题的解决方法:1、网页未设置编码或无法找到编码;2、网页采用br压缩格式,没有解压导致乱码


    说明:本文为个人解决问题过程记录,方法和理论不一定完全正确,如有错误,欢迎指出。


    1 问题

      刚开始接触硕士课题,看论文的时候用过一个Chrome插件“Kopernio”,可以直接免费下载论文PDF,大部分论文都能找到。Koperno的下载速度不仅比SCI-HUB快,而且已被科瑞唯安收购,属于正规军。因此在做PaperAsistent这个软件的时候首先就想到了用它来下载论文。

      找到了PDF的链接后,正常用requests.get()来读数据,结果发现返回的数据是乱码,代码如下:

    # 请求头
    gheaders = {
        'user-agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:27.0)  \
                        Gecko/20100101 Firefox/27.0',
        'Accept': 'text/html,application/xhtml+xml,application/xml; \
                    q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8, \
                    application/signed-exchange;v=b3;q=0.9',
        'accept-encoding': 'gzip, deflate, br',
        'accept-language': 'zh-CN,zh;q=0.9',
        'cache-control': 'max-age=0',
        'Host': 'kopernio.com',
        'sec-fetch-dest': 'empty',
        'sec-fetch-mode': 'cors',
        'sec-fetch-site': 'same-origin',
        'x-kopernio-plugin-version': '0.12.26'
    }
    
    url = 'https://kopernio.com/viewer?doi=10.1109/icqr2mse.2012.6246426&route=7'
    res = requests.get(url=url, headers=gheaders, verify=False)  # GET请求
    print(res.text)
    

      返回结果如下图所示
    在这里插入图片描述

      看到这个结果感觉是编码有问题,于是就百度了一下,找了一些方法进行了尝试。

    2 尝试

      百度[requests请求返回内容乱码]得到的解决方案主要是两个,参考这两篇文章 [ 1 , 2 ] ^{[1,2]} [1,2]

    2.1 自行设置编码格式

      在浏览器按F12进入开发调试,找到请求链接对应的相关信息,在Response Headers中查看 'content-type’属性:

      如果只指定了类型而没有指定编码(如下图),则页面默认是’ISO-8859-1’编码。这处理英文页面当然没有问题,但是中文页面,就会有乱码了!
    在这里插入图片描述
      如下图,是指定编码为 UTF-8编码
    在这里插入图片描述
      对于没有指定编码的情况,可以在网页源码中查找编码格式,如下图
    在这里插入图片描述
      然后在代码中指定它的编码格式即可,如下

    res = requests.get(url, headers=header)
    res.encoding = ‘UTF-8’
    pritn(res.text)
    

      我所请求的网址在Response Headers中设置了编码格式,所以这种解决方法无效,尝试下一种方法。

    2.2 利用apparent_encoding

      利用apparent_encoding来自动判断返回值的编码格式,然后用返回的编码格式进行设置

    res = requests.get(url, headers = header)
    res.encoding = res.apparent_encoding
    pritn(res.text)
    

      用了这种方法来试了一下,结果res.apparent_encoding的值是None…,这说明没识别出来返回信息的格式,这种办法对我遇到的情况来说没有用。

    3 解决

      又经过漫长的搜索,终于在知乎上看到了一个貌似合理,之前没有考虑的问题:压缩格式! [ 3 ] ^{[3]} [3]

      造成乱码除了编码格式方面外,另外还有可能是因为压缩格式导致的。在请求头中,‘Accept-Encoding’是浏览器发给服务器,声明浏览器支持的编码类,一般有gzip,deflate,br 等等。很多网站都是以gzip的格式来输出页面,此时输出response.contentresponse.text时会自动解压,但是当以br格式压缩时,却不会自动解压 [ 4 ] ^{[4]} [4]

      Brotli是一种由 Google开发的全新压缩算法,可以有效减小传输内容大小,加速分发效果。当客户端的请求携带请求头 Accept-Encoding: br 时,表示客户端希望获取对应资源时进行 Brotli 压缩。当服务端响应携带响应头 Content-Encoding: br 时,表示服务端响应的内容是 Brotli 压缩的资源。需要注意的是,只有在 HTTPS 的情况下,浏览器才会发送 br 这个 Accept-Encoding [ 5 ] ^{[5]} [5]

      看了一下网页里Response Headers中的content-encoding, 果然是br格式。又看了一眼代码里的accept-encoding,也包含了br格式,所以GET请求返回的页面是以br格式进行压缩的,无法自动解压,最后导致乱码。问题找到了就好解决了。

      两种解决方法 [ 6 ] ^{[6]} [6],一种是用pip install brotli安装解压库,再导入import brotli后解压缩:

    response = requests.get(url, headers=headers)
    data = brotli.decompress(response.content)
    

      结果这里又出问题了,报错解压失败,如下图
    在这里插入图片描述
      参考资料[6]里最后说 python3.8和brotli=1.0.9运行时会提示错误,我用的是python3.9+brotli=1.0.9,估计是这个原因。

      第二种解决方法简单粗暴,直接从请求头的Accept-Encoding中去除编码类型br:

    Accept-Encoding = "gzip, deflate"
    

      最后试了这种方法是有效的。

    参考资料

    [1]requests请求返回内容 中文乱码问题

    [2]Python requests包get响应内容中文乱码解决方案

    [3]如何解决用 Beautiful Soup 抓取网页却得到乱码的问题?

    [4]python3爬虫中文乱码之请求头‘Accept-Encoding’:br 的问题

    [5]Python3 解压 HTTP 压缩数据

    [6]python3 requests 爬虫请求头解决gzip, deflate, br中文乱码问题

    展开全文
  • response=requests.get(url) print(response.text) 上面是一般的爬虫方法,这样可能会出现乱码问题 那么如何解决呢,很简单,只需要加入一行 response.encoding = response.apparent_encoding 正确代码如下 ...
  • 我是用的谷歌浏览器,按f12后经过对比,我发现我代码requests.get返回的是——sources里面的html文本,但我想要的是element里面的html文本,怎么才能返回正确的html呢? ↓这是我想要找的: ![图片说明]...
  • 用了些requests模块,主要是requests.request、requests.getrequests.post import json import requests url='http://localhost:8888/' response=requests.get(url) #打印响应内容 print('response.text:',...
  • 使用 python requests 模块访问接口,接口返回的状态码 200 ,但获取到的接口数据 requests.get(url).text 为空。 文章目录现象原因解决 现象 相同的接口地址,使用 postman 访问可以获取到对应返回信息,但使用 ...
  • requests.get(down_url) # 发送https请求 遇到问题一: 控制台返回报错如下: Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed:.
  • #requests.get是在调用requests库中的get()方法,它向服务器发送了一个请求,括号里的参数是你需要的数据所在的网址,然后服务器对请求作出了响应。 #我们把这个响应返回的结果赋值在变量res上。 Python是一门面向...
  • 如何解决python爬虫——遇到requests.get()访问得到418问题在爬虫时候,通过requests.get()得到不正确的状态码:4**:表示出错403问题:服务器已经理解请求,但是拒绝执行它418问题:网站的反爬程序返回的其他HTTP...
  • 文章目录网络爬虫MOOC学习打卡 - 第一天一、使用 requests.get(url) 抓取网页1.从cmd中打开idle2.调用requests类 —— import requests总结 一、使用 requests.get(url) 抓取网页 1.从cmd中打开idle 2.调用...
  • coding = utf-8 import requests ...ret = requests.get(url) print(type(ret)) # 返回类型 <class ‘requests.models.Response’> print(ret) # 返回值:<Response [200]> print(re...
  • response = requests.get(url, timeout=(10, 15)) response.encoding ='utf-8' html = response.text timeout参数可以配置超时时间,一般情况我们只需要填一个数字,即可代表等待多少秒结束,但其实可以填一个元组...
  • 爬虫——requests.get爬虫模块参数

    千次阅读 2019-09-02 14:50:00
    res = requests.get(url,headers=headers) 向网站发起请求,并获取响应对象 参数 url :需要抓取的URL地址 headers : 请求头 timeout : 超时时间,超过时间会抛出异常 响应对象(res)属性 encoding :响应字符...
  • r=requests.get('https://wp.m.163.com/163/page/news/virus_report/index.html',params={'_nw_':1,'_anw_':'1'}) r=r.content print(r) txt=etree.HTML(r) print(txt) 各位大佬帮忙看看 --...
  • Python Requests.get访问网页403错误

    千次阅读 2020-12-09 11:13:41
    import requestsr = requests.get(这段代码尝试访问雪球网站,结果会返回403错误代码表示forbidden。因为没加上http请求header,估计时雪球网站有一定的反爬虫策略。于是我构造了一个如下的hea...
  • 主要介绍了python爬虫 基于requests模块发起ajax的get请求实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • import requests from bs4 import BeautifulSoup headers = { 'Cookie':'OCSSID=4df0bjva6j7ejussu8al3eqo03', 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36' '(KHTML, like ...
  • 最近在入门爬虫,遇到了一个问题,就是我用requests.get()之后得到的源代码跟浏览器里面的不一样(爬的是百度搜索“美女”之后的网页),今天看了崔庆才的《python3网络爬虫开发实战》在2.3.3节找到了答案:我们用...
  • 当爬取百度主页时,可以看到get函数只有一个url,也会成功响应,状态码为[200]: >>> import requests ... r=requests.get(url) >>> r <Response [200]> >>>...
  • requests.get(url,params = query,headers=headers)太坑了!!! request.post(url,data=data)//post方法是否适用未经验证,仅做参考 之前一直使用的是 requests.get(url,params = query) 一直不能实现翻页,
  • 我试图用python编写一个脚本,将HTTPGET请求发送到自动生成的URL,并获取其响应代码和运行时间。URL不一定是有效的,也可以接受400个响应。脚本1.Pyimport sysimport requestsstr1=...
  • requests.get和urlopen的比较 urlopen详解见:https://blog.csdn.net/qq_41845823/article/details/119465293 requests.get详解见:https://blog.csdn.net/qq_41845823/article/details/119516178 urlopen简介 ...
  • 由于初学爬虫 尝试着在...源文件打开 找到的元素 在requests.get竟然没有.当我们输出一下html.text时我们发现 竟然和源文件不一样 具体操作如下 headers={'User-Agent':'Mozilla/xxxxxxxxxxxxetaSr 1.0', 'Host...
  • import requests, jsonr = requests.get('http://192.168.207.160:9000/api/qualitygates/project_status?projectId=%s' % (p_uuid) )state=json.loads(r.text).get('projectStatus').get('stat...
  • 参考如下: https://segmentfault.com/q/1010000000340967 python保存网页到本地出错 https://segmentfault.com/q/1010000000341014 使用requests库抓取页面的时候的编码问题

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 128,162
精华内容 51,264
关键字:

requests.get返回的是什么