环境:python3  pycharm

模块:requests  bs4  urlretrieve  os  time

第一步:获取网页源代码

import requests
from bs4 import BeautifulSoup
from urllib.request import urlretrieve
import os
import time
def get_html(url):
try:
response = requests.get(url)
response.encoding = 'gbk'
return response.text
except Exception as e:
print(e)
if __name__ == '__main__':
url = 'http://www.521609.com/meinvxiaohua/'
get_html(url)

第二步:下载美女图片

def down_show(html,page):
try:
soup = BeautifulSoup(html,'lxml')
all_img = soup.find("div",class_="index_img list_center").find_all('img') num = 1
for img in all_img:
src = img.get('src')
url_pic = 'http://www.521609.com' + src
if os.path.exists('show'):
pass
else:
os.mkdir('show')
urlretrieve(url_pic,'./show/'+'第%s页-%s.jpg'%(page,num))
num += 1
except Exception as e:
print(e)

第三步:可选打印多少页,代码所示下载5页

def get_pages(page):
for i in range(121,page+121):
url = 'http://www.521609.com/meinvxiaohua/list%d.html' % i
html = get_html(url)
down_show(html,i-120)
time.sleep(1)
print("图片下载完毕")
if __name__ == '__main__':
get_pages(5)

也可以采用多线程

import requests
from bs4 import BeautifulSoup
import threading
import time
import os headers = {
'Referer': 'http://www.521609.com/meinvxiaohua/',
'User-Agent': '',
} def get_html(url):
try:
response = requests.get(url=url,headers=headers)
response.encoding = "gb2312"
return response.text #文本,字符串
except Exception as e:
print(e) def mk_dir():
os.makedirs('./show/',exist_ok=True) def down_image(html,page):
try:
soup = BeautifulSoup(html,'lxml')#可以解析html,xml
all_img = soup.find('div',class_='index_img list_center').find_all('img')
num = 1
for img in all_img:
src = img.get('src')#后半部分的地址
url = 'http://www.521609.com' + src
content = requests.get(url=url,headers=headers).content#字节流
with open('./show/第%s页-%s.jpg' % (page,num),'wb') as file:
file.write(content)
num += 1
time.sleep(1)
except Exception as e:
print(e)
pass def get_pages(page):
for i in range(121,121+page):
url = "http://www.521609.com/meinvxiaohua/list%s.html" % i
html = get_html(url)
if not os.path.exists('show'):
mk_dir()
down_image(html,page)
time.sleep(1)
print('美女图片前%s页下载完毕' % str(i-120))
# if not os.path.exists('show'):
# mk_dir()
# thread = []
# for i in range(121,121+page):
# url = "http://www.521609.com/meinvxiaohua/list%s.html" % i
# html = get_html(url)
# t = threading.Thread(target=down_image,args=(html,str(i-120)))
# thread.append(t)
# for i in thread:
# i.start()
# for j in thread:
# j.join() def main():
start_time = time.time()
get_pages(3)
stop_time = time.time()
load_time = stop_time - start_time
print(load_time)#48.115086793899536 if __name__ == '__main__':
main()

第六篇 - bs4爬取校花网的更多相关文章

  1. python爬虫基础应用----爬取校花网视频

    一.爬虫简单介绍 爬虫是什么? 爬虫是首先使用模拟浏览器访问网站获取数据,然后通过解析过滤获得有价值的信息,最后保存到到自己库中的程序. 爬虫程序包括哪些模块? python中的爬虫程序主要包括,re ...

  2. Go语言实战-爬取校花网图片

    一.目标网站分析 爬取校花网http://www.xiaohuar.com/大学校花所有图片. 经过分析,所有图片分为四个页面,http://www.xiaohuar.com/list-1-0.htm ...

  3. python实战项目 — 爬取 校花网图片

    重点: 1.  指定路径创建文件夹,判断是否存在 2. 保存图片文件 # 获得校花网的地址,图片的链接 import re import requests import time import os ...

  4. scrapy爬取校花网男神图片保存到本地

    爬虫四部曲,本人按自己的步骤来写,可能有很多漏洞,望各位大神指点指点 1.创建项目 scrapy startproject xiaohuawang scrapy.cfg: 项目的配置文件xiaohua ...

  5. Scrapy爬虫框架之爬取校花网图片

    Scrapy Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 其可以应用在数据挖掘,信息处理或存储历史数据等一系列的程序中.其最初是为了页面抓取 (更确切来说, 网络抓取 )所设 ...

  6. Python-爬取校花网视频(单线程和多线程版本)

    一.参考文章 python爬虫爬取校花网视频,单线程爬取 爬虫----爬取校花网视频,包含多线程版本 上述两篇文章都是对校花网视频的爬取,由于时间相隔很久了,校花网上的一些视频已经不存在了,因此上述文 ...

  7. <scrapy爬虫>爬取校花信息及图片

    1.创建scrapy项目 dos窗口输入: scrapy startproject xiaohuar cd xiaohuar 2.编写item.py文件(相当于编写模板,需要爬取的数据在这里定义) # ...

  8. 二、Item Pipeline和Spider-----基于scrapy取校花网的信息

    Item Pipeline 当Item在Spider中被收集之后,它将会被传递到Item Pipeline,这些Item Pipeline组件按定义的顺序处理Item. 每个Item Pipeline ...

  9. 爬虫(猫眼电影+校花网+github+今日头条+拉钩)

    Requests+正则表达式爬取猫眼TOP100榜电影信息 MARK:将信息写入文件解决乱码方法,开启进程池秒爬. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ...

随机推荐

  1. python爬虫之scrapy文件下载

    我们在写普通脚本的时候,从一个网站拿到一个文件的下载url,然后下载,直接将数据写入文件或者保存下来,但是这个需要我们自己一点一点的写出来,而且反复利用率并不高,为了不重复造轮子,scrapy提供很流 ...

  2. static关键字的用法

    静态变量和静态方法 static关键字的基本用法: 1.修饰变量:被static修饰的变量属于类变量,可以用类名.变量名来引用,而不用直接new一个对象来引用. 2.修饰方法:被static修饰的方法 ...

  3. 思维导图,UML图,程序流程图制作从入门到精通

    工具: https://www.processon.com/ 第一 用例图 第二 时序图 第三 流程图

  4. js外部调用layui.use中的函数的写法

    layui模块化的写法固然不错,但也有让人不适应的一些地方 外部调用函数的写法就让人不太舒服 需要在函数名前面加上window这个前缀,就不太舒服 补充:window前缀,是全局变量的声明方式 如下: ...

  5. 一、Composer

    一.Composer -依赖管理工具 Composer 会帮你安装这些依赖的库文件

  6. 【python练习题】程序16

    #题目:输出指定格式的日期. import time print (time.strftime('%Y:%m:%d %X',time.localtime(time.time())))

  7. 【python练习题】程序8

    #题目:输出 9*9 乘法口诀表. for i in range(1,10): k = '' for j in range(1,i+1): k += '%s * %s = %s '%(i,j,i*j) ...

  8. 使用aapt查看当前apk的属性

    android:versioncode——整数值,代表应用程序代码的相对版本,也就是版本更新过多少次. android:versionname——字符串值,代表应用程序的版本信息,需要显示给用户. e ...

  9. Codeforces986E Prince's Problem 【虚树】【可持久化线段树】【树状数组】

    我很喜欢这道题. 题目大意: 给出一棵带点权树.对每个询问$ u,v,x $,求$\prod_{i \in P(u,v)}gcd(ai,x)$.其中$ P(u,v) $表示$ u $到$ v $的路径 ...

  10. Edge Deletion CodeForces - 1076D(水最短路)

    题意: 设从1到每个点的最短距离为d,求删除几条边后仍然使1到每个点的距离为d,使得剩下的边最多为k 解析: 先求来一遍spfa,然后bfs遍历每条路,如果d[v] == d[u] + Node[i] ...