今天上课老师竟然要求爬取好看的图片。 噢,是你说的哦!!!
于是小卢马上开干,找到的好看的百度贴吧,嘻嘻,要知道 好看的图片贴吧可很多
明确需求:
# 利用正则表达式爬取百度贴吧中的图片
一翻操作终于得到了以下代码,并成功完成了需求
import requests
import re
import os
#创建一个文件夹,保存所有的图片
if not os.path.exists('./img'):
os.mkdir('./img')
# 1.指定url
url='https://tieba.baidu.com/p/6282290065?pn={}'
# 设置请求头
header= {
'User-Agent':'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Safari/537.36'
}
for pn in range(1, 9):
# 对应页码的url
new_url = url.format(pn)
page_text= requests.get(url=new_url,headers=header).text
print(page_text)
# 设置正则
ex= '<img class="BDE_Image" src="(.*?)" .*?>'
mg_src_list = re.findall(ex,page_text,re.S)
for src_url in mg_src_list:
img_data= requests.get(url=src_url,headers=header).content
img_name = src_url.split('/')[-1]
# print(img_name)
imgPath = './img/' + img_name
with open(imgPath, 'wb') as fp:
fp.write(img_data)
print(img_name, '下载成功!!!')
经过实践后,小卢举一反三,又想能不能看看糗事百科的呢?
于是有了下面的操作
# 利用正则表达式爬取糗事百科热图中的图片
import requests
import re
import os
from time import sleep
# 需求:爬取糗事百科中糗图板块下前三页的糗图图片
# 创建一个文件夹,保存所有的图片
if not os.path.exists('./img'):
os.mkdir('./img')
# 1.指定url
url = 'https://www.qiushibaike.com/imgrank/page/{}/'
# 设置请求头
headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36'
}
# 设置前3页的url
for i in range(0, 3):
new_url = url.format(i)
# 使用通用爬虫对url对应的一整张页面进行爬取
page_text = requests.get(url=new_url, headers=headers).text
sleep(2)
# 设置正则
# 使用聚焦爬虫将页面中所有的糗图进行解析/提取
ex = '<div class="thumb">.*?<img src="(.*?)" .*?>'
img_src_list = re.findall(ex, page_text, re.S)
print(img_src_list)
for src in img_src_list:
# 拼接出一个完整的图片url
src = 'https:' + src
# 发起图片的请求并获取响应
img_data = requests.get(url=src, headers=headers).content
# 设置图片名称
img_name = src.split('/')[-1]
# 设置图片保存地址
imgPath = './img/'+img_name
# 存储图片
with open(imgPath, 'wb')as f:
f.write(img_data)
print(img_name, '下载成功')
(水平有限,只求实现,大佬看着乐乐吧)
?
|