无意中可看到一个爬取煎蛋网的美女照片 博客,感觉很有趣,就仿照写了个,还几个
一、安装必要的库
1.1 beautifulsoup

pip install beautifulsoup4

1.2

pip install requests

1.3

pip install lxml

几个很重要的函数

1. request.urlretrieve(url,local) 把远程数据下载到本地
2.  req = requests.get(url = url,headers = headers)req.encoding = 'utf-8'  xhtml = req.text获取网页的文本信息

二、python 正则表达

获取图片网址

    reg = '[^"]*?\.jpg' #表示获取jpg结尾的文本imgre = re.compile(reg)imgList = imgre.findall(html)

浏览器的头文件

headers = {  "User-Agent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"  } 

防止被服务禁止下载,模拟浏览器访问

            opener=request.build_opener()opener.addheaders=[('User-Agent','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36')]request.install_opener(opener)request.urlretrieve(imgurl,'F:/python3/webImage/%s_%s.jpg'%(page,x))

三、写爬虫

import re
import requests
import time
from urllib import request
from urllib.request import urlretrieve ,HTTPError ,urlopen,URLError
url = ""
#获取网页文本
def getHtml(url):#注释中,使用默认的读取网页,和下面 二选一#file =  urlopen(url)#html = file.read()#xhtml=html.decode('utf-8')#len(xhtml)headers = {  "User-Agent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"  }  req = requests.get(url = url,headers = headers)req.encoding = 'utf-8'  xhtml = req.text#print(xhtml)#bf = BeautifulSoup(html, 'lxml')return xhtml
#分析网页,获取图片的网址
def getImageList(html):reg = '[^"]*?\.jpg'imgre = re.compile(reg)imgList = imgre.findall(html)#re.findall(imgre,html)imgList= sorted(set(imgList),key=imgList.index)#去除重复的字段List=[]for list in imgList:# 判断网址是否存在http: if 'http' not in list:List.append(('http://'+list).replace('','//'))else:List.append(list)return List
#下载图片
def download(imgList, page):x = 1for imgurl in imgList:imgurl=imgurl.replace('\/', '/')#print(imgurl)try:print(imgurl)#模拟浏览器读取图片,防止被服务器 禁止访问opener=request.build_opener()opener.addheaders=[('User-Agent','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36')]request.install_opener(opener)request.urlretrieve(imgurl,'F:/python3/webImage/%s_%s.jpg'%(page,x))except HTTPError as e:print('e.value HTTPError')print(e.code)print(e.read())except URLError as e:print('e.value  URLError')print(e.reason  )except TimeoutError as e:print("e.value")        x+=1time.sleep(1) #推迟调用线程一秒def downImageNum(pagenum):page = 1pageNumber = pagenumwhile(page <= pageNumber):html = getHtml(url)#获得url指向的html内容imageList = getImageList(html)#获得所有图片的地址,返回列表download(imageList,page)#下载所有的图片page=page+1if __name__ == '__main__':for num in range(1,88):  if num == 1:  url = 'http://jandan.net/ooxx'  else:  url = 'http://jandan.net/ooxx/page-%d#comments' % numdownImageNum(num)   

参考
python3网络爬虫:爬取煎蛋网美女照片写了下面这个爬虫,把写的记录下来。

from bs4 import BeautifulSoup
from urllib.request import urlretrieve
import requests
import os
import time
import re  if __name__ == '__main__':  list_url = []list_url_1 = []for num in range(1,50): try:url = 'http://www.rs05.com/movie/?p=%d' % num  headers = {  "User-Agent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"  }  req = requests.get(url = url,headers = headers)req.encoding = 'utf-8'  html = req.text  bf = BeautifulSoup(html, 'html.parser')  targets_url = bf.find_all(class_="movie-thumbnails") except TimeoutError as e:print("e.value")for each in targets_url:  list_url.append(each.get('href')) for each in list_url:try:        req = requests.get(url = each,headers = headers)req.encoding = 'utf-8'  html = req.text  bf = BeautifulSoup(html, 'html.parser')  targets_url = bf.find_all(class_="edui-img")for i in targets_url:list_url_1.append(i.get('src'))for target_url_1 in list_url_1:  try:filename =str(num )+'-'+str(time.localtime())+'.jpg'  headers = {  "User-Agent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"  }  img_req = requests.get(url = target_url_1,headers = headers)  img_req.encoding = 'utf-8'  img_html = img_req.text  img_bf = BeautifulSoup(img_html, 'lxml')  urlretrieve(url = target_url_1,filename = 'E:/cache-work/python3/images1/'+ filename )  #print(filename)time.sleep(1)except TimeoutError as e:print(e.value)       list_url_1.clear()except TimeoutError as e:print("e.value")#print(len(list_url_1))if len(list_url)>0:     list_url.clear()if num%7==0:time.sleep(500)else:time.sleep(100)print('下载完成!') 

四、总结
新手上路,总是遇到很多bug,感谢发达的信息时代,遇到问题,很快就能查到结果
1、tabERr,。原来回车换行 的时候,是按照tab空行的,要用四个空格代替;
2、有些网站 ,图片下载 403错误,下载的时候,添加投,模拟浏览器就ok了。
3、开始的时候,没加try‘’except 异常环节,很容易终止操作。
4、目前下载的图片存在重复,因为不同网址 对应相同的图片,正在想办法解决。

python 写爬虫 美女照片(一)相关推荐

  1. 爬虫python 科研有用吗_为什么说用python写爬虫有优势?

    之前和做Java的小伙伴聊过对比Java和python,就以这个为开头,跟大家聊聊为什么要学习python,他有哪些优势吧~ 对比Java和python,两者区别: 1.python的requests ...

  2. python+mysql库+json_用python写爬虫-5.1json用pandas入mysql库

    pandas是一个数据处理模块,前面也已经提到了好些,用python写爬虫--4.5pandas存入excel. 这次来统一说一说,使用感想. pandas主要是Seriers和Dataframe,S ...

  3. 用Python写爬虫有哪些好处?

    大家都知道,关于爬虫几乎每种编程语言都可以实现,比如:Java.C.C++.python等都可以实现爬虫,但是之所以会选择python写爬虫,是因为python具有独特的优势.那么用python语言写 ...

  4. 为什么多迪技术人员都喜欢用python写爬虫?

    有更加成熟的一种爬虫脚本语言,而非框架.是通用的爬虫软件ForeSpider,内部自带了一套爬虫脚本语言.很多同学学php的,但是也自学过python,对php了解还是比较深的,为什么多迪技术人员都喜 ...

  5. 用python写一个美女图片爬虫

    介绍 最近无聊学了一下python,决定打算用python写一个爬虫,既然要写爬虫,就写一个美女爬虫,养眼,哈哈..你们懂的 准备阶段 首先我们必须先找到一个有美女的网站,这里我以7kk网站为例子, ...

  6. python 爬虫框架对比_用Python写爬虫,用什么方式、框架比较好?

    以前只写过很简单的Python爬虫,直接用内置库实现,有没有谁用Python爬过规模较大的数据,用的是什么方法? 还有,采用现有的Python爬虫框架,相比与直接使用内置库,优势在哪?因为Python ...

  7. php和python写爬虫-可以写爬虫的那么多,为什么只有python火了?

    原标题:可以写爬虫的那么多,为什么只有python火了? 网络爬虫: 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的 ...

  8. php和python写爬虫-为什么选择用python做爬虫

    什么是网络爬虫? 网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成.传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当 ...

  9. php和python写爬虫-一个简单的Python写的XML爬虫

    一个简单的Python写的XML爬虫 来源:程序员人生 发布时间:2013-11-06 16:22:29 阅读次数:1578次 原理很简单,读XML结构,返回值,判断,根据返回的值得到下一个XML的地 ...

最新文章

  1. FFmpeg命令行map参数选择音视频流
  2. Jenkins的一些代码
  3. 不这样做,同名互踢容易踩坑!
  4. c盘不能新建文件的解决办法
  5. 派克dselite调试软件安装_派克ETH电动缸的新专利减少了调试和维护时间
  6. c语言字符输出128,如何将128位整数转换为C中的十进制ASCII字符串?
  7. Android Framework实战视频系列
  8. 计算机科学之父——Alan Turing及相关电影介绍
  9. 汽车CAN诊断——报文数据篇
  10. win7服务器建网站教程,win7搭建Web服务器教程
  11. scheduled java 失败_Unexpected error occurred in scheduled task.
  12. idea的英文是什么意思_intellij是什么意思
  13. mysql dump 1449_关于mysqldump的ERROR 1449 问题 | 学步园
  14. 《就这样享用word》word实用技巧总结-更新中
  15. 运维工程师应该具备的技能(转载)
  16. Spring Boot 框架学习笔记(五)( SpringSecurity安全框架 )
  17. NLP专题直播 | 详谈Transformer, BERT, ALBERT, XLNet(ALBERT第一作者亲自讲解)
  18. 解决微信浏览器video标签自动播放视频失效
  19. centos8 安装mysql8(二)
  20. debian11安装samba(smb)协议的网络共享

热门文章

  1. 给 初学者 的十点忠诫
  2. Comand+/不能使用
  3. 3DMAX怎样运用布尔运算
  4. NCE loss详解
  5. drupal7 services
  6. Java实现Zip文件的解压和压缩_ZipUtil
  7. Visual Studio 2022 计算机基本信息采集(硬盘序列号 Mac地址 IP地址)
  8. 动网论坛 上传文件类型
  9. 最新图文操作--虚拟机和主机远程连接
  10. 笨办法学习python3 ex3