python+正则+多进程爬取糗事百科图片
话不多说,直接上代码;
# 需要的库
import requests
import re
import os
from multiprocessing import Pool
# 请求头
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36'
} # 主函数
def get_img(url):
# 定义图片存储路径
img_path = './img/'
if not os.path.exists(img_path):
os.mkdir(img_path)
try:
# 请求网页
response = requests.get(url=url,headers=headers)
# 正则提取图片地址
response = re.findall('<div class="thumb".*?<img src="(.*?)".*?</a>',response.text,re.S)
# 循环图片地址
for i in response:
# 拼接完整图片路由
url = ('http:' + i)
# 请求完整图片路由
response = requests.get(url,headers)
# 图片命名
img_name = url.split('/')[-1]
# 判断图片是否已下载
if os.path.exists(img_path+img_name):
print('图片已存在')
else:
# 下载图片
with open(img_path+img_name,'wb') as f:
f.write(response.content)
print('正在下载:'+url)
except Exception as e:
print(e)
# 程序主入口
if __name__ == '__main__':
# 构造所有ip地址
urls = ['https://www.qiushibaike.com/imgrank/page/{}/'.format(i) for i in range(1,14)]
# 使用多进程
pool = Pool()
# 开启多进程爬取
pool.map(get_img,urls)
print('下载完毕')
下载中;

打开文件夹查看图片;

done
python+正则+多进程爬取糗事百科图片的更多相关文章
- python+BeautifulSoup+多进程爬取糗事百科图片
用到的库: import requests import os from bs4 import BeautifulSoup import time from multiprocessing impor ...
- python爬虫之爬取糗事百科并将爬取内容保存至Excel中
本篇博文为使用python爬虫爬取糗事百科content并将爬取内容存入excel中保存·. 实验环境:Windows10 代码编辑工具:pycharm 使用selenium(自动化测试工具)+p ...
- Python爬虫:爬取糗事百科
网上看到的教程,但是是用正则表达式写的,并不能运行,后面我就用xpath改了,然后重新写了逻辑,并且使用了双线程,也算是原创了吧#!/usr/bin/python# -*- encoding:utf- ...
- python网络爬虫--简单爬取糗事百科
刚开始学习python爬虫,写了一个简单python程序爬取糗事百科. 具体步骤是这样的:首先查看糗事百科的url:http://www.qiushibaike.com/8hr/page/2/?s=4 ...
- Python爬虫实战一之爬取糗事百科段子
大家好,前面入门已经说了那么多基础知识了,下面我们做几个实战项目来挑战一下吧.那么这次为大家带来,Python爬取糗事百科的小段子的例子. 首先,糗事百科大家都听说过吧?糗友们发的搞笑的段子一抓一大把 ...
- 转 Python爬虫实战一之爬取糗事百科段子
静觅 » Python爬虫实战一之爬取糗事百科段子 首先,糗事百科大家都听说过吧?糗友们发的搞笑的段子一抓一大把,这次我们尝试一下用爬虫把他们抓取下来. 友情提示 糗事百科在前一段时间进行了改版,导致 ...
- [爬虫]用python的requests模块爬取糗事百科段子
虽然Python的标准库中 urllib2 模块已经包含了平常我们使用的大多数功能,但是它的 API 使用起来让人感觉不太好,而 Requests 自称 “HTTP for Humans”,说明使用更 ...
- 8.Python爬虫实战一之爬取糗事百科段子
大家好,前面入门已经说了那么多基础知识了,下面我们做几个实战项目来挑战一下吧.那么这次为大家带来,Python爬取糗事百科的小段子的例子. 首先,糗事百科大家都听说过吧?糗友们发的搞笑的段子一抓一大把 ...
- 初识python 之 爬虫:使用正则表达式爬取“糗事百科 - 文字版”网页数据
初识python 之 爬虫:使用正则表达式爬取"古诗文"网页数据 的兄弟篇. 详细代码如下: #!/user/bin env python # author:Simple-Sir ...
随机推荐
- cube-slide组件的应用
<template> <div> <cube-slide :data="items"/> </div> </template& ...
- mysql语句笔记
创建数据库 create database name(自定义): #创建一个数据库 name自己取 create database if not exists name() default cha ...
- Hadoop 3.1.2 + Hive 3.1.1
一.安装Hadoop 1.1 版本说明 hadoop:3.1.2hive:3.1.1mysql:5.6.40 1.2 主机映射 添加IP与主机名的映射关系,在/etc/hosts文件里添加如下内容(所 ...
- kafka备份原理
- 服务器BMC资料整理
1. 现在服务器都有BMC管理了,可以直接连上服务器进行处理. bios里面进行简单设置就可以了, 连接上IPMI的口进行管理. 2. 可以使用 远程控制安装操作系统. 安装系统时 比较清楚的能够看到 ...
- Java进阶——Java中的字符串常量池
转载. https://blog.csdn.net/qq_30379689/article/details/80518283 字符串常量池 JVM为了减少字符串对象的重复创建,其内部维护了一个特殊的内 ...
- 资源对象的池化, java极简实现,close资源时,自动回收
https://www.cnblogs.com/piepie/p/10498953.html 在java程序中对于资源,例如数据库连接,这类不能并行共享的资源对象,一般采用资源池的方式进行管理. 资源 ...
- BJFU—214基于链式存储结构的图书信息表的创建和输出
#include<stdio.h>#include<stdlib.h>#define MAX 100 typedef struct bNode{ double no; char ...
- 4. Spark Streaming解析
4.1 初始化StreamingContext import org.apache.spark._ import org.apache.spark.streaming._ val conf = new ...
- 【C#】 获取计算机的硬件信息
添加引用:System.Management /// <summary> /// 获取本机的MAC地址 /// </summary> /// <returns>&l ...