python爬取论坛图片_python爬取某网站妹子图集
大家好,又见面了,我是你们的朋友全栈君。
import requests
from lxml import etree
import time
import os
import re
def huoquyuanma(url = ‘https://www.tujigu.com/’):
headers = {
‘Accept’: ‘*/*’,
‘Accept-Language’: ‘en-US,en;q=0.8’,
‘Cache-Control’: ‘max-age=0’,
‘User-Agent’: ‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36’,
‘Connection’: ‘keep-alive’,
‘Referer’: ‘http://www.baidu.com/’
}
try:
new = requests.get(url , headers=headers , timeout = 16) #获取源码
time.sleep(2) #等待
new.encoding = new.apparent_encoding #防乱码
t = new.text
t = etree.HTML(t) #转换成xml格式
return t
except:
print(f’获取{url}页面失败,已经放弃!’)
pass
def huoquzuidaye (count):
t = huoquyuanma()
shuliang = t.xpath(‘//div[5]/ul/li[1]/a/@href’) #取得最新图集链接
zuidashu = shuliang[0].split(‘/’) #分割链接,取得最大的图集数量
if int(count) +6 > int(zuidashu[-2]):
# 最大图集数量获取的是首页最新图集的编号!
print(f’输入的数值超过现有图集数量,已经把数量更改为现有图集数量{zuidashu[-2]}’)
print(‘准备开始>>>>>>>’)
return zuidashu[-2]
else:
print(‘准备开始>>>>>>>’)
return count + 6
def huoqutujimingcheng(url):
url1 = url
t = huoquyuanma(url1) # 获取页面源码
tujimingc = t.xpath(‘//div[@class=”tuji”]/div[@class=”weizhi”]/h1/text()’) #获取图集标题
tup = t.xpath(‘//div[@class=”tuji”]/p[3]/text()’) #获取图集内图片数量
pppp = tup[0].split(‘P’) #分割文本去掉数字后的”p“
mp = pppp[0].split(‘ ‘) #分割文本 获得图集内图片数量的数字
link = t.xpath(‘//*[@id=”pages”]/a/@href’)
zishuliang = t.xpath(‘//*[@id=”pages”]/text()/following-sibling::a/text()’) #子页面总数量
# print(link)
return mp[1] , tujimingc ,link,zishuliang[-2] #把图集内图片数量和图集名称返回
zongji = 0
print(‘采集的图集数量最小为1’)
count = input(‘请输入需要采集的图集数量:’)
zuidaye = int(huoquzuidaye(count)) #调用函数取得最大图集编号
for i in range(6,zuidaye): #在6-最大图集编号中间循环
tuji = ‘https://www.tujigu.com/a/’ + str(i) + ‘/’ #构造url
# print(tuji)
aaa = huoqutujimingcheng(tuji) #调用函数取得图集名称和图集内图片数量及全部的图集子页面url
mingcheng = 1 #实在不知道咋命名了……随便弄了个变量命名!
name = re.sub(‘\s’ , ” , aaa[1][0]) #清理一下获取到的图集名,免得命名文件夹的时候出现奇怪的问题
path = ‘D:/tujigu/’+str(name) #构造存储路径
if not os.path.exists(path):
os.makedirs(path) #如果路径不存在就创建
ss = int(aaa[3])
for j in range(1,ss+1):
if j == 1:
ht = ‘https://www.tujigu.com/a/’ + str(i) + ‘/’ #第一页后面加后缀不能访问
else:
ht = ‘https://www.tujigu.com/a/’ + str(i) + ‘/’ + str(j) + ‘.html’ #构造第二页以后的页面
piclist = huoquyuanma(ht).xpath(‘//div[@class=”content”]/img/@src’) #获取当前页面下所有的图片列表
for m in piclist:
# print(f’正在采集{aaa[1][0]}的第{mingcheng}张,一共{aaa[0]}张’)
tupian = requests.get(m)
with open(path + ‘/’ + str(mingcheng) + ‘.jpg’ , ‘wb’) as f: #写入图片
f.write(tupian.content)
zongji += 1
print(f'{aaa[1][0]}的第{mingcheng}张采集完毕!一共{aaa[0]}张,还剩{int(aaa[0]) – mingcheng}张!当前图集编号:{i}’)
mingcheng += 1
print(f’采集完毕!本次采集一共采集到了{zongji}张图片!’)
上一篇: 网页在线播发视频 在线查看文档
下一篇: 煎蛋网全站妹子图爬虫
推荐阅读
-
技术揭秘】爬取网站或APP应用的几种常用程序:RPA、抓包工具、Python爬虫,你知道多少?
-
python爬取论坛图片_python爬取某网站妹子图集
-
python爬虫爬取图片
-
如何用Python大批量爬取网站图片
-
Python爬取天堂网危险蘑菇图片
-
python多线程爬取某网站全部h漫画_Python多线程爬虫爬取网页图片
-
使用Python爬取51cto网站上的觅知网PPT资源
-
Python爬虫:通过关键字爬取百度图片
-
Python图片多线程爬虫,附带工具脚本助手,用于爬取某度图片。
-
Python爬虫之requests库网络爬取简单实战实例1:京东商品页面的爬取实例2 : 亚马逊商品页面爬取实例3: 百度/360搜索关键词提交爬虫实例4 网络图片的爬取和存储实例5 IP地址归属地查