热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python3多进程爬取__斗鱼主播__暴走漫画

通过python3进程池实现多进程爬虫,以下是爬虫简单实现斗鱼主播小姐姐暴走漫画主页源码main.py(主函数)#_*_coding:utf-8_*___author__zhaoz


通过python3进程池实现多进程爬虫,以下是爬虫简单实现




斗鱼主播小姐姐





暴走漫画主页



源码


main.py(主函数)


# _*_ coding: utf-8 _*_
__author__ = 'zhaozhao'
import deal_html
import coreData
import download_images
import re
import moreProcess
import managerDir
def main():
dest_url = input("请输入需要下载图片的网址:")
# dest_url = "https://www.youtube.com/"
# 获取存放下载图片的目录名称
url_file_name_before = re.search(r".*//.*?\.+(.*?)\.+[^\.]*", dest_url)
url_file_name = url_file_name_before.group(1)
coreData.folder_name = url_file_name
print(url_file_name)
# 创建下载文件的文件夹
managerDir.create_folder()
# 获得下载图片的列表
coreData.all_images_addr_list = deal_html.main(dest_url)
# 开始任务
moreProcess.main()
if __name__ == '__main__':
main()

managerDir.py(管理下载图片的目录)


import os
import coreData
def create_folder():
if os.path.exists(coreData.folder_name):
pass
else:
os.mkdir(coreData.folder_name)

moreProcess.py(开启多进程)


import os
import coreData
def create_folder():
if os.path.exists(coreData.folder_name):
pass
else:
os.mkdir(coreData.folder_name)

download_images.py(图片下载器)


import re
import urllib.request
import time
import os
import coreData
def core_download(image_addr):
print("当前图片的地址为%s"%image_addr)
image_name_whole = re.search(r".*?([^/]*\.(jpg|JPG|png|PNG))", image_addr)
image_name = str(time.ctime(time.time()))+"_"+image_name_whole.group(1)
print(image_name)
try:
image_data = urllib.request.urlopen(image_addr)
image_data = image_data.read()
# 打开文件
with open(coreData.folder_name+"/"+image_name, "wb+") as f:
f.write(image_data)
except Exception as erro:
print(erro)

deal_html.py(处理html,提取图片地址)


import re
import urllib.request
import coreData
def main(download_url):
# 下载html
request = urllib.request.urlopen(download_url)
source_html = None
if request:
source_html = request.read()
source_html = source_html.decode("utf-8")
print(source_html)
else:
print("html加载失败")
# 分析html
img_addr = re.findall(r"(http\w?://[^\"]*?\.(jpg|JPG|png|PNG))", source_html)
new_img_addr = list()
for img in img_addr:
new_img_addr.append(img[0])
img_addr = new_img_addr
print(img_addr)
coreData.all_images_addr_list = img_addr
return img_addr
if __name__ == '__main__':
main()

coreData.py(共享变量)


all_images_addr_list = None
folder_name = None



推荐阅读
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • Webpack5内置处理图片资源的配置方法
    本文介绍了在Webpack5中处理图片资源的配置方法。在Webpack4中,我们需要使用file-loader和url-loader来处理图片资源,但是在Webpack5中,这两个Loader的功能已经被内置到Webpack中,我们只需要简单配置即可实现图片资源的处理。本文还介绍了一些常用的配置方法,如匹配不同类型的图片文件、设置输出路径等。通过本文的学习,读者可以快速掌握Webpack5处理图片资源的方法。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 本文介绍了C++中省略号类型和参数个数不确定函数参数的使用方法,并提供了一个范例。通过宏定义的方式,可以方便地处理不定参数的情况。文章中给出了具体的代码实现,并对代码进行了解释和说明。这对于需要处理不定参数的情况的程序员来说,是一个很有用的参考资料。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文讨论了clone的fork与pthread_create创建线程的不同之处。进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合。在调用系统调用fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性。但是二者之间的通讯需要通过专门的通讯机制,另外通过fork创建子进程系统开销很大。因此,在某些情况下,使用clone或pthread_create创建线程可能更加高效。 ... [详细]
  • 在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板
    本文介绍了在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板的方法和步骤,包括将ResourceDictionary添加到页面中以及在ResourceDictionary中实现模板的构建。通过本文的阅读,读者可以了解到在Xamarin XAML语言中构建控件模板的具体操作步骤和语法形式。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • iOS超签签名服务器搭建及其优劣势
    本文介绍了搭建iOS超签签名服务器的原因和优势,包括不掉签、用户可以直接安装不需要信任、体验好等。同时也提到了超签的劣势,即一个证书只能安装100个,成本较高。文章还详细介绍了超签的实现原理,包括用户请求服务器安装mobileconfig文件、服务器调用苹果接口添加udid等步骤。最后,还提到了生成mobileconfig文件和导出AppleWorldwideDeveloperRelationsCertificationAuthority证书的方法。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 本文介绍了如何使用Express App提供静态文件,同时提到了一些不需要使用的文件,如package.json和/.ssh/known_hosts,并解释了为什么app.get('*')无法捕获所有请求以及为什么app.use(express.static(__dirname))可能会提供不需要的文件。 ... [详细]
author-avatar
JHH先森
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有