从这个网址学习的:https://www.bilibili.com/read/cv10367703/

------------------------------------------------------------------------

https://movie.douban.com/celebrity/1011562/photos/

打开页面F12进入开发者工具,查看 下载的页数,以及每页最多显示30张

a_list=content.find_all('div',attrs={'class','cover'}) #获取网页中的所有a标签对象
picture_list = []
for d in a_list:plist=d.find('img')['src']picture_list.append(plist)

获取(共348张)并根据正规则获取纯数字:348

clist = content.find('span', attrs={'class', 'count'})  # 获取
ret= re.findall(r'\d+', clist.get_text())

写得太痛苦,直接放完整代码,自行看看理解就是了:

import re
import time
import requests
import os
from bs4 import BeautifulSoup
import lxml#requests.getj时一定要加headers,否则会获取为空,只需要保留'User-Agent'一项即可
headers={# 'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',# 'Accept-Language':'zh-CN,zh;q=0.9,en;q=0.8',# 'Cache-Control':'max-age=0',# 'Connection':'keep-alive',# 'Cookie':'ll="118254"; bid=bzf7LGz3pZA; _vwo_uuid_v2=DB12523A0B0C7127645E914A1FB363352|3d83981785084d997d7462a2ce24a947; __utmz=223695111.1626234491.2.2.utmcsr=baidu|utmccn=(organic)|utmcmd=organic; douban-fav-remind=1; __utmz=30149280.1629095213.3.3.utmcsr=baidu|utmccn=(organic)|utmcmd=organic; _pk_ref.100001.4cf6=%5B%22%22%2C%22%22%2C1629168071%2C%22https%3A%2F%2Fwww.baidu.com%2Flink%3Furl%3D71zldwjBiMBa-xfexgVZ43eTQq2n8KKtTWTsWh37m72e_lfEOE1x3NuDj6egeYBLyqGE4gjSJnbxueQLcYZWsq%26wd%3D%26eqid%3Ddb6736ec000219350000000660ee5e6f%22%5D; _pk_ses.100001.4cf6=*; ap_v=0,6.0; __utma=30149280.1335619985.1616046306.1629095213.1629168072.4; __utmc=30149280; __utmb=30149280.1.10.1629168072; __utma=223695111.444014824.1616046306.1626234491.1629168075.3; __utmb=223695111.0.10.1629168075; __utmc=223695111; _pk_id.100001.4cf6=fa72408676bee41c.1616046306.3.1629168230.1626234491.',# 'Host':'movie.douban.com',# 'sec-ch-ua':'" Not;A Brand";v="99", "Google Chrome";v="91", "Chromium";v="91"',# 'sec-ch-ua-mobile':'?0',# 'Sec-Fetch-Dest':'document',# 'Sec-Fetch-Mode':'navigate',# 'Sec-Fetch-Site':'none',# 'Sec-Fetch-User':'?1',# 'Upgrade-Insecure-Requests':'1','User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.106 Safari/537.36',
}
# 设置post的数据
data = {}def get_poster_url(res):content=BeautifulSoup(res.text,'lxml') #将网页源码构造成BeautifulSoup对象,方便操作#content=BeautifulSoup(res.text,'html.parser') #将网页源码构造成BeautifulSoup对象,方便操作a_list=content.find_all('div',attrs={'class','cover'}) #获取网页中的所有a标签对象picture_list = []for d in a_list:plist=d.find('img')['src']picture_list.append(plist)return picture_list;def getCount(id,session):url = 'https://movie.douban.com/celebrity/{0}/photos/'.format(id)#res = requests.get(url=url, headers=headers)res = session.get(url=url,data=data, headers=headers)content = BeautifulSoup(res.text, 'lxml')#clists = content.find_all('span', attrs={'class', 'count'})  # 获取#[span.get_text() for span in clists]clist = content.find('span', attrs={'class', 'count'})  # 获取ret= re.findall(r'\d+', clist.get_text())if len(ret)>0:return [res,int(ret[0])]else:return [res,0]def fire(mc,id,session):res,pagenums=getCount(id,session)if pagenums==0:returnpage=0for i in range(0,pagenums,30):#print("\n开始爬取山口百惠{}页\n".format(page))#url='https://movie.douban.com/celebrity/1014823/photos/?type=C&start={0}&sortby=like&size=a&subtype=a'.format(i)#print("开始爬取刘涛{}页\n".format(page))#url='https://movie.douban.com/celebrity/1011562/photos/?type=C&start={0}&sortby=like&size=a&subtype=a'.format(i)print("\n开始爬取{0}{1}页:{2}~{3}张/共{4}张\n".format(mc,page+1,page*30+1,(page+1)*30,pagenums))url='https://movie.douban.com/celebrity/{0}/photos/?type=C&start={1}&sortby=like&size=a&subtype=a'.format(id,i)if i>0:res = session.post(url=url,data=data, headers=headers)#res=requests.get(url=url,headers=headers)piclist=get_poster_url(res)download_picture(piclist,session)page=page+1time.sleep(1)def download_picture(pic_l,session):if not os.path.exists(r'picture'):os.mkdir(r'picture')for i in pic_l:print("\r开始下载图片{0}".format(i))#pic=requests.get(i)pic=session.get(i)p_name=i.split('/')[7]with open('picture\\'+p_name,'wb') as f:f.write(pic.content)mxarr=[('山口百惠','1014823'),('刘涛','1011562')]
if __name__ == '__main__':# 创建一个session,Session是requests库中的一个类,创建session对象进行访问的好处是,session对象能够自动维护访问的cookies信息。当然,它是不具备执行javascript代码的能力的,因此通过javascript修改的cookies信息它是记录不到的。session = requests.Session()for i,k in mxarr:fire(i,k,session)

python爬虫笔记一:爬取豆瓣中指定的明星所有图片相关推荐

  1. Python爬虫入门(爬取豆瓣电影信息小结)

    Python爬虫入门(爬取豆瓣电影信息小结) 1.爬虫概念 网络爬虫,是一种按照一定规则,自动抓取互联网信息的程序或脚本.爬虫的本质是模拟浏览器打开网页,获取网页中我们想要的那部分数据. 2.基本流程 ...

  2. Python爬虫入门 | 4 爬取豆瓣TOP250图书信息

      先来看看页面长啥样的:https://book.douban.com/top250   我们将要爬取哪些信息:书名.链接.评分.一句话评价--   1. 爬取单个信息 我们先来尝试爬取书名,利用之 ...

  3. Python爬虫实战(1) | 爬取豆瓣网排名前250的电影(下)

    在Python爬虫实战(1) | 爬取豆瓣网排名前250的电影(上)中,我们最后爬出来的结果不是很完美,这对于"精益求精.追求完美的"程序猿来说怎么能够甘心 所以,今天,用pyth ...

  4. python爬虫——Cookie登录爬取豆瓣短评和影评及常见问题

    python爬虫--Cookie登录爬取豆瓣短评和影评 常见问题(本文已解决) 具体步骤 一.获取网页源码 短评.影评 二.解析网页源码及爬取评论 1.短评网页解析 ①确定位置 2.短评爬取 ①名称爬 ...

  5. Python爬虫学习之爬取豆瓣音乐Top250存入Excel表格中

    前言 目标网站:https://music.douban.com/top250 任务: 爬取豆瓣音乐Top250的歌曲名 爬取豆瓣音乐Top250的歌曲对应的表演者.发行时间和音乐流派(分别对应下图斜 ...

  6. python爬虫,Scrapy爬取豆瓣电影《芳华》电影短评,分词生成词云图。

    项目github地址:https://github.com/kocor01/scrapy_cloud Python版本为3.6 自己写的简单架构<python爬虫,爬取豆瓣电影<芳华> ...

  7. python爬虫实践之爬取豆瓣高评分电影

    目录 概述 准备 所需模块 涉及知识点 运行效果 完成爬虫 1. 分析网页 2. 爬虫代码 3. 整理总结 概述 爬取豆瓣的高评分的电影. 准备 所需模块 re模块 requests模块 涉及知识点 ...

  8. Python爬虫实战 | (3) 爬取豆瓣电影Top250

    在本篇博客中,我们将使用requests+正则表达式来爬取豆瓣电影TOP250电影榜单,获取每部电影的序号.片名.导演.编剧.主演.类型.制作国家/地区.语言.上映日期.片长.又名.豆瓣评分和剧情简介 ...

  9. python爬虫豆瓣电影短评_【Python爬虫】BeautifulSoup爬取豆瓣电影短评

    目的:爬取豆瓣[红海行动]电影的首页短评 步骤: 1.使用BeautifulSoup解析网页 soup = BeautifulSoup(r, 'lxml') // lxml 库解析速度快,也能解析复杂 ...

最新文章

  1. Nginx负载均衡配置实例详解
  2. 机器学习常见算法个人总结(面试用)
  3. GRUB2 管理器—Grub Customizer
  4. 【dfs】虫食算(ybtoj dfs-1-3)
  5. Android源码之路(二、AsyncTask)
  6. ACM题目————中位数
  7. 安装 jupyter notebook
  8. Java基础资料整理
  9. MongoVUE 几个常用查询命令
  10. 网易云课堂-缓存介绍
  11. java坐标排序_几种实现经纬度查询排序
  12. 【信号处理】Matlab实现语音变速变调
  13. 用这8个办公软件,效率高一倍
  14. ubuntu18.04 LORD 3DM-GX5-AHRS + ros驱动安装
  15. pytorch学习(一)数据加载之前的预处理(UCSD数据集)
  16. 木材加工(LintCode)
  17. DOM进阶之CSS属性操作
  18. 为何TCP/IP协议栈设计成沙漏型的
  19. SpringBoot+Vue+ElementUI实现后台管理系统
  20. linux如何设置开启在指定的tty下自启动程序

热门文章

  1. MVC 音乐商店 第 4 部分: 模型和数据访问
  2. 1477_AURIX TC275 iLLD中看门狗密码获取接口分析
  3. Java——Jsoup方式的IP代理服务器的使用
  4. unity动态修改标准材质自发光(Emission)
  5. 建行找不到服务器或DNS错误,建行浏览器打不开,提示域名解析错误,代码105,怎么解决?谢谢...
  6. 怎样合理使用键盘以及键盘的保养方法
  7. 织梦图集php,织梦怎么为新图集页面增加图片下载功能
  8. Android 平板中 自定义键盘(popuwindow) 居于屏幕左下方 仿微信的密码输入界面
  9. 11.18C语言练习题
  10. 2022年最新版初级商业数字营销师钻展题库