Python3 获取网络图片并且保存到本地

  1. import requests
  2. from bs4 import BeautifulSoup
  3. from urllib import request
  4. import sys
  5. import re
  6. import os
  7.  
  8. def getNews(title,url,m):
  9. Hostreferer = {
  10. 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36'
  11. }
  12. req = request.Request(url)
  13. response = request.urlopen(req)
  14. #过滤非utf-8的网页新闻
  15. response = response.read().decode('utf-8',"ignore")
  16. soup = BeautifulSoup(response,'lxml')
  17. tag = soup.find('div',class_='article')
  18. if tag == None:
  19. return#获取文章内容
  20. rep = re.compile("[\s+\.\!\/_,$%^*(+\"\']+|[+<>?、~*()]+")
  21. title = rep.sub('',title)
  22. title = title.replace(':',':')
  23. filename = sys.path[0]+"/news/"+title+".txt"
  24. with open(filename,'w',encoding='utf8') as file_object:
  25. file_object.write("网址:"+url)
  26. file_object.write("\n")
  27. file_object.write(title)
  28. file_object.write(tag.get_text())
  29.  
  30. i = 0
  31. for image in tag.find_all('div','img_wrapper'):
  32. title_img = title +str(i)
  33. # 保存图片
  34. #判断目录是否存在
  35. if (os.path.exists(sys.path[0]+"/news/"+title)):
  36. pass
  37. else:
  38. #不存在,则新建目录
  39. os.mkdir(sys.path[0]+"/news/"+title)
  40. os.chdir(sys.path[0]+"/news/"+title)
  41. file_name = "http://news.***.com.cn/"+image.img.get('src').replace('//','')
  42. html = requests.get(file_name, headers=Hostreferer)
  43. # 图片不是文本文件,以二进制格式写入,所以是html.content
  44. title_img = title_img +".jpg"
  45. f = open(title_img, 'wb')
  46. f.write(html.content)
  47. f.close()
  48. i+=1
  49.  
  50. print('成功爬取第', m,'个新闻',title)
  51. return 0

Python3 获取网络图片并且保存到本地的更多相关文章

  1. PHP获取网络图片并保存在本地目录

    PHP获取网络图片并保存在本地目录思路: 代码如下: function file_exists_S3($url) { $state = @file_get_contents($url,0,null,0 ...

  2. JAVA获取网络图片并保存到本地(随机图片接口)

    import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileOutputStream; import j ...

  3. php 获取远程图片保存到本地

    php 获取远程图片保存到本地 使用两个函数 1.获取远程文件 2.把图片保存到本地 /** * 获取远程图片并把它保存到本地 * $url 是远程图片的完整URL地址,不能为空. */ functi ...

  4. Java--多线程读取网络图片并保存在本地

    本例用到了多线程.时间函数.网络流.文件读写.正则表达式(在读取html内容response时,最好不要用正则表达式来抓捕html文本内容里的特征,因为服务器返回的多个页面的文本内容不一定使用相同的模 ...

  5. Python配合BeautifulSoup读取网络图片并保存在本地

    本例为Python配合BeautifulSoup读取网络图片,并保存在本地. BeautifulSoup可代替正则表达式,更好地解析Html文本,获取其中的指定内容,如Tag.Property等 # ...

  6. pyhton 从web获取json数据 保存到本地然后再读取

    从web中获取json数据直接进行处理总认为太慢.主要是从web中获取获取数据的过程有点慢. 所以就在想 假设先利用空暇时间把json数据获取并保存到本地,然后再从本地文件里读取和操作.应该就要快非常 ...

  7. Android 获取屏幕截图 和保存到本地的sd卡路径下

    /** * 获取和保存当前屏幕的截图 */ private void GetandSaveCurrentImage() { //1.构建Bitmap WindowManager windowManag ...

  8. 从URL获取图片并保存到本地

    /// <summary> /// HttpWebRequest Property /// </summary> /// <param name="fileNa ...

  9. JAVA 获取网页源代码保存到本地文件

    package httpget; import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundExce ...

随机推荐

  1. return 通过文件后缀名得到的函数字符串

    <?php//图片处理工具类class Image{//属性private $thumb_width; //缩略图的宽private $thumb_height;//错误属性public $th ...

  2. HDU-1394 Minimum Inversion Number(线段树求逆序数)

    Minimum Inversion Number Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Ot ...

  3. Ubuntu 下 kdevelop下 怎么向主函数传递参数

    1.打开工程 2.点击窗口上的运行”--“配置启动器” 3.左栏选择要传递参数的工程名,在参数一栏中,输入参数“ubuntu.png”,再输入“工作目录”.点击OK,运行就可以了.

  4. 计蒜客 31460 - Ryuji doesn't want to study - [线段树][2018ICPC徐州网络预赛H题]

    题目链接:https://nanti.jisuanke.com/t/31460 Ryuji is not a good student, and he doesn't want to study. B ...

  5. POJ 2653 - Pick-up sticks - [枚举+判断线段相交]

    题目链接:http://poj.org/problem?id=2653 Time Limit: 3000MS Memory Limit: 65536K Description Stan has n s ...

  6. Spacy 使用

    # 前提是必须安装: python -m spacy download ennlp = spacy.load('en')text = u"you are best. it is lemmat ...

  7. TensorFlow基础1:reduce_sum()函数和reduce_mean()函数

    https://blog.csdn.net/chengshuhao1991/article/details/78545723 在计算损失时,通常会用到reduce_sum()函数来进行求和,但是在使用 ...

  8. Centos7网桥配置

    CentOS 的网桥虽然配置了很多次,不过总是记不住那几条,还是简单记录下,增加网桥可以通过brctl命令,但是为了简便快捷,直接生成配置文件即可 1.在/etc/sysconfig/network- ...

  9. XtraBackup完整备份与增量备份的原理

    MySQL数据库实现备份的操作包括完整备份和增量备份等,本文我们主要介绍一下增量备份和完整备份的原理,接下来我们就一起来了解一下这部分内容. 完整备份的原理: 对于InnoDB,XtraBackup基 ...

  10. inter x86 emulator accelerator(HAXM installer) not compatible with windows

    在SDK manager中遇到如下错误:这将导致AVD后期运行和启动方面的问题. 解决办法: 在如下的网址里面下载haxm-windows_v6_2_0这个文件的压缩包,自己手动安装即可.网站如下:点 ...