美文网首页
python requests模块教程及实例(params和文件

python requests模块教程及实例(params和文件

作者: 等你走进我的世界 | 来源:发表于2018-05-30 21:02 被阅读0次

    ——————来自某潮汕人的菜鸟教程

    一、应用requests.get方法中的params参数,让自己的url不再那么臭长,使自己的代码看起来更加整齐

    上个课程我们的代码中有

    res = requests.get(url='https://b.faloo.com/l/0/1.html?t=1&k=%CB%D9%B6%C8')


    其实k=%CB%D9%B6%C8这一部分是k=速度  的意思

    我们可以代码改成

    param={ 't':'1',

    'k':'速度'.encode('gb2312')#因为网页的 charset=gb2312

    }

    res = requests.get(url='https://b.faloo.com/l/0/1.html',params=param)

    res_text=res.text

    print(res.url)#结果输出https://b.faloo.com/l/0/1.html?t=1&k=%CB%D9%B6%C8


    经过这一波操作之后得出结论

    url中出现变量=xxx的这些是参数,可以用params进行连接

    二、如何下载文件

    下载小文件

    r = requests.get(image_url)

    with open("down.png",'wb') as f:

        f.write(r.content)


    实例

    爬取网页url="https://b.faloo.com/l/0/1.html?t=1&k=%CB%D9%B6%C8"

    爬取任务:下载这张图片

    经过查找,这张图片的url="http://img.faloo.com/Novel/100x142/0/195/000195461.jpg"

    好!现在我们将这张图片试着下载下来

    稍微更改下上面的代码:

    image_url="http://img.faloo.com/Novel/100x142/0/195/000195461.jpg"

    r = requests.get(image_url)

    with open("down.png",'wb') as f:

        f.write(r.content)

    结果:在项目目录下生成了down.png

    为什么这种模式只能下载小文件呢?

    因为这种模式下,从网站接受到的数据是一直储存在你的内存中,只有当你write时才写入硬盘,如果文件很大,那么所占用的内存也是很大的,所以有了以下的大文件下载方法



    下载大文件

    r = requests.get(image_url, stream=True)

    with open("python.pdf", "wb") as f:

        for bl in r.iter_content(chunk_size=1024):

            if bl:

                f.write(bl)

    相关文章

      网友评论

          本文标题:python requests模块教程及实例(params和文件

          本文链接:https://www.haomeiwen.com/subject/ybbxsftx.html