python中使用requests库获取昵图网图片,且正则中re.S的用法
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的用法相关推荐
- python使用requests库下载单张图片的简单示例
python使用requests库下载单张图片的简单示例 简要说明 代码示例 简要说明 下载图片的核心代码如下: res = requests.get(url=img_url, headers=hea ...
- python之利用requests库爬取西刺代理,并检验IP的活性
用爬虫爬取某个网站的数据时,如果用一个IP频繁的向该网站请求大量数据,那么你的ip就可能会被该网站拉入黑名单,导致你不能访问该网站,这个时候就需要用到IP动态代理,即让爬虫爬取一定数据后更换IP来继续 ...
- python爬虫基础-requests库
python爬虫基础-requests库 python爬虫 1.什么是爬虫? 通过编写程序,模拟浏览器上网,然后让其去互联网上抓取数据的过程. 注意:浏览器抓取的数据对应的页面是一个完整的页面. 为什 ...
- python 3 关于requests库的 text / content /json
最近在爬SDFDA的数据,刚开始用urllib.request 库,一直连不到数据 : 后来通过CHROME浏览器的F12,发现该 网站用的是JSON格式{}'Content-Type': 'appl ...
- Python使用Pillow(PIL)库实现验证码图片
Python使用Pillow(PIL)库实现验证码图片 Pillow库有很多用途,本文使用Pillow来生成随机的验证码图片. Pillow的用法参考:https://blog.csdn.net/we ...
- python怎么安装requests库-python怎么安装requests库
requests是python实现的简单易用的HTTP库,使用起来比urllib简洁很多 因为是第三方库,所以使用前需要cmd安装pip install requests 安装完成后import一下, ...
- python.freelycode.com-不完整的Http读取和Python中的Requests库
Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. requests库可以说是Python中使用最广泛的HTTP库了.然而,我相信大多数用户并不知道的是,re ...
- python使用requests库获取网页的内容
网站地址:https://www.k374.com/index.php 网站内容如下: 第一步导入requests库,使用它访问网页获取到源代码 内容如下: import requests r = r ...
- Python中安装requests库总是报错的解决方法
今天,要安装requests库. 文章上说,直接在终端窗口执行如下命令就行. pip install requests 1 然而我还是失败了. 在电脑前坐了一个小时,找过很多解决方法的博客,都无济于事 ...
最新文章
- UVA1396 Most Distant Point from the Sea(AM - ICPC - Tokyo - 2007)(计算几何,半平面交 + 二分答案)
- 以下可以采用python语言保留字的是-模拟试卷C单项选择题
- Flex3.0 图片浏览器(平移、光标中心点放缩、任意角度旋转)
- Flink从入门到精通100篇(二十一)-万字长文详解 Flink 中的 CopyOnWriteStateTable
- dataloader 源码_pytorch :: Dataloader中的迭代器和生成器应用
- python查看list_reverseiterator object中的内容
- android河流曲线控件,London | Riverwalk,河流曲线的黄金比例
- python有限元传热求解_二维稳态热传导基本方程的有限元求解(2)
- 如何检查linux 下是否安装java(jdk)环境
- Atitit 管理体制 编号制 1.数字编码有何好处 数字编码有何好处 1、归档整理方便,特别在电子管理系统中; 2、数字编码更容易进行管理,无论谁进行的编码都是一样,管理方便,人员无论怎么换,程序
- Head First SQL Your Brain on SQL读书笔记
- Deconstructing laws of accessibility and facility distribution in cities
- html打开页面时在img标签加域名,Html中的img标签 加载失败
- 利用百度地图API进行车辆查询并用鼠标拾点获取经纬度
- 高仿微信上划取消录音
- github访问不了怎么办
- Antlr4 区分“减号”运算符和负号
- 一文读懂天翼物联网平台(AIoT)
- PDF用什么软件可以修改
- elasticsearch数据迁移
热门文章
- 如何找出zeppelin的登入帳號密碼?
- CSS:不可思议的border属性
- 转移到ios下载安卓_转移到iOS下载-转移到iOS安装器(安卓转移苹果软件)下载v2.10.0 安卓版-当易网...
- golang学习之negroni对于第三方中间件的使用分析
- 推荐一个开源的LMS系统ILIAS
- JpGrap引入以及中文乱码问题
- python写爬虫要记的单词_Python爬虫入门案例:获取百词斩已学单词列表
- oracle付款汇兑损益怎么产生,汇兑损益产生的原因及会计处理原则是什么
- 全民热衷“合成大西瓜”,游戏外挂上热搜,不愧是程序员!
- 自从用了低代码开发,开发效率提升10倍