环境: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. Prism框架研究(二)

    首先在介绍本节内容之前,首先来看看官方文档来如何描述Prism 应用的初始化吧!A Prism application requires registration and configuration ...

  2. UDP反射DDoS攻击原理和防范

    东南大学:UDP反射DDoS攻击原理和防范 2015-04-17 中国教育网络 李刚 丁伟 反射攻击的防范措施 上述协议安装后由于有关服务默认处于开启状态,是其被利用的一个重要因素.因此,防范可以从配 ...

  3. Java并发编程之ThreadGroup

    ThreadGroup是Java提供的一种对线程进行分组管理的手段,可以对所有线程以组为单位进行操作,如设置优先级.守护线程等. 线程组也有父子的概念,如下图: 线程组的创建 public class ...

  4. JDK 12 & JAVA

    JDK 12 & JAVA js style https://github.com/winterbe https://winterbe.com/posts/2018/09/24/java-11 ...

  5. html5 表單輸入類型

    輸入類型有:email,url,number,range,Date pickers(工作機制是什麼),search, 有相關類型的輸入域,會對域進行驗證. 不同的瀏覽器並不一定都支持所有的輸入類型.

  6. Web API2 使用EF Code Migrations to Seed DB

    console Enable-Migrations 运行这个命令,添加一个文件夹Migrations,Configuration.cs在这文件夹中 打开 Configuration.cs file. ...

  7. 洛谷 P1126 机器人搬重物

    题目描述 机器人移动学会(RMI)现在正尝试用机器人搬运物品.机器人的形状是一个直径 $1.6 米的球.在试验阶段,机器人被用于在一个储藏室中搬运货物.储藏室是一个 N×MN \times MN×M ...

  8. 为何CPU散片这么便宜?盒装CPU值得买吗

    当玩家选择装一台PC电脑的时候,他会有个怎样的思考过程?第一个要决定的通常是选什么样的处理器,因为处理器的选择可以决定整套平台的预算及性能水平,想玩游戏的话现在4核8线程处理器是入门标准了,高点的则会 ...

  9. linux缺失gcc的安装方法

    linux安装gcc操作 1.查看linux是否有gcc文件 这个是没有挂载的 2. 使用df,查看系统光盘的挂载位置 3.卸载分区 umount /dev/sr0 4.将redhat系统光盘重新载入 ...

  10. oracle的用户账号密码设置

    1. 可以用sqlplus system/你输入的密码 可以用sqlplus /nolog 可以用sqlplus /as sysdba2. @你scott.sql的路径3. 修改你的账号 alter ...