предисловие
Используйте Python для обхода файлов ресурсов любой веб-страницы, таких как изображения, аудио и видео; обычной практикой является запрос HTML веб-страницы для получения необходимых ресурсов с помощью XPath или регулярности. инструментальное программное обеспечение, которое может сканировать мультимедийные файлы ресурсов одним щелчком мыши; но следует отметить, что сканирование файлов ресурсов здесь предназначено только для существующих файлов HTML, если требуется второй запрос, его нельзя сканировать, например, музыку Kugou. интерфейс воспроизведения, потому что нужно сделать универсальный инструмент, чтобы соответствовать различным веб-сайтам! ! ! 😀😀😀
Основным толчком здесь является сканирование изображений, и некоторые люди, которым нужны графические материалы, могут ввести URL-адрес для сканирования одним щелчком мыши!
Так же при сканировании видео магнитная ссылка будет сканироваться вниз! Вы можете использовать сторонние инструменты загрузки для загрузки! 🤗
код
Сканировать файлы ресурсов
Единственное, что здесь нужно пояснить, так это то, что некоторые ресурсы изображений представляют собой не url-ссылки, а формат data:image, который нужно конвертировать и хранить здесь!
def getResourceUrlList(url ,isImage, isAudio, isVideo):
global imgType_list, audioType_list, videoType_list
imageUrlList = []
audioUrlList = []
videoUrlList = []
url = url.rstrip().rstrip('/')
htmlStr = str(requestsDataBase(url))
# print(htmlStr)
Wopen = open('reptileHtml.txt','w')
Wopen.write(htmlStr)
Wopen.close()
Ropen = open('reptileHtml.txt','r')
imageUrlList = []
for line in Ropen:
line = line.replace("'", '"')
segmenterStr = '"'
if "'" in line:
segmenterStr = "'"
lineList = line.split(segmenterStr)
for partLine in lineList:
if isImage == True:
# 查找图片
if 'data:image' in partLine:
base64List = partLine.split('base64,')
imgData = base64.urlsafe_b64decode(base64List[-1] + '=' * (4 - len(base64List[-1]) % 4))
base64ImgType = base64List[0].split('/')[-1].rstrip(';')
imageName = zfjTools.getTimestamp() + '.' + base64ImgType
imageUrlList.append(imageName + '$==$' + base64ImgType)
# 查找图片
for imageType in imgType_list:
if imageType in partLine:
imgUrl = partLine[:partLine.find(imageType) + len(imageType)].split(segmenterStr)[-1]
# 修复URL
imgUrl = repairUrl(imgUrl, url)
sizeType = '_{' + 'size' + '}'
if sizeType in imgUrl:
imgUrl = imgUrl.replace(sizeType, '')
imgUrl = imgUrl.strip()
if imgUrl.startswith('http://') or imgUrl.startswith('https://') and imgUrl not in imageUrlList:
imageUrlList.append(imgUrl)
else:
imgUrl = ''
if isAudio == True:
# 查找音频
for audioType in audioType_list:
if audioType in partLine or audioType.lower() in partLine:
audioType = audioType.lower() if audioType.lower() in partLine else audioType
audioUrl = partLine[:partLine.find(audioType) + len(audioType)].split(segmenterStr)[-1]
# 修复URL
audioUrl = repairUrl(audioUrl, url)
if audioUrl.startswith('http://') or audioUrl.startswith('https://') and audioUrl not in audioUrlList:
audioUrlList.append(audioUrl)
else:
audioUrl = ''
if isVideo == True:
# 查找视频
for videoType in videoType_list:
if videoType in partLine or videoType.lower() in partLine:
videoType = videoType.lower() if videoType.lower() in partLine else videoType
videoUrl = partLine[:partLine.find(videoType) + len(videoType)].split(segmenterStr)[-1]
# 修复URL
videoUrl = repairUrl(videoUrl, url)
if videoUrl.startswith('http://') or videoUrl.startswith('https://') or videoUrl.startswith('ed2k://') or videoUrl.startswith('magnet:?') or videoUrl.startswith('ftp://') and videoUrl not in videoUrlList:
videoUrlList.append(videoUrl)
else:
videoUrl = ''
return (imageUrlList, audioUrlList, videoUrlList)
Сканирование пользовательских узлов
# 统配节点爬取
def getNoteInfors(url, fatherNode, childNode):
url = url.rstrip().rstrip('/')
htmlStr = requestsDataBase(url)
Wopen = open('reptileHtml.txt','w')
Wopen.write(htmlStr)
Wopen.close()
html_etree = etree.HTML(htmlStr)
dataArray = []
if html_etree != None:
nodes_list = html_etree.xpath(fatherNode)
for k_value in nodes_list:
partValue = k_value.xpath(childNode)
if len(partValue) > 0:
dataArray.append(partValue[0])
return dataArray
программное обеспечение
Адрес загрузки программного обеспеченияgit ee.com/flying 1128/ZF J…
Используйте обучающие видео
Сканирование ресурсов: ссылка:Disc.Baidu.com/Yes/1Think 9If F_Also…Пароль: 1zpg
Сканирование узлов: Ссылки:disk.baidu.com/yes/1EB ww YT Джо…Пароль: cosa
Используйте скриншоты следующим образом:
заключительные замечания
Приветствуем ваши ценные комментарии и предложения!!!!🤗🤗🤗