Python百度图片爬虫

视频演示搜索B站“速光网络”

import requests # 首先导入库
import re
import os
# 设置默认配置
MaxSearchPage = 20 # 收索页数
CurrentPage = 1 # 当前正在搜索的页数
DefaultPath = "./百度图片" # 默认储存位置
NeedSave = 0 # 是否需要储存
# 图片链接正则和下一页的链接正则

def imageFiler(content): # 通过正则获取当前页面的图片地址数组
return re.findall('"objURL":"(.*?)"', content, re.S) # 获取.*?中URL

def nextSource(content): # 通过正则获取下一页的网址
next = re.findall(
'<div id="page">.*<a href="(.*?)" class="n">', content, re.S)[0]
print("---------" + "http://image.baidu.com" + next)
return next
# 爬虫主体

def spidler(source):
headers = {
'user-agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'}
content = requests.get(source, headers=headers).text # 通过链接获取内容
imageArr = imageFiler(content) # 获取图片数组
global CurrentPage
print("Current page:" + str(CurrentPage) +
"**********************************")
for imageUrl in imageArr:
print(imageUrl)
global NeedSave
if NeedSave: # 如果需要保存图片则下载图片,否则不下载图片
global DefaultPath
try:
# 下载图片并设置超时时间,如果图片地址错误就不继续等待了
# picture为返回的图片二进制数据
picture = requests.get(imageUrl, timeout=10).content
except:
print("Download image error! errorUrl:" + imageUrl)
continue
# 创建图片保存的路径

imageUrl = imageUrl.replace(
'/', '').replace(':', '').replace('?', '') # 将'/',':','?'替换为' '
pictureSavePath = DefaultPath+'/'+imageUrl+'.jpg'

if not os.path.exists(DefaultPath):
os.mkdir(DefaultPath)
try:
with open(pictureSavePath, 'wb') as fp:
fp.write(picture)
except:
continue

global MaxSearchPage
if CurrentPage < MaxSearchPage: # 继续下一页爬取
if nextSource(content):
CurrentPage += 1
# 爬取完毕后通过下一页地址继续爬取
spidler("http://image.baidu.com" + nextSource(content))
# 爬虫的开启方法
def beginSearch(page=1, save=0, savePath=".//百度图片"):
# (page:爬取页数,save:是否储存,savePath:默认储存路径)
global MaxSearchPage, NeedSave, DefaultPath
MaxSearchPage = page
NeedSave = save # 是否保存,值0不保存,1保存
DefaultPath = savePath # 图片保存的位置
key = input("请输入搜索关键词:")
StartSource = "http://image.baidu.com/search/flip?tn=baiduimage&ie=utf-8&word=" + \
str(key) + "&ct=201326592&v=flip" # 分析链接可以得到,替换其`word`值后面的数据来搜索关键词
spidler(StartSource)

# 调用开启的方法就可以通过关键词搜索图片了
beginSearch(page=30, save=1) # page=30是下载前30页,save=1保存图片

END
如本资源侵犯了您的权益,请联系投诉邮箱admin@wmphp.com进行举报!我们将在收到邮件的1个小时内处理完毕。 本站仅为平台,发布的资源均为用户投稿或转载!所有资源仅供参考学习使用,请在下载后的24小时内删除,禁止商用! Wmphp.com(完美源码)助力正版,如您有自己的原创产品,可以联系客服投稿,代理出售! Wmphp.com(完美源码)客服QQ:136882447 Wmphp.com(完美源码)商务电话(仅对企业客户/个人用户):15120086569 (微信同步) 请注意:本站不提供任何免费的技术咨询服务,为了节约时间,下载前 请确认自己会技术
完美源码 » Python百度图片爬虫
3494+

本站勉强运行

3673+

用户总数

690+

资源总数

0+

今日更新

2024-4-8

最后更新时间