Python 爬取堆糖图片

 1 import requests,json,urllib.parse
 2 import threading
 3 threading_lock=threading.BoundedSemaphore(value=10)#设置最大线程
 4
 5 def get_page(url):
 6     page=requests.get(url)
 7     page=page.content
 8     page=page.decode(‘utf-8‘)
 9     return page
10
11 def pages_from_duitang(label):
12     pages=[]
13     url = ‘https://www.duitang.com/napi/blog/list/by_search/?kw={}&type=feed&start={}&limit=100‘
14     label=urllib.parse.quote(label)
15     for index in range(0,3000,100):
16         page_url=url.format(label,index)
17         print(page_url)
18         page=get_page(page_url)
19         pages.append(page)
20     return pages
21
22
23
24 def findall_page(page,startpaet,endstart):
25     all_strat=[]
26     end=0
27     while page.find(startpaet,end) != -1:
28         start=page.find(startpaet,end)+len(startpaet)
29         end=page.find(endstart,start)
30         string=page[start:end]
31         all_strat.append(string)
32     return  all_strat
33
34 def pic_urls_from_pages(pages):
35     pic_urls=[]
36     for page in pages:
37         urls=findall_page(page,‘"path":"‘,‘"‘)
38         pic_urls.extend(urls)
39
40     return pic_urls
41
42 def download_pics(url,name):
43     r=requests.get(url)
44     path=r‘C:\Users\Administrator\Desktop\爬取堆糖图片\pics\\‘+str(name)+ ‘.jpg‘
45     with open(path,‘wb‘) as f:
46         f.write(r.content)
47     threading_lock.release()
48 def main(label):
49     pages=pages_from_duitang(label)
50     pic_urls=pic_urls_from_pages(pages)
51     name=0
52     for url in pic_urls:
53         name+=1
54         threading_lock.acquire()
55         print(‘正在下载第{}张图片‘.format(name))
56         t=threading.Thread(target=download_pics,args=(url,name))
57         t.start()
58         #download_pics(url,name)
59
60
61
62 main(‘表情包‘)
时间: 2024-11-03 01:25:05

Python 爬取堆糖图片的相关文章

零基础爬取堆糖网图片(一)

零基础爬取堆糖网图片(一) 全文介绍: 首先堆糖网是一个美图壁纸兴趣社区,有大量的美女图片 今天我们实现搜索关键字爬取堆糖网上相关的美图. 当然我们还可以实现多线程爬虫,加快爬虫爬取速度 涉及内容: 爬虫基本流程 requests库基本使用 urllib.parse模块 json包 jsonpath库 图例说明: 请求与响应 sequenceDiagram 浏览器->>服务器: 请求 服务器-->>浏览器: 响应 爬虫基本流程 graph TD A[目标网站] -->|分析网

python3网络爬虫(2.1):爬取堆糖美女

额,明明记得昨晚存了草稿箱,一觉醒来没了,那就简写点(其实是具体怎么解释我也不太懂/xk,纯属个人理解,有错误还望指正) 环境: 版本:python3 IDE:pycharm2017.3.3 浏览器:火狐(浏览器建议火狐,Chrome) 爬取网站:堆糖 选堆糖是因为比较好爬取(除了img文件就是xhr文件),别网站的反爬取对我这个水平来说都太心机了 安装配置什么的之前都写过,这里就不提了,直接开始 1.先来浏览一下这个网站,打开堆糖官网,搜索校花,他就会给我们推荐一些图片,当我们滚动到页面底部时

python爬取网站美女图片

今天周五,项目刚刚上线完,有些时间,闲着无聊,继续复习爬虫,这次打算爬取网站的美女图片.得先找到目标,然后目标网站还不会反爬虫,因为自己只是小白,好了开始. 寻找目标,发现了目标,哈哈 http://www.meizitu.com 里面图片按专题分类.先看下页面找出相关源码 页面 源码 即只要抓出来图片集的link跟图片集里面的link对应的jpg就可以了, 可以用beautifulsoup或者正则匹配,我这里用正则匹配需要的link.然后遍历整个网站就可以了 请看源码解释 #!bin/pyth

python爬取基础网页图片

python基础爬虫总结 1.爬取信息原理 与浏览器客户端类似,向网站的服务器发送一个请求,该请求一般是url,也就是网址.之后服务器响应一个html页面给客户端,当然也有其他数据类型的信息,这些就是网页内容.我们要做的就是解析这些信息,然后选择我们想要的,将它爬取下来按要求写入到本地. 2. 爬虫基本流程 1.获取网页的响应的信息 这里有两个常用的方法 html = requests.get(url) return html.text 或者 html = urllib.request.urlo

爬虫练习3 爬取堆糖网校花照片

知识点: 多线程的实现图片的下载及写入字符串高级查找了解动态加载和jsonrequest 的用法 获取数据的api'https://www.duitang.com/napi/blog/list/by_search/?kw=%E6%A0%A1%E8%8A%B1&start=0&limt=1000'图片路径 "path": "https://b-ssl.duitang.com/uploads/item/201509/18/20150918195615_JfdKm.

使用python爬取P站图片

刚开学时有一段时间周末没事,于是经常在P站的特辑里收图,但是P站加载图片的速度比较感人,觉得自己身为计算机专业,怎么可以做一张张图慢慢下这么low的事,而且这样效率的确也太低了,于是就想写个程序来帮我下,但是只会C与c++的我看来是无法用他们来做这事的,于是就去学了下简单,强大的python,不得不说,python的模块的确叼,依靠几个模块就可以在完全不知道原理的前提下让程序执行相应功能,这样虽然爽但对于学习不利,我这次就权当写着玩吧,在我学会怎样使用c++来做这事之前我不会再使用python编

Python爬取半次元图片[一]

用到模块有requests,BeautifulSoup4,lxml(BeautifulSoup基于这个解析,据说速度会快很多),re(正则ps.只用到了一个compile函数) 介绍下思路: 创建Img文件夹,解析html标题为文件夹名称(创建在Img文件夹下),利用Firefox模块Firehug分析网页(这是需要自己动手分析,不是写代码) 接下来介绍一下使用的函数 re: re.compile("%s"%(往里面填匹配字符就行)) BeautifulSoup: BeautifulS

python 爬取知乎图片

SyntaxError: Non-UTF-8 code starting with '\xbf' in file python-zhihu -v1.2.py on line 34, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details 安装需要的模块 pip install requestspip install PyQuery pip show 命令检查模块是否安装成功(如图所示是成功的)

python爬取某个网站的图片并保存到本地

python爬取某个网站的图片并保存到本地 #coding:utf-8 import urllib import re import sys reload(sys) sys.setdefaultencoding('gb2312') #获取整个页面的数据 def getHtml (url): page = urllib.urlopen(url) html = page.read() return html #保存图片到本地 def getImg(html): reg = r'src="(.+?\.