s6tu
# -*- coding: utf-8 -*-
# @Time : 2018/03/30 15:20
# @Author : cxa
# @File : liuuchnagtu.py
# @Software: PyCharm
import requests
from fake_useragent import UserAgent as UA
from lxml import html
import os
import threading
import traceback
import time
import random
class GetImage():
def __init__(self):
self.url="http://www.s6tu.com/explore/popular/?list=images&sort=likes_desc&page={}"
self.imgpath = "//div[@class='list-item-image fixed-size']/a/img/@src"
self.headers = {
'Accept': 'text/html, application/xhtml+xml, image/jxr, */*',
'Accept - Encoding': 'gzip, deflate',
'Accept-Language': 'zh-Hans-CN, zh-Hans; q=0.5',
'Connection': 'Keep-Alive',
'User-Agent': UA().random,
'Host': 'www.s6tu.com',}
def get_oen_page(self):
try:
os.makedirs("setu",exist_ok=True)
for i in range(1,999):
url=self.url.format(i)
Session=requests.session()
#Session.proxies.update(self.proxies)
req=Session.get(url,headers=self.headers)
if req.status_code==requests.codes.ok:
root=html.fromstring(req.text)
imglist=root.xpath(self.imgpath)
newlist=[i.replace(".md.",".")for i in imglist]
downloadThreads=[]
for i in range(0,len(newlist),int(len(newlist)/3)):
downloadThread = threading.Thread(target=self.getimglist, args=(newlist,i, i + int(len(newlist)/3)))
downloadThreads.append(downloadThread)
downloadThread.start()
for item in downloadThreads:
item.join()
print("get one page over") else:
print("errro")
time.sleep(random.randint(1,5))
except:
print("error,here is details:{}".format(traceback.format_exc()))
def getimglist(self,newlist,start,end):
if end>len(newlist):
end=len(newlist)
for i in range(start,end):
imgurl=newlist[i]
downloadThreads = []
print(imgurl)
req=requests.get(imgurl,headers=self.headers)
with open(os.path.join("setu",os.path.basename(imgurl)),"wb") as fs:
fs.write(req.content) if __name__=="__main__":
GetImage().get_oen_page()
s6tu的更多相关文章
- 15. Go 语言“避坑”与技巧
Go 语言"避坑"与技巧 任何编程语言都不是完美的,Go 语言也是如此.Go 语言的某些特性在使用时如果不注意,也会造成一些错误,我们习惯上将这些造成错误的设计称为"坑& ...
随机推荐
- 一些基础的ES6 语法
<script> window.onload = function () { //---------------------------let----------------------- ...
- web 前端2 html css一些小问题技巧
html css一些小问题技巧 1 对于儿子块float后,父亲块如果没内容就不见了,如何让父亲块依然跟随飘起了的儿子块撑起来呢?? 用到的属性after方法 公共方法作为继承即可. 1.1 方法 ...
- Trapping Rain Water I && II
Given n non-negative integers representing an elevation map where the width of each bar is 1, comput ...
- Notepad++-第一篇命令行语句执行之编译、运行Java
1.让Notepad++编译和运行Java,在电脑上要已经配置好了Java的开发环境 2.在Notepad++上面的选项栏中找到 Plugins--->Plugin Admin 3.在Avail ...
- 从头到尾说一次 Java 垃圾回收,写得非常好!
Java技术栈 www.javastack.cn 优秀的Java技术公众号 作者:聂晓龙(花名:率鸽),阿里巴巴高级开发工程 ⬆️ 图片来源于网络 之前上学的时候有这个一个梗,说在食堂里吃饭,吃完把餐 ...
- Good number(3进制)
https://codeforces.com/problemset/problem/1249/C2 C2. Good Numbers (hard version) time limit per tes ...
- Codeforces 191C (LCA+树上差分算法)
题面 传送门 题目大意: 给出一棵树,再给出k条树上的简单路径,求每条边被不同的路径覆盖了多少次 分析 解决这个问题的经典做法是树上差分算法 它的思想是把"区间"修改转化为左右端点 ...
- 3.Golang的包导入
1.golang的源码文件可以随意命名,但是属于同一个包的源文件必须声明 package base 2.golang的包引入规则 import ( "fmt" #系统包直接写名字 ...
- 十二、支持向量机(Support Vector Machines)
12.1 优化目标 参考视频: 12 - 1 - Optimization Objective (15 min).mkv 到目前为止,你已经见过一系列不同的学习算法.在监督学习中,许多学习算法的性能都 ...
- python字符串中的转义符
python字符串中的转义符 1,单引号,双引号,三引号 a='www.96net.com.cn',b="96net.com.cn",c="""96n ...