1.案例一:爬取豆瓣阅读所有书的出版社:案例代码如下:
import requests
import re
r = requests.get("http://read.douban.com/provider/all")
htmltext = r.text
# print(htmltext)
html = re.findall(r'<a href="/provider/63687123/"(.*?)</section>',htmltext,re.S)[0]
htmlchubanshe = re.findall(r'<div class="name"(.*?)</div>',html,re.S)
fh = open("E:\\Pythondemo\\Python-test\\PythonLX\\chubanshe.txt","w")
for cbs in htmlchubanshe:
print(cbs)
fh.write(cbs+"\n")
fh.close()
案例一的运行结果:(由于爬取内容多,只截取了其中的一部分) |
![]() |
2.案例二:爬取斗图啦网站的所有表情包:案例代码如下:
#获取网页
import requests
#正则表达式
import re
page = 0
while(page<500):
page+=1
r = requests.get("http://www.doutula.com/photo/list/?page=%d"%page)
htmltext = r.text
# print(htmltext)
html = re.findall(r'<ul class="list-group">(.*?)</ul>',htmltext,re.S)[0]
#print(html)
imgurl = re.findall(r'<img referrerpolicy="no-referrer" src="//www.doutula.com/img/loader.gif" style="width: 100%; height: 100%;" data-original="(.*?)".*?'
r'alt="(.*?)".*?class="img-responsive lazy image_dta"',html,re.S)
#print(imgurl)
for img in imgurl:
# print(img[0])
try:
title = img[1]
imgget = requests.get(img[0])
with open('img1/%s.jpg'%title,"wb") as openimg:
openimg.write(imgget.content)
except Exception as err:
print(err)
print("正在下载:%s"%title)
案例二的运行结果:(由于爬取内容多,只截取了其中的一部分) |
![]() |
备注:①:这个需要注意的是网页图片不是整体呈现给你,而是一页一页的,如果不使用while循环,运行的结果是它只爬取当页的内容,你想爬取第二页,解决办法只能是修改源代码(很错误的做法),而使用while循环就能解决上述面临的问题
②:由于网站的源代码是开源,不同的浏览器你可能得到的源代码是不一样的,这就需要你进行异常处理(本博主在爬取的过程中,其中几个图片的地址和大部分的地址不一样,程序在运行过程中,一遇到这些地址代码则终止程序,不会爬取下面符合条件的图片-----可以在我的博客里找到python进阶-----异常处理这篇文章,你会有所收获)
3.案例三:爬取美女照片:案例代码如下:(如有违规,联系博主,我会删除案例三)
import requests
import re
def guturl(num):
# drrik()
# 用get 请求访问一个网站
r = requests.get('https://www.suibianlu.com/meitu_%s/'%num)
# 编码 格式
r.encoding = 'utf-8'
# 以文本的格式输出
a = r.text
html = re.findall(r'<ul class="list-meizitu border pd5 mb10 clearfix">.*?</ul>', a, re.S)[0]
urll = re.findall(r'<img src="(.*?)"', html, re.S)
tilate = re.findall(r'alt="(.*?)"', html, re.S)
i= 0
for img in urll:
aaa = tilate[i]
i += 1
imgres = requests.get(img)
try:
with open('img/%s.jfif'%aaa,'wb') as aff:
aff.write(imgres.content)
except:
pass
print("正在下载:%s"%aaa)
# def drrik():
# for inn in range(15):
# os.mkdir('img/美图文件%s'%inn)
def ru():
for i in range(14):
guturl(i)
if __name__ == '__main__':
ru()
案例三的运行结果:(由于爬取内容多,只截取了其中的一部分) |
![]() |
备注:案例三如有违规我立马删!!!