需要传入的参数:网站的域名以及请求头
如果想获取文本数据,那么久调用requests中内置的text方法返回文本数据,如果想要获取二进制数据则使用内置的content方法。
3.获取数据后使用bs4对页面数据进行提取
因为一个页面包含的数据太多了,例如:搜索框、页面广告、ICP备案号等等。但是我们只是想要获取页面中的表情包图片,那该怎么办呢?这时候我们就需要用到一个非常好用的第三方包:bs4
使用方法:
1.在浏览器中按住f12调出开发者工具,点击Elements,之后点击元素选择器(左边的小箭头),之后选中页面上的图片,左键点击。浏览器就会帮助我们定位图片所在html代码的位置
2.看到被选中的标签后,查看当前图片的元素标签,当前标签是img,观察当前标签中的属性,有一个class属性,复制该属性的值
3.调用方法:find_all(‘img’, class_=‘ui image lazy’),调用之后会返回图片标签的列表
4.对列表进行循环,将img标签中的data-original属性的值提取出来
for i in img_list:
image_url = i[‘data-original’]
5.提取完成之后将会获得当前页面所有的图片标签,我们对当前获取的链接进行二次请求并使用python内置的with open方法将图片数据下载到本地
with open(‘./’ + ‘图片名称’ + ‘文件后缀名’, ‘wb’) as f:
image_data = requests.get(image_url, headers=headers).content
f.write(image_data)
至此,一个简单的微信表情包爬虫就制作完成。
import os
import requests
from bs4 import BeautifulSoup
if not os.path.exists(‘./images/’):
os.mkdir(‘./images/’)
headers = {
‘User-Agent’: ‘Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36’
}
url = ‘https://fabiaoqing.com/biaoqing/lists/page/1.html’
response = requests.get(url, headers=headers).text
‘’’
lxml: html解析库,因为python和html两者没有关系
python没有办法直接控制html代码
我们就需要使用lxml这个库将html代码转成python对象
需要大家去下载 pip install lxml
‘’’
soup = BeautifulSoup(response, ‘lxml’)
img_list = soup.find_all(‘img’, class_=‘ui image lazy’)
for img in img_list:
img_url = img[‘data-original’]
img_title = img[‘title’]
print(img_url, img_title)
try:
with open(‘./images/’ + img_title + os.path.splitext(img_url)[-1], ‘wb’) as f:
‘’’
因为一张图片是二进制数据
如果我们使用text文本形式返回
会对文件造成破坏
使用content去返回原始数据
‘’’
image = requests.get(img_url, headers=headers).content
写入二进制数据 image这个变量是存储requests返回的二进制数据的
f.write(image)
print(‘保存成功:’, img_title)
except:
pass
粉丝专属福利
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注Python)
9.png)
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注Python)