爬取百度logo2

#!/usr/bin/env python

# _*_ coding:utf-8 _*_

import logging,os,shutil,requests

from lxmlimport etree

logging.basicConfig(level=logging.INFO)

url="https://www.baidu.com"

headers={}

headers["User-Agent"]="Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36"

res=requests.get(url,headers=headers)

try:

if res.status_code==200:

selector=etree.HTML(res.text)#使用etree.HTML处理源代码

        result=etree.tostring(selector)#使用tostring 方法,可以看到刚才建立的 xml文件全貌

        logging.info(result)#输出网页内容

#使用Xpath提取内容

        img_urls=selector.xpath("//*[@id='lg']/img[1]/@src")

print(img_urls)

if img_urls:

img_url=img_urls[0]

img_url=img_urlif img_url.startswith("http")else "http:"+img_url

logging.info(img_url)

#先删除本地在下载

            filename="logo1.png"

            if os.path.isfile(filename):

os.remove(filename)

#获取图片数据流

            res=requests.get(img_url,stream=True)

with open(filename,"wb")as out_file:

shutil.copyfileobj(res.raw,out_file)

else:

logging.info("查找元素失败")

else:

print("网页异常")

except ConnectionError:

print("连接异常")

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • #!/usr/bin/env python3 # _*_ coding:utf-8 _*_ import logg...
    Danny001阅读 4,929评论 0 1
  • =========================================================...
    lavor阅读 8,825评论 0 5
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,386评论 19 139
  • 声明:本文讲解的实战内容,均仅用于学习交流,请勿用于任何商业用途! 一、前言 强烈建议:请在电脑的陪同下,阅读本文...
    Bruce_Szh阅读 14,378评论 6 28
  • 在 IOS 中方法名都特别长,但是易读 接下来我们来自定义方法名 一个参数 两个参数 void 代表没有返回值,有...
    Roger_单阅读 2,761评论 0 0