Python爬虫学习

一、查看

1、查看页面源代码是否有相关信息
2、一般得图片都包含子页面链接
3、提取子页面链接
4、获取下载链接

二、具体实现

import requests
from bs4 import BeautifulSoup
import time
domain='https://unsplash.com/'
url='https://unsplash.com/t/3d-renders'
resp=requests.get(url)
#print(resp.text
resp.encoding='utf-8' #解码
wangzhi_list=[]
res=resp.text
obj=re.compile(r'</div></div></div></a></div></div></figure>.*?href="(?P<lianjie>.*?)"',re.S)
rrr=obj.finditer(res)
for i in rrr:
    #print(i.group('lianjie'))
    wangzhi=domain+i.group('lianjie') #合成网址
    #print(wangzhi)
    wangzhi_list.append(wangzhi)
#拿到子页面的源代码
for lj in wangzhi_list:
    resp1 = requests.get(lj)
    resp1.encoding = 'utf-8'
    page = BeautifulSoup(resp1.text,"html.parser")
    h=page.find("div",attrs={"class":"mef9R"})#class是python关键字
    dat=h.find('a')
    dat1=dat.get('href')
    #下载图片 请求地址
    print(dat1)
    src=requests.get(dat1)
 #   print('1')
    mingzi=dat1.split("/")
   # print(mingzi[4])
    # img_resp.content #这里拿到的是字节
    #保存图片
    with open("img/"+mingzi[4],mode='wb') as f :
        f.write(src.content)
        print("over")
        time.sleep(1)
print('allover')
f.close()

在这里插入图片描述
代码和前几章都差不多,就是复制了一点

总结

Re解析和bs4解析,我觉得这两种解析方式各有各的好处,re解析很简单,可以用于服务器渲染和客户端渲染,而bs4解析就是一个标签 通过属性进行筛选确定,bs4解析在客户端渲染的时候并不是很好用

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐