Python_爬虫3_Requests库网络爬虫实战(5个实例)

时间:2024-11-19 12:26:34

目录

实例1:京东商品页面的爬取

实例2:亚马逊商品页面的爬取

实例3:百度360搜索关键词提交

实例4:网络图片的爬取和存储

实例5:IP地址归地的自动查询


实例1:京东商品页面的爬取

import requests
url = 'http://item.jd.com/2967929.html'
try:
    r=requests.get(url)
    r.raise_for_status()
    r.encoding=r.apparent_encoding
    print(r.text[:1000])
except:
    print("爬取失败")


实例2:亚马逊商品页面的爬取

import requests
url = 'http://www.amazon.cn/gp/product/B01M8L5Z3Y'
try:
    kv={'user-agent':'Mozilla/5.0'}
    r=requests.get(url,headers=kv)
    r.raise_for_status()
    r.encoding=r.apparent_encoding
    print(r.text[1000:2000])
except:
    print("爬取失败")

 跟京东的不同,需要模拟headers向网络访问。


实例3:百度360搜索关键词提交

搜索引擎关键词提交接口

百度关键词接口:

http://www.baidu.com/s?wd=keyword

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

360的关键词接口:

http://www.so.com/s?q=keyword

import requests
keyword="Python"
try:
    kv={'q':keyword}
    r=requests.get("http://www.so.com/s",params=kv)
    print(r.request.url)
    r.raise_for_status()
    print(len(r.text))
except:
    print("爬取失败")


实例4:网络图片的爬取和存储

网络图片链接的格式:

http://www.example.com/picture.jpg

国家地理:

http://www.dili360.com

选择一个图片web页面:

http://img0.dili360.com/ga/M02/33/7C/wKgBzFSbqQyAJVAuAARB8cSWH_w695.tub.jpg

import requests
import os
url="http://img0.dili360.com/ga/M02/33/7C/wKgBzFSbqQyAJVAuAARB8cSWH_w695.tub.jpg"
root="D://bdwp//"
path=root+url.split('/')[-1]
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:
            f.write(r.content)
            f.close()
            print("文件保存成功")
    else:
        print("文件已存在")
except:
    print("爬取失败")

第一次运行:

第二次运行:


实例5:IP地址归地的自动查询

import requests
url = 'https://m.ip138.com/iplookup.php?ip='
try:
    kv={'user-agent':'Mozilla/5.0'}
    r=requests.get(url+'202.204.80.112' ,headers=kv)
    r.raise_for_status()
    r.encoding=r.apparent_encoding
    print(r.text[2400:2600])
except:
    print("爬取失败")