Python爬虫案例:大批量抓取堆糖网图片
这个案例在其他地方适用性很高的,完整的视频链接: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爬虫案例:大批量抓取堆糖网图片相关推荐
- 爬虫python书籍-Python爬虫案例:抓取豆瓣编程类高评分书籍
对于很多正在学习计算机的朋友来说,选择合适的学习材料是非常重要的. 本文将通过 Python 来爬取豆瓣编程类评分大于 9.0 的书籍. 此案例很适合入门爬虫的朋友学习,总共也就 3 个函数. 下图是 ...
- python爬虫案例:抓取网易新闻
此文属于入门级级别的爬虫,老司机们就不用看了. 本次主要是爬取网易新闻,包括新闻标题.作者.来源.发布时间.新闻正文. 首先我们打开163的网站,我们随意选择一个分类,这里我选的分类是国内新闻.然后鼠 ...
- python 爬虫案例:爬取百度贴吧图片
文章更新于:2020-04-24 注1:打包后的程序(无需python环境)下载参见:https://ww.lanzous.com/ibvwref 注2:更多爬虫案例参见:https://github ...
- python爬虫妹子图抓取
python爬虫妹子图抓取 目标网址:图片地址 我的github地址:超链接 可以自行感受一下,我就不说了,重点是学习代码,不是图片 #! /usr/bin/python3 # -*- coding: ...
- python爬虫代码房-Python爬虫一步步抓取房产信息
原标题:Python爬虫一步步抓取房产信息 前言 嗯,这一篇文章更多是想分享一下我的网页分析方法.玩爬虫也快有一年了,基本代码熟悉之后,我感觉写一个爬虫最有意思的莫过于研究其网页背后的加载过程了,也就 ...
- Python爬虫项目:抓取智联招聘信息
来自https://mp.weixin.qq.com/s/0SzLGqv2p0-IWSN3r8bOHA ''' Python爬虫之五:抓取智联招聘基础版 该文件运行后会产生一个代码,保存在这个Pyth ...
- 通过Python爬虫按关键词抓取相关的新闻
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途 如今各大网站的反爬机制已经可以说是到了丧心病狂的程度,比如大众点评的字符加密.微博的登录验证等.相比较而言,新闻网站的反爬机制 ...
- python 爬虫学习:抓取智联招聘网站职位信息(二)
在第一篇文章(python 爬虫学习:抓取智联招聘网站职位信息(一))中,我们介绍了爬取智联招聘网站上基于岗位关键字,及地区进行搜索的岗位信息,并对爬取到的岗位工资数据进行统计并生成直方图展示:同时进 ...
- python爬虫关键词抓手机号_通过Python爬虫按关键词抓取相关的新闻
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 如今各大网站的反爬机制已经可以说是到了丧心病狂的程度,比如大众点评的字符加 ...
- 爬取推糖网图片小案例
前言: 好久没有更新博文了,因为工作的关系,一直没有更新博文,今天有空,就给大家带来一个爬图片的小案例.今天的目标网站就是堆糖网,关于爬取这个网站图片的案例,肯定大家都看到很多,基本都是通过搜索图片的 ...
最新文章
- java之图形化界面(GUI)
- python-2:工欲善其事,必先利其器 修改jupyter保存文件目录(亲测)
- IntelliTrace 调试、定位异常
- java帐篷_Java多线程之 Park和Unpark(十四)
- stm32f103c8t6最小系统电路原理图_嵌入式单片机之STM32F103C8T6最小系统板电路设计参考...
- python内置数据结构和stl_python里有C++ STL中的set和map吗?
- HTML前端代码分析(查看网站黑链的几种方法)暗链是什么意思
- 第三篇 ME909s-821设备描述符分析
- 火车头采集器用法说明
- 终于有人把元数据讲明白了
- Linux 安装 rar 解压
- PBR材质:基本原理和简单制作
- android img 文件解包
- 第一天,初了解锐捷网络
- 由DBeaver与PL/SQL引发的数据库吐槽
- MacOS开发-用命令行压缩文件
- java复制sheet_java-poi 复制Sheet到另一个excel的sheet中
- 如何手动制作透明的图片相框 可以供android使用
- 数字内容产业的政策背景与发展现状
- 【Python爬虫】爬取微信公众号文章信息准备工作