获取图片比获取文字更加复杂,获取文字在网页当中可以直接一次性的读取到文字;获取图片是获取图片的链接地址,然后通过链接地址下载到本地。

第一步:如何获取图片的链接地址

打开图片新闻的地址:https://www.infoq.com/presentations

1. 先获取图片地址:右键-查看源代码,获取新闻可以用文字的关键字搜索,作为图片在网页嵌入肯定会有img这样的标签,img后面跟着的链接地址就是我们要找的图片链接地址。

2.代码实现

import osimport shutilfrom bs4 import BeautifulSoup # 编码解码库import requests # 请求访问库# 用 dict 定义http头,伪装浏览器访问,避免被拒之门外headers = {    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",    "Accept-Language": "zh-CN,zh;q=0.8",    "Connection": "close",    "Cookie": "_gauges_unique_hour=1; _gauges_unique_day=1; _gauges_unique_month=1; _gauges_unique_year=1; _gauges_unique=1",    "Referer": "https://www.infoq.com/presentations",    "Upgrade-Insecure-Requests": "1",    "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.98 Safari/537.36 LBBROWSER"}url='https://www.infoq.com/presentations'def download_pic(img_url,image_localpath):    response=requests.get(img_url,stream=True)    if response.status_code==200:        with open (image_localpath,'wb') as f:            response.raw.deconde_content=True            shutil.copyfileobj(response.raw,f)#shutil库用来配合requests模块,他把response返回的内容写入到文件中#获取演讲图片,requests库封装的接口只提供了浏览的功能,如果想要下载的话需要提供stream这样的参数,stream设置成true才能和网页建立一个链接,再用response.content这样的方法进行下载def craw3(url):    response=requests.get(url,headers=headers)    soup=BeautifulSoup(response.text,'lxml')    for pic_href in soup.find_all('div',class_='card__content'):        for pic in pic_href.find_all('img'):            imgurl=pic.get('src')            dir=os.path.join('.')            filename=os.path.basename(imgurl)#该功能将链接地址只获取图片名称            imgpath=os.path.join(dir,filename)            #http://a.com/b/c.png只获取c.png文件名称            #c.png在和路径结合            print('开始下载 %s'%imgurl)            download_pic(imgurl,imgpath)craw3(url)

注意:

requests库封装的接口只提供了浏览的功能,如果想要下载的话需要提供stream这样的参数,stream设置成true才能和网页建立一个链接,再用response.content这样的方法进行下载

3.翻页功能

import osimport shutilfrom bs4 import BeautifulSoup # 编码解码库import requests # 请求访问库# 用 dict 定义http头,伪装浏览器访问,避免被拒之门外headers = {    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",    "Accept-Language": "zh-CN,zh;q=0.8",    "Connection": "close",    "Cookie": "_gauges_unique_hour=1; _gauges_unique_day=1; _gauges_unique_month=1; _gauges_unique_year=1; _gauges_unique=1",    "Referer": "https://www.infoq.com/presentations",    "Upgrade-Insecure-Requests": "1",    "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.98 Safari/537.36 LBBROWSER"}url='https://www.infoq.com/presentations'def download_pic(img_url,image_localpath):    response=requests.get(img_url,stream=True)    if response.status_code==200:        with open (image_localpath,'wb') as f:            response.raw.deconde_content=True            shutil.copyfileobj(response.raw,f)#shutil库用来配合requests模块,他把response返回的内容写入到文件中#获取演讲图片,requests库封装的接口只提供了浏览的功能,如果想要下载的话需要提供stream这样的参数,stream设置成true才能和网页建立一个链接,再用response.content这样的方法进行下载def craw3(url):    response=requests.get(url,headers=headers)    soup=BeautifulSoup(response.text,'lxml')    for pic_href in soup.find_all('div',class_='card__content'):        for pic in pic_href.find_all('img'):            imgurl=pic.get('src')            dir=os.path.join('.')            filename=os.path.basename(imgurl)#该功能将链接地址只获取图片名称            imgpath=os.path.join(dir,filename)            #http://a.com/b/c.png只获取c.png文件名称            #c.png在和路径结合            print('开始下载 %s'%imgurl)            download_pic(imgurl,imgpath)#craw3(url)j=0for i in range(12,46,12):    url='https://www.infoq.com/presentations'+str(i)    j+=1    print('第%d页'%j)craw3(url)

问题

考虑多线程实现

做梦梦到了海豚在跳跃

爬虫爬取链接中文字_使用爬虫技术爬取图片链接并下载图片相关推荐

  1. python爬取网店数据_如何爬虫天猫店铺数据python

    展开全部 本编博客是关于爬取天猫店铺中指定店铺的所有商品基础信息的爬虫,爬虫运行只需要输入相应店32313133353236313431303231363533e78988e69d8331333365 ...

  2. python 爬取直播弹幕视频_调用斗鱼API爬取直播间弹幕信息(用户昵称及弹幕内容)...

    调用斗鱼API爬取直播间弹幕信息(用户昵称及弹幕内容) 查看<斗鱼弹幕服务器第三方接入协议v1.4.1>,了解斗鱼API的使用方法,即如何连接斗鱼弹幕服务器.维持连接及获取弹幕信息 Pyt ...

  3. beautifulsoup爬取网页中的表格_Python爬虫爬取BT之家找电影资源

    一.写在前面 最近看新闻说圣城家园(SCG)倒了,之前BT天堂倒了,暴风影音也不行了,可以说看个电影越来越费力,国内大厂如企鹅和爱奇艺最近也出现一些幺蛾子,虽然目前版权意识虽然越来越强,但是很多资源在 ...

  4. python爬虫爬取京东商品评价_网络爬虫-爬取京东商品评价数据

    前段时间做商品评价的语义分析,需要大量的电商数据,于是乎就自己动手爬取京东的数据.第一次接触爬虫是使用selenium爬取CNKI的摘要,基于惯性思维的我仍然想用selenium+Firefox的方法 ...

  5. python爬取斗鱼鱼吧_[Python爬虫]使用Python爬取静态网页-斗鱼直播

    作者:宅必备 Python爱好者社区--专栏作者 一个会写Python的Oracle DBA 个人公众号:宅必备 公众号:Python爱好者社区 作者其他文章: 好久没更新Python相关的内容了,这 ...

  6. python爬取web漫画网站_[Python爬虫学习]利用selenuim爬取漫画网站

    注意事项 版本 Python版本为 Python-3.8.3 系统为 Windows10 浏览器为 Firefox-77.0 前置 \(selenium\) \(BeautifulSoup\) \(r ...

  7. python爬取付费隐藏内容_如何用python 爬取网页中隐藏的div内容?

    图片所在的html元素id叫 viewimg ,这个元素是由 view.js 当中的 loadview 函数创建的.该函数吧serverurl跟photosrc这个array里头的元素拼接,并把他设置 ...

  8. 编程python爬取网页数据教程_实例讲解Python爬取网页数据

    一.利用webbrowser.open()打开一个网站: >>> import webbrowser >>> webbrowser.open('http://i.f ...

  9. python爬取网页公开数据_如何用Python爬取网页数据

    使用Python爬取网页数据的方法: 一.利用webbrowser.open()打开一个网站:>>> import webbrowser >>> webbrowse ...

最新文章

  1. 采购订单审批/取消审批程序(BAPI_PO_RESET_RELEASE、BAPI_PO_RELEASE)
  2. pandas中的sample方法
  3. springboot 启动器和监听器的加载
  4. 【网络安全工程师面试题】数据库存在的漏洞及渗透方法
  5. 代码编辑器VS Code的“Chromium”版来啦:安全、开源、保护你的隐私
  6. 朗读评价语言集锦_运用朗读评价语
  7. #C++初学记录(算法测试2019/5/5)(深度搜索)
  8. Python学习笔记25:接口类、抽象类和封装
  9. 【计算机网络】网络层 : RIP 协议 ( 路由选择协议分类 | RIP 协议简介 | 信息交换 | 距离向量算法 | 计算示例 )★
  10. 用实际程序来测试udp sendto函数的最大发包大小------为什么是65507?
  11. 2022智博会| 麒麟信安携操作系统亮相华为展台
  12. 大数据基础课02 从萌芽到爆发,大数据经历了哪些发展?
  13. win10 计算机重启,Win10关机自动重启的三种解决方法
  14. 芥川龙之介《烟草与魔鬼》
  15. R语言多元Logistic逻辑回归 应用案例
  16. Placing Lampposts ,UVa 10859 树形dp
  17. PHP与FLASH之间的交互
  18. 流媒体视频服务:快速搭建一个简单的流媒体视频服务(一)
  19. 数据预处理之数据离散化
  20. IE里的探索之定制浏览器好助手

热门文章

  1. css3学习 理论之渐变
  2. 用户目录更改后显示为-bash-3.1#
  3. [导入]失败的软件实训课
  4. 【深度学习】我的第一个基于TensorFlow的卷积神经网络
  5. ACE_Proactor UDP V2.0
  6. http接口和webservice接口的区别
  7. uboot-spl编译流程
  8. Zynq UltraScale + MPSoC示例设计 - 在64位Linux上执行32位应用程序
  9. Linux系统检测命令有哪些
  10. shell脚本一键安装nginx