python中使用requests库获取图片,且正则表达式中re.S的用法以及r.text和r.content的区别和搜索关键词

这里我获取的是昵图网的图片
代码附上
这里我获取的是2020的图片

import re
import requests
url="http://soso.nipic.com/?q=2020"
r=requests.get(url)
html=r.text
#listm=re.findall(r'<img src="(.*?)"',html,re.S)  #这是第一次获取的src的属性
listm=re.findall(r'data-original="(.*?.jpg)"',html,re.S) #第二次获取的是data-original的属性
i=1
for key in listm:print(key)pic=requests.get(key)path="dogPic\\"+str(i)+".jpg" #前面冒号里是你要保存的路径 ,后面是改了个名字并以jpg为后缀保存,我第一次用的giffp=open(path,"wb")fp.write(pic.content) #这个、content可以看我的另一篇文章fp.close()i+=1

附上结果
这是我第一次获取src里的地址的得到的结果

这是第二次获取data-original里的地址得到的的结果

第二次用data-original的属性才获取到图片的原因是:本来src储存的是图片的真正地址,但是用了dtata-original属性给图片做了延迟加载处理,所以图片的真正的地址存储在data-original里里面,所以获取的时候要擦亮眼睛哦

1.关键词

这里的url是"http://soso.nipic.com/?q=2020"
这里的q=关键词,这个关键词是你搜索的关键词,我这里搜索的是2020,如果你想要获取的是上海的图片,把2020改成上海即可,即
url=”http://soso.nipic.com/?q=上海"
当然要注意有的网站的关键词是keyword=关键词

2.正则中re.S的用法

它表示“.”(不包含外侧双引号,下同)的作用扩展到整个字符串,包括“\n”
举个例子

import re
a = '''asdfsafhellopass:158899worldcfghjm'''
b = re.findall('hello(.*?)world',a)
c = re.findall('hello(.*?)world',a,re.S)
print 'b is ' , b
print 'c is ' , c

结果为:

b is  [] #这里的空是因为找不到第三行的world,即没有找到匹配的内容
c is  ['pass:\n\t158899\n\t'] #这里由于使用了 re.S

不知道大家注意到没有c的结果获取出来没有hello和word,这是另一个知识点,点击看另一篇(.*?用法与r.text和r.content的用法)

总结
“.”的作用是匹配除“\n”以外的任何字符,
不加re.S,“.”不匹配换行符,所以只在一行中匹配,不会换行,一次匹配一行
而加了re.S,可以识别换行符"\n"可以在整个字符串匹配

python中使用requests库获取昵图网图片,且正则中re.S的用法相关推荐

  1. python使用requests库下载单张图片的简单示例

    python使用requests库下载单张图片的简单示例 简要说明 代码示例 简要说明 下载图片的核心代码如下: res = requests.get(url=img_url, headers=hea ...

  2. python之利用requests库爬取西刺代理,并检验IP的活性

    用爬虫爬取某个网站的数据时,如果用一个IP频繁的向该网站请求大量数据,那么你的ip就可能会被该网站拉入黑名单,导致你不能访问该网站,这个时候就需要用到IP动态代理,即让爬虫爬取一定数据后更换IP来继续 ...

  3. python爬虫基础-requests库

    python爬虫基础-requests库 python爬虫 1.什么是爬虫? 通过编写程序,模拟浏览器上网,然后让其去互联网上抓取数据的过程. 注意:浏览器抓取的数据对应的页面是一个完整的页面. 为什 ...

  4. python 3 关于requests库的 text / content /json

    最近在爬SDFDA的数据,刚开始用urllib.request 库,一直连不到数据 : 后来通过CHROME浏览器的F12,发现该 网站用的是JSON格式{}'Content-Type': 'appl ...

  5. Python使用Pillow(PIL)库实现验证码图片

    Python使用Pillow(PIL)库实现验证码图片 Pillow库有很多用途,本文使用Pillow来生成随机的验证码图片. Pillow的用法参考:https://blog.csdn.net/we ...

  6. python怎么安装requests库-python怎么安装requests库

    requests是python实现的简单易用的HTTP库,使用起来比urllib简洁很多 因为是第三方库,所以使用前需要cmd安装pip install requests 安装完成后import一下, ...

  7. python.freelycode.com-不完整的Http读取和Python中的Requests库

    Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. requests库可以说是Python中使用最广泛的HTTP库了.然而,我相信大多数用户并不知道的是,re ...

  8. python使用requests库获取网页的内容

    网站地址:https://www.k374.com/index.php 网站内容如下: 第一步导入requests库,使用它访问网页获取到源代码 内容如下: import requests r = r ...

  9. Python中安装requests库总是报错的解决方法

    今天,要安装requests库. 文章上说,直接在终端窗口执行如下命令就行. pip install requests 1 然而我还是失败了. 在电脑前坐了一个小时,找过很多解决方法的博客,都无济于事 ...

最新文章

  1. UVA1396 Most Distant Point from the Sea(AM - ICPC - Tokyo - 2007)(计算几何,半平面交 + 二分答案)
  2. 以下可以采用python语言保留字的是-模拟试卷C单项选择题
  3. Flex3.0 图片浏览器(平移、光标中心点放缩、任意角度旋转)
  4. Flink从入门到精通100篇(二十一)-万字长文详解 Flink 中的 CopyOnWriteStateTable
  5. dataloader 源码_pytorch :: Dataloader中的迭代器和生成器应用
  6. python查看list_reverseiterator object中的内容
  7. android河流曲线控件,London | Riverwalk,河流曲线的黄金比例
  8. python有限元传热求解_二维稳态热传导基本方程的有限元求解(2)
  9. 如何检查linux 下是否安装java(jdk)环境
  10. Atitit 管理体制 编号制 1.数字编码有何好处 数字编码有何好处 1、归档整理方便,特别在电子管理系统中; 2、数字编码更容易进行管理,无论谁进行的编码都是一样,管理方便,人员无论怎么换,程序
  11. Head First SQL Your Brain on SQL读书笔记
  12. Deconstructing laws of accessibility and facility distribution in cities
  13. html打开页面时在img标签加域名,Html中的img标签 加载失败
  14. 利用百度地图API进行车辆查询并用鼠标拾点获取经纬度
  15. 高仿微信上划取消录音
  16. github访问不了怎么办
  17. Antlr4 区分“减号”运算符和负号
  18. 一文读懂天翼物联网平台(AIoT)
  19. PDF用什么软件可以修改
  20. elasticsearch数据迁移

热门文章

  1. 如何找出zeppelin的登入帳號密碼?
  2. CSS:不可思议的border属性
  3. 转移到ios下载安卓_转移到iOS下载-转移到iOS安装器(安卓转移苹果软件)下载v2.10.0 安卓版-当易网...
  4. golang学习之negroni对于第三方中间件的使用分析
  5. 推荐一个开源的LMS系统ILIAS
  6. JpGrap引入以及中文乱码问题
  7. python写爬虫要记的单词_Python爬虫入门案例:获取百词斩已学单词列表
  8. oracle付款汇兑损益怎么产生,汇兑损益产生的原因及会计处理原则是什么
  9. 全民热衷“合成大西瓜”,游戏外挂上热搜,不愧是程序员!
  10. 自从用了低代码开发,开发效率提升10倍