【python】+基础简单语言爬取妹子图,初学者编写(大佬勿喷)适合小白...
本帖最后由 wushaominkk 于 2020-4-30 15:48 编辑import requests
from lxml import etree
import os
import time
header = {
"user-agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.92 Safari/537.36",
'referer': 'https://www.mzitu.com/'
}
'''列出来所有分页'''
url = 'https://www.mzitu.com/page/1/'#要爬取的地址
r = requests.get(url,headers =header).text#解析网页并转成文本
html = etree.HTML(r)#把解析好的网页转成xpath可爬取类型
max_page = html.xpath('//*[@class="nav-links"]/a/text()')#下面列表倒数第二个是总页数max_page[-2]
print(max_page[-2])
list_name = (''.join(html.xpath('//*[@class="main-image"]/p/a/img/@alt')))
i = 0#设定起点
while i < int(max_page[-2]):#循环输出列表页码
i = i + 1#循环一遍url+1
list_url = 'https://www.mzitu.com/page' + '/' + str(i)#拼接url
print(list_url)#输出每一页的url
'''获取分页中的图集url地址'''
r = requests.get(list_url, headers=header).text# 解析网页并转成文本
html = etree.HTML(r)# 把解析好的网页转成xpath可爬取类型
list_page_url = html.xpath('//*[@id="pins"]/li/a/@href')#获取列表中的图集url
for page_url in list_page_url:
print(page_url)#输出图集url
'''开始获取分页url'''
r = requests.get(page_url, headers=header).text# 解析网页并转成文本
html = etree.HTML(r)# 把解析好的网页转成xpath可爬取类型
max_page = html.xpath('//*[@class="pagenavi"]/a/span/text()')# 下面列表倒数第二个是总页数max_page[-2]
list_name = (''.join(html.xpath('//*[@class="main-image"]/p/a/img/@alt')))
if not os.path.exists(list_name):
os.mkdir(list_name)
i = 0# 设定起点
while i < int(max_page[-2]):# 循环输出图集页码
i = i + 1# 循环一遍url+1
list_url = page_url + '/' + str(i)# 拼接url
print(list_url)#输出url
time.sleep(1)# 每爬取一页停留一秒,给网站一个休息时间
'''开始下载图片'''
r = requests.get(list_url, headers=header).text# 解析网页并转成文本
html = etree.HTML(r)# 把解析好的网页转成xpath可爬取类型
pic_name = html.xpath('/html/body/div/div/h2/text()')# 图片标题
pic_url = html.xpath('/html/body/div/div/div/p/a/img/@src')# 图片下载地址
for pic_name in pic_name:# 循环获取图片名字
for pic_url in pic_url:# 获取要下载图片的地址
with open(list_name + '/' + pic_name + '.jpg', 'wb') as pic:
pic_url = requests.get(pic_url, headers=header).content
pic.write(pic_url)
print(pic_name)#输出图片名称 学习一下了{:1_927:} indian806 发表于 2020-4-29 17:18
总是找借口,导致现在都没去学
我也是断断续续的学习,偶然间工作轻松了点好好的学习了一下.现在也就会爬取一些简单不是很富在的网站,大家一起加油学习 学习了,感谢谢分享
学习了,感谢谢分享
https://cdn.jsdelivr.net/gh/hishis/forum-grandmaster-for-discuz/public/images/patch.gif 这个语言好像很受欢迎!不知道有没有论坛,想去学习一下。 芜湖起飞{:301_997:} 学习学习。感谢谢分享! 总是找借口,导致现在都没去学{:1_907:} 楼主坚持住,不要像我这样学了几天就开小差了