zoukankan      html  css  js  c++  java
  • 中国大学MOOC —— 学习笔记(一)

    注:本文仅是个人的学习笔记,内容来源于中国大学mooc《Python网络爬虫与信息提取》课程

    一 京东商品页面爬取 

    import requests
    
    url = "https://item.jd.com/16392426155.html"
    try:
         r = requests.get(url)
         r.raise_for_status()#检查访问信息的状态码,200表示正确
         r.encoding = r.apparent_encoding#将编码改为可以显示的编码
         print(r.text[:1000])
    except:
         print("爬取失败")

    二 亚马逊商品页面的爬取

    1 用一个字典kv保存需要修改的头部信息。

    2 获取头部信息:

    >>> r.request.headers
    {'User-Agent': 'python-requests/2.18.4', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}

    3 访问url时,修改头部信息

    import requests
    
    url = "https://www.amazon.cn/dp/B074JV6Y48/ref=gwgfloorv1_BMVD_a_0?pf_rd_p=0e393420-91cc-445c-be7c-6f0361fc9c40&pf_rd_s=desktop-8&pf_rd_t=36701&pf_rd_i=desktop&pf_rd_m=A1AJ19PSB66TGU&pf_rd_r=M20Y5N4VVMJD20QCQZNY&pf_rd_r=M20Y5N4VVMJD20QCQZNY&pf_rd_p=0e393420-91cc-445c-be7c-6f0361fc9c40"
    try:
         kv = {'user-agent':'Mozilla/5.0'}  #请求头
         r = requests.get(url,headers = kv) #将请求头修改为kv
         r.raise_for_status()
         r.encoding = r.apparent_encoding
         print(r.text[:2000])
    except:
         print("爬取失败")

    三 百度/360搜索关键词提交

    字典kv用于保存需要查找到keywords

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

    四 网络图片的爬取和存储

    网络图片链接格式:

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

    选择国家地理的一张图片url作为对象。

    import requests
    
    path = "D://abc.jpg"#保存的路径
    url = "http://img0.dili360.com/rw9/ga/M01/48/3C/wKgBy1kj49qAMVd7ADKmuZ9jug8377.tub.jpg"
    r = requests.get(url)
    with open(path,'wb') as f:
         f.write(r.content)#response对象的content属性:以二进制的方式写入文件
    f.close()

    代码优化:

    引入os库

    import requests
    import os
    
    url = "http://img0.dili360.com/rw9/ga/M01/48/3C/wKgBy1kj49qAMVd7ADKmuZ9jug8377.tub.jpg"
    root = "D://pic//"
    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:
                   f.write(r.content)
                   f.close()
                   print("文件保存成功")
         else:
              print('文件已存在')
    except:
         print("爬取失败")

    五 IP地址自动查询

    import requests
    
    url = "http://m.ip138.com/ip.asp?ip="
    try:
         r = requests.get(url)
         r.raise_for_status
         r.encoding = r.apparent_encoding
         print(r.text[-5000:])#抓取ip地址对应网页的后5000个字符
    except:
         print("爬虫失败")
  • 相关阅读:
    Shell学习(八)——dd命令
    PLSQL导出oracle表结构和数据
    如何让Linux 机器CPU使用率变高
    WebService学习总览
    Java发HTTP POST请求(内容为xml格式)
    Oracle—回车、换行符
    Oracle—merge into语法
    Apache解析和绑定域名
    MySQL根据经纬度按距离排序
    jquery监听input
  • 原文地址:https://www.cnblogs.com/BeautifulSoup/p/8452276.html
Copyright © 2011-2022 走看看