• python网络爬虫与信息提取 学习笔记day2


    Day2:

    查看robots协议:

    查看京东的robots协议

     

    查看百度的robots协议,可以看到百度拒绝了搜狗的爬虫233


    爬取京东商品页面相关信息:

    import requests
    url = "https://item.jd.hk/1974631870.html"
    try:
        r = requests.get(url)
        r.raise_for_status()
        r.encoding = r.apparent_encoding
        print(r.text[:1000])
    except:
        print("产生异常")

     

    爬取亚马逊商品页面相关信息:

    由于亚马逊拒绝爬虫访问,所以需要更改header的值,将python伪装成浏览器访问

    import requests
    url = "https://www.amazon.cn/dp/B0186FESGW/ref=fs_kin"
    try:
        kv = { 'user-agent':'Mozilla/5.0'}
        r = requests.get(url,headers = kv)
        r.status_code
        r.raise_for_status()
        r.encoding = r.apparent_encoding
        print(r.text[:1000])
    except:
        print("产生异常")

     

    爬取百度关键词查询结果 :    本例关键词为python

     1 import requests
     2 keyword = "python"
     3 try:
     4     kv = {'wd':keyword}
     5     r = requests.get("http://www.baidu.com/s",params=kv)
     6     print(r.request.url)
     7     r.raise_for_status()
     8     print(len(r.text))
     9     
    10 except:
    11     print("爬取失败")

     

    网络图片,视频等二进制文件的爬取和保存:

    import requests
    import os
    
    url = "http://image.nationalgeographic.com.cn/2017/0819/20170819021922613.jpg"
    root = "f://pics//"
    path = root + url.split('/')[-1]
    try:
        if not os.path.exists(root):    #处理根目录是否存在问题
            os.mkdir(root)
        if not os.path.exists(path):    #处理文件是否存在问题
            kv = { 'user-agent':'Mozilla/5.0'}
            r = requests.get(url,headers = kv)
           
            r.status_code
            with open(path,'wb') as f:
                f.write(r.content)#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+'202.204.80.112')
        r.raise_for_status()
        r.encoding = r.apparent_encoding
        print(r.text[-500:])
    except:
        print("爬取失败")
        

  • 相关阅读:
    Android_AsyncTask
    table隔行变色【转】
    添加对WCF的调用(内网状态下)。
    【转】IDEA 2017破解 license server激活
    C# LIst去重
    框架内事务的近期发现,以后再研究
    启动、停止、删除Windows服务
    软件项目总结中的经验总结
    iis最大连接数和队列长度
    在一个千万级的数据库查寻中,如何提高查询效率?
  • 原文地址:https://www.cnblogs.com/yezhaodan/p/7419284.html
Copyright © 2020-2023  润新知