Python 官方文档:入门教程 => 点击学习
爬取百度图片并显示 引言一、图片显示二、代码详解2.1 得到网页内容2.2 提取图片url2.3 图片显示 三、完整代码 引言 爬虫(Spider),又称网络爬虫(WEB Crawle
爬虫(Spider),又称网络爬虫(WEB Crawler),是一种自动化程序,可以自动地浏览互联网上的网站,并从中抓取数据。它主要通过 Http / https 协议访问网页,并将访问到的网页内容进行解析和分析,从而提取有用的数据,例如新闻、评论、图片、视频等。爬虫在搜索引擎、大数据采集、信息监测和分析等领域都有广泛的应用。
Pyhon有很多库可以实现爬虫功能,如python中的requests
库是一个第三方HTTP客户端库,它提供了一种更简单、更人性化的方式来发送HTTP/1.1请求。它允许我们发送HTTP/1.1请求以及各种HTTP方法,如GET、POST、PUT、DELETE、PATCH等。使用requests库,我们可以轻松地向外部api发送HTTP请求,并获取请求的响应。requests库提供了很多高级功能,比如会话管理、SSL证书验证、HTTP代理支持、文件上传等等。
本文旨在介绍使用Python中的requests
库爬取百度图片并显示的操作方法。该操作较为简单,适合初学者入门。
使用pip可以很容易地安装requests库:pip install requests
需要导入的库:
import requestsfrom PIL import Imagefrom io import BytesIO
requests
库用于获取网络数据,PIL
库用于处理图像数据,BytesIO
用于将二进制数据转换为图像数据。
主要步骤:
headers
,防止网页拒绝被访问headers = {'user-agent': 'Mozilla/5.0 (windows NT 10.0; WOW64) AppleWebKit/537.36 (Khtml, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3861.400 QQBrowser/10.7.4313.400'}
queryWord
和word
,即百度图片查询的关键词,本文以tupian
为例 (亦可设置为汉子)url = ('https://image.baidu.com/search/acJSON?' 'tn=resultjson_com&logid=9047316633247341826&ipn=rj&ct=201326592&is=&fp=result&' 'queryWord=tupian&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=&z=&ic=&hd=&latest=©right=&' 'word=tupian&s=&se=&tab=&width=&height=&face=&istype=&qc=&nc=1&fr=&expermode=&force=&' 'pn=30&rn=30&gsm=1e&1616935040863=')
requests
或其它库
获取网页内容即可,这里使用requests
库发送GET请求并传递请求头和参数,获取响应的网页数据。import requestsresponse = requests.get(url=url, headers=headers)response.encoding = 'utf-8'
根据网页图片链接格式,提取图片的链接,网页内容中的图片链接以"thumbURL"开始:
import reimgs =[]reg = re.compile('"thumbURL":"(.+?\.jpg)"')imgs.extend(reg.findall(response))print(imgs)
获取图片链接里的内容,并显示
获取到的img是二进制字符,先试用BytesIO
读取后显示
img = requests.get(url=imgs[0], headers=headers).contentfrom PIL import Imagefrom io import BytesIObytes_stream = BytesIO(img)img = Image.open(bytes_stream)img.show()
至此,成功地使用requests库爬取了百度图片,并将其显示出来。需要注意的是,此处仅为简单的入门示例,对于复杂的网站爬取和数据解析,需要使用更为专业的工具和技术。
# 1.得到网页内容headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3861.400 QQBrowser/10.7.4313.400'}url = ('https://image.baidu.com/search/acjson?' 'tn=resultjson_com&logid=9047316633247341826&ipn=rj&ct=201326592&is=&fp=result&' 'queryWord=tupian&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=&z=&ic=&hd=&latest=©right=&' 'word=tupian&s=&se=&tab=&width=&height=&face=&istype=&qc=&nc=1&fr=&expermode=&force=&' 'pn=30&rn=30&gsm=1e&1616935040863=')import requestsresponse = requests.get(url=url, headers=headers)response.encoding = 'utf-8'response = response.text#print(response)# 2.提取图片urlimport reimgs =[]reg = re.compile('"thumbURL":"(.+?\.jpg)"')imgs.extend(reg.findall(response))print(imgs)# 3.显示图片img = requests.get(url=imgs[0], headers=headers).contentfrom PIL import Imagefrom io import BytesIObytes_stream = BytesIO(img)img = Image.open(bytes_stream)img.show()
来源地址:https://blog.csdn.net/qq_38204686/article/details/132793788
--结束END--
本文标题: python 使用requests爬取百度图片并显示
本文链接: https://lsjlt.com/news/423306.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0