这个案例在其他地方适用性很高的,完整的视频链接:http://www.iqiyi.com/w_19rtu8xbyt.html1、字符串查找
String.find('aaa',pos)查找的字符串,pos为查找位置,返回为开头位置
def find_in_page(page,startpart,endpart):image_url=[]end=0while page.find(startpart,end)!=-1:start=page.find(startpart,end)+len(startpart)end=page.find(endpart,start)string=page[start:end]image_url.append(string)return image_url
也可以用正则匹配2.线程
使用threading库
# 设置线程锁
thread_lock = threading.BoundedSemaphore(value=10)
thread_lock.acquire()
t=threading.Thread(target=download_pic,args=(pic_url, label, n))
t.start()
thread_lock.release()
使用线程锁进行线程任务,要记得任务完成后释放线程import requests
import urllib.parse
import urllib.request
import threading#设置最大线程锁,value为10表示一次接收最多10个线程
thread_lock = threading.BoundedSemaphore(value=10)#通过network抓包,获取的ajax动态获取图片链接,其中limit字段是分析服务器返回的jason数据自己加上去的
url = 'https://www.duitang.com/napi/blog/list/by_search/?kw={}&start={}&limit=100'#获取单页url的内容
def get_page(url):response = requests.get(url)#二进制byte转化为字符串return response.content.decode('utf-8')#label为我们在堆糖网搜索的内容,获取的结果为所有url的返回内容
def pages_from_duitang(label):#把中文转化为向服务器请求数据字段用的Ascii码label = urllib.parse.quote(label)page_list = []for index in range(0,3600,100):string = url.format(index,label)page_list.append(get_page(string))return page_list#解析单个网页返回内容里的所有图片地址,完全通过字符串处理,没有用正则或者bs4处理
#在page内容里找,startpart为‘path:“’,endpart内容为'"'的字符串,刚好就是图片地址
def findall_in_page(page, startpart, endpart):end = 0string_list = []while page.find(startpart,end) != -1 :#让start起始位置从开始找到startpart的地方,挪到图片地址字符串的第一个位置start = page.find(startpart,end) + len(startpart)#end为图片地址的末尾end = page.find(endpart,start)#截断字符串的内容刚好为url的位置string = page[start:end]string_list.append(string)return string_list#下载图片,并将图片存入本地pics文件夹,此处最耗时的内容开启多线程服务
def download_pics(url, filename):urllib.request.urlretrieve(url, 'pics/' + filename)#下载完内容,线程解锁thread_lock.release()def if __name__ == '__main__':pages_list = pages_from_duitang("明星")picures_list = []for page in pages_list:pictures = []pictures = findall_in_page(page=page,startpart="\"path\":\"",endpart="\"")#把列表内容挂在另外一个列表末尾picures_list.extend(pictures)print('total images:' + str(len(picures_list)))n = 0for picure in picures_list:n += 1print(" 正在下载第{}张图片".format(n))#从url末尾获取文件名称filename = picure.split('/')[-1]#上锁并开启多线程服务thread_lock.acquire()t = threading.Thread(target=download_pics,args=(picure,filename))t.start()

Python爬虫案例:大批量抓取堆糖网图片相关推荐

  1. 爬虫python书籍-Python爬虫案例:抓取豆瓣编程类高评分书籍

    对于很多正在学习计算机的朋友来说,选择合适的学习材料是非常重要的. 本文将通过 Python 来爬取豆瓣编程类评分大于 9.0 的书籍. 此案例很适合入门爬虫的朋友学习,总共也就 3 个函数. 下图是 ...

  2. python爬虫案例:抓取网易新闻

    此文属于入门级级别的爬虫,老司机们就不用看了. 本次主要是爬取网易新闻,包括新闻标题.作者.来源.发布时间.新闻正文. 首先我们打开163的网站,我们随意选择一个分类,这里我选的分类是国内新闻.然后鼠 ...

  3. python 爬虫案例:爬取百度贴吧图片

    文章更新于:2020-04-24 注1:打包后的程序(无需python环境)下载参见:https://ww.lanzous.com/ibvwref 注2:更多爬虫案例参见:https://github ...

  4. python爬虫妹子图抓取

    python爬虫妹子图抓取 目标网址:图片地址 我的github地址:超链接 可以自行感受一下,我就不说了,重点是学习代码,不是图片 #! /usr/bin/python3 # -*- coding: ...

  5. python爬虫代码房-Python爬虫一步步抓取房产信息

    原标题:Python爬虫一步步抓取房产信息 前言 嗯,这一篇文章更多是想分享一下我的网页分析方法.玩爬虫也快有一年了,基本代码熟悉之后,我感觉写一个爬虫最有意思的莫过于研究其网页背后的加载过程了,也就 ...

  6. Python爬虫项目:抓取智联招聘信息

    来自https://mp.weixin.qq.com/s/0SzLGqv2p0-IWSN3r8bOHA ''' Python爬虫之五:抓取智联招聘基础版 该文件运行后会产生一个代码,保存在这个Pyth ...

  7. 通过Python爬虫按关键词抓取相关的新闻

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途 如今各大网站的反爬机制已经可以说是到了丧心病狂的程度,比如大众点评的字符加密.微博的登录验证等.相比较而言,新闻网站的反爬机制 ...

  8. python 爬虫学习:抓取智联招聘网站职位信息(二)

    在第一篇文章(python 爬虫学习:抓取智联招聘网站职位信息(一))中,我们介绍了爬取智联招聘网站上基于岗位关键字,及地区进行搜索的岗位信息,并对爬取到的岗位工资数据进行统计并生成直方图展示:同时进 ...

  9. python爬虫关键词抓手机号_通过Python爬虫按关键词抓取相关的新闻

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 如今各大网站的反爬机制已经可以说是到了丧心病狂的程度,比如大众点评的字符加 ...

  10. 爬取推糖网图片小案例

    前言: 好久没有更新博文了,因为工作的关系,一直没有更新博文,今天有空,就给大家带来一个爬图片的小案例.今天的目标网站就是堆糖网,关于爬取这个网站图片的案例,肯定大家都看到很多,基本都是通过搜索图片的 ...

最新文章

  1. java之图形化界面(GUI)
  2. python-2:工欲善其事,必先利其器 修改jupyter保存文件目录(亲测)
  3. IntelliTrace 调试、定位异常
  4. java帐篷_Java多线程之 Park和Unpark(十四)
  5. stm32f103c8t6最小系统电路原理图_嵌入式单片机之STM32F103C8T6最小系统板电路设计参考...
  6. python内置数据结构和stl_python里有C++ STL中的set和map吗?
  7. HTML前端代码分析(查看网站黑链的几种方法)暗链是什么意思
  8. 第三篇 ME909s-821设备描述符分析
  9. 火车头采集器用法说明
  10. 终于有人把元数据讲明白了
  11. Linux 安装 rar 解压
  12. PBR材质:基本原理和简单制作
  13. android img 文件解包
  14. 第一天,初了解锐捷网络
  15. 由DBeaver与PL/SQL引发的数据库吐槽
  16. MacOS开发-用命令行压缩文件
  17. java复制sheet_java-poi 复制Sheet到另一个excel的sheet中
  18. 如何手动制作透明的图片相框 可以供android使用
  19. 数字内容产业的政策背景与发展现状
  20. 【Python爬虫】爬取微信公众号文章信息准备工作

热门文章

  1. 未来-区块链-Micron:区块链永远不会忘记:内存对这项革命性技术的推动作用...
  2. 安卓圆形头像制作两种方法。
  3. 格局炸裂,程序员必看的十部纪录片
  4. 如何在多个iOSapp里共享数据
  5. 20220529 使用python分割pdf文件
  6. FFMpeg 常用命令格式转换,视频合成
  7. 10个优秀的图标搜索引擎
  8. python 发送邮件实现 抄送,密送
  9. 2022年瑞典经济发展研究报告
  10. git 拉取最新代码