第六篇 - bs4爬取校花网
环境: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爬取校花网的更多相关文章
- python爬虫基础应用----爬取校花网视频
一.爬虫简单介绍 爬虫是什么? 爬虫是首先使用模拟浏览器访问网站获取数据,然后通过解析过滤获得有价值的信息,最后保存到到自己库中的程序. 爬虫程序包括哪些模块? python中的爬虫程序主要包括,re ...
- Go语言实战-爬取校花网图片
一.目标网站分析 爬取校花网http://www.xiaohuar.com/大学校花所有图片. 经过分析,所有图片分为四个页面,http://www.xiaohuar.com/list-1-0.htm ...
- python实战项目 — 爬取 校花网图片
重点: 1. 指定路径创建文件夹,判断是否存在 2. 保存图片文件 # 获得校花网的地址,图片的链接 import re import requests import time import os ...
- scrapy爬取校花网男神图片保存到本地
爬虫四部曲,本人按自己的步骤来写,可能有很多漏洞,望各位大神指点指点 1.创建项目 scrapy startproject xiaohuawang scrapy.cfg: 项目的配置文件xiaohua ...
- Scrapy爬虫框架之爬取校花网图片
Scrapy Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 其可以应用在数据挖掘,信息处理或存储历史数据等一系列的程序中.其最初是为了页面抓取 (更确切来说, 网络抓取 )所设 ...
- Python-爬取校花网视频(单线程和多线程版本)
一.参考文章 python爬虫爬取校花网视频,单线程爬取 爬虫----爬取校花网视频,包含多线程版本 上述两篇文章都是对校花网视频的爬取,由于时间相隔很久了,校花网上的一些视频已经不存在了,因此上述文 ...
- <scrapy爬虫>爬取校花信息及图片
1.创建scrapy项目 dos窗口输入: scrapy startproject xiaohuar cd xiaohuar 2.编写item.py文件(相当于编写模板,需要爬取的数据在这里定义) # ...
- 二、Item Pipeline和Spider-----基于scrapy取校花网的信息
Item Pipeline 当Item在Spider中被收集之后,它将会被传递到Item Pipeline,这些Item Pipeline组件按定义的顺序处理Item. 每个Item Pipeline ...
- 爬虫(猫眼电影+校花网+github+今日头条+拉钩)
Requests+正则表达式爬取猫眼TOP100榜电影信息 MARK:将信息写入文件解决乱码方法,开启进程池秒爬. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ...
随机推荐
- 待解决ava.lang.OutOfMemoryError: PermGen space at java.lang.ClassLoader.defineClass1(Native Method)
java.lang.OutOfMemoryError: PermGen space at java.lang.ClassLoader.defineClass1(Native Method) at ja ...
- linux读取Windows的txt文件问题
问题:Windows下生成的txt文件,在Linux下读取时会读取到多余字符(如: ^M) 原因:Windows和Linux下的换行符不一致 解决:在Linux代码中将多余字符去掉 ) buf = b ...
- mac上录制无声mp3
想要录制音频很多方法,要无声音频 你可以使用调试软件 那么mac的录制音频,可以用这个软件 将耳机插头插在话筒插孔内,录制出来了m4a文件, 进入转换网站 开始转换下载
- linux-shell系列3-wafAPI
#!/bin/bash datestr=`env LANG=en_US.UTF-8 date -u "+%a, %d %b %Y %H:%M:%S GMT"`pwdstr=`ech ...
- webpack——阮一峰webpackDemo分析
首先上交阮一峰老师的github地址,一共有15个demo,我们一个一个的进行分析,结合上文所学的知识! 其中有一些内容,我做了修改,我是先看一遍然后从新敲了一遍. https://github.co ...
- 【XSY2774】学习 带花树
题目描述 给你一个图,求最大匹配. 边的描述方式很特殊,就是一次告诉你\(c_i\)个点:\(d_1,d_2,\ldots,d_{c_i}\),表示这些点两两之间都有连边,也就是说,这是一个团.总共有 ...
- HDOJ5547 SudoKu
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5547 题目大意:填数独... 思路:爆搜 #include <stdio.h> #incl ...
- readlink: command not found 解决方案
/c/Program Files (x86)/Yarn/bin/yarn: line 3: readlink: command not found 用gitbash运行yarn时提示这个错误,但没有直 ...
- 「2017 Multi-University Training Contest 2」2017多校训练2
1001 Is Derek lying 题目链接 HDU6045 Is Derek lying? 给出两个人选择题的回答,问得分分别为x和y是否可能.(\(1\le N \le 80000,0\le ...
- 【BZOJ2870】最长道路(边分治)
[BZOJ2870]最长道路(边分治) 题面 BZOJ权限题 Description H城很大,有N个路口(从1到N编号),路口之间有N-1边,使得任意两个路口都能互相到达,这些道路的长度我们视作一样 ...