Requests库——实例讲解

都是特别基础的实例,每个用例都有他的意义。例子来源:《中国大学慕课》,北京理工大学嵩天老师的,Python爬虫课程。看这篇文章之前,最好看一下Requests库的详细介绍。Python爬虫入门——Requests库

1.爬取京东商品页面的框架

import requests
url="https://item.jd.com/100004706522.html"
try:
    r=requests.get(url)
    r.raise_for_status()     #检查返回状态码是否为200
    r.encoding=r.apparent_encoding   #选择正确编码方式
    print(r.text[:1000])   #因为页面代码比较多,所以这里就只选择性的输出    
except:
    print("error")

2. 爬取亚马逊商品页面的框架

  亚马逊商品页面的爬取,如果按照上边的京东案例,会报错。因为亚马逊对爬虫做了限制,就是请求报文头中的User-Agent字段。所以我们要对User-Agent字段进行改变。

import requests
url = "https://www.amazon.cn/dp/B00J7E381S?ref_=Oct_DotdV2_PC_2_GS_DOTD_f0f9ddb1&pf_rd_r=269HMTWP7R5ZPFRGY17V&pf_rd_p=8c48638a-3752-448a-8685-5a17153fb132&pf_rd_m=A1AJ19PSB66TGU&pf_rd_s=desktop-2"
try:
    kv = {'user-agent':'Mozilla/5.0'}    #更改请求报文头部信息
    r=requests.get(url,headers=kv)      
    print(r.request.headers)                   #打印请求头
    r.raise_for_status()
    r.encoding=r.apparent_encoding
    print(r.text)
except:
    print("爬取失败")

3. 百度搜索关键词提交

修改params参数提交关键词

百度的关键词接口:http://www.baidu.com/s?wd=keyword

360的关键词接口:http://www.so.com/s?q=keyword

import requests
keyword = "Python"
try:
    kv = {'wd':keyword}
    r = requests.get("http://www.baidu.com/s",params=kv)   
    print(r.request.url)       #发送的url地址
    r.raise_for_status()
    print(len(r.text))         #长度
except:
    print("爬取失败")

4.图片的爬取和存储

  结合os库和文件操作的使用。包括视频、文件、图片等,都可以用类似的方法来获取。

import requests
import os
url = "https://image.ijq.tv/201501/31/13-57-25-65-12.jpg"
root = "E:/pics/"
path = root+url.split('/')[-1]   #文件名默认是:URL最后一个‘/’后面的东西
try:
    if  not os.path.exists(root):     #若根目录不存在,则要建立根目录
        os.mkdir(root)
    if  not os.path.exists(path):     #若文件不存在的话
        r=requests.get(url)
        with open(path,'wb') as f:  
#wb含义:以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,
#并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
            f.write(r.content)
            f.close()
            print("文件保存成功")
    else:
        print("文件已存在")
except :
    print("爬取失败")

5.IP查询

import requests
url ="http://m.ip138.com/ip.asp?ip="
try:
    r=requests.get(url+'202.204.80.112')   #这里填写你想要查询的IP地址
    r.raise_for_status()
    r.encoding=r.apparent_encoding
    print(r.text[-500:])   #最后500个
except :
    print("爬取失败")

6.总结

  requests.get()方法获取的实际上就是页面的html代码。你可以随便打开一个网页,右击,点击查看网页源代码。Requests库只是简单的获取网页信息,下面将要讲解获取信息之后,如何提取自己想要的内容。
  还在上学阶段,才疏学浅,文章如有不当之处,还请多多指教~~ (●′ω`●)

发布了14 篇原创文章 · 获赞 25 · 访问量 5364

猜你喜欢

转载自blog.csdn.net/weixin_43275558/article/details/104369145