【python】秀人集-写真集-爬虫-2.0

这篇具有很好参考价值的文章主要介绍了【python】秀人集-写真集-爬虫-2.0。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

好久不见呀,各位。[/坏笑]

自从上次发布文章已经过去了许久,之前承诺过的2.0版本我就现在嘛出来吧。(毕竟,评论区都已经开始催了,拖不了了…)

emm…具体的网页链接我就不写在正文了,我会放在代码区的注释部分。


闲话不多说,下面就是本次更新的代码:

# 目标网址:https://www.xiurenb.com

# 导入库
import time, os, requests
from lxml import etree
from urllib import parse

# 定义请求头

headers = {
	'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36 Edg/96.0.1054.62'
	}

# 格式化列表
img_list = []
url_list = []
page_list = []

# 编码输入数据
human_unencode = input('Enter the human_name:')
human_encode = parse.quote(human_unencode)

# 编码后索引url
url_human = 'https://www.xiurenb.com/plus/search/index.asp?keyword=' + str(human_encode) + '&searchtype=title'

# 获取指定人物写真集列表页数
res_first = requests.get(url=url_human, headers=headers)
tree_first = etree.HTML(res_first.text)
Num_first = len(tree_first.xpath('/html/body/div[3]/div[1]/div/div/ul/div[3]/div/div[2]/a'))
print(f'Page_total:{Num_first}')

# 获取指定页数的每个写真集的url并写入列表
i = input('Enter the PageNumber:')
print(f'Getting the page-{i}...')
res_human = requests.get(url_human + '&p=' + str(i))
tree_human = etree.HTML(res_human.text)
jihe_human = tree_human.xpath('/html/body/div[3]/div[1]/div/div/ul/div[3]/div/div[1]/div/div[1]/h2/a/@href')
for page in jihe_human:
    page_list.append(page)
time.sleep(2)

# 获取每个写真集的全部图片
for Page_Num in page_list:
	url = 'https://www.xiurenb.com' + str(Page_Num)
	Num_res = requests.get(url=url, headers=headers)
	Num_tree = etree.HTML(Num_res.text)
	Num = len(Num_tree.xpath('/html/body/div[3]/div/div/div[4]/div/div/a'))
	url_list.append(url)
	for i in range(1, int(Num) - 2):
		url_other = url[:-5] + '_' + str(i) +'.html'
		url_list.append(url_other)
	# 获取所有图片url
	for url_img in url_list:
		res = requests.get(url=url_img, headers=headers)
		tree = etree.HTML(res.text)
		img_src = tree.xpath('/html/body/div[3]/div/div/div[5]/p/img/@src')
		for img in img_src:
			img_list.append(img)
		time.sleep(0.5)
	# 创建保存目录
	res = requests.get(url=url_list[0], headers=headers)
	res.encoding = 'utf-8'
	tree = etree.HTML(res.text)
	path_name = tree.xpath('/html/body/div[3]/div/div/div[1]/h1//text()')[0][11:]
	print(path_name)
	if not os.path.exists(f'C:/Users/liu/Pictures/{human_unencode}'):
		os.mkdir(f'C:/Users/liu/Pictures/{human_unencode}')
	the_path_name = f'C:/Users/liu/Pictures/{human_unencode}/' + path_name
	if not os.path.exists(the_path_name):
		os.mkdir(the_path_name)
		# 保存图片数据
		num = 0
		for j in img_list:
			img_url = 'https://www.xiurenb.com' + j
			img_data = requests.get(url=img_url, headers=headers).content
			img_name = img_url.split('/')[-1]
			finish_num = str(num) + '/' + str(len(img_list))
			with open(f'C:/Users/liu/Pictures/{human_unencode}/' + path_name + '/' + img_name, 'wb') as f:
				print(f'Downloading the img:{img_name}/{finish_num}')
				f.write(img_data)
				f.close()
			num += 1
			time.sleep(0.5)
		# 再次格式化列表
		img_list = []
		url_list = []
	else:
		print('gone>>>')
		# 再次格式化列表
		img_list = []
		url_list = []

# 输出结束提示
print('Finished!')

这次代码比较长,我就不一一解释了。这里需要注意的是,记得把保存路径换成自己的,毕竟用户名不同。

这个版本就是通过人名搜索写真集,比如:唐安琪。运行代码时输入想要搜索的内容,中间再输入想要下载的页数就可以了。

如果有什么其他问题的话,可以评论区问我。

当然,如果我解决不了的话我会去补课的[/痛哭],毕竟我学python也没多久…文章来源地址https://www.toymoban.com/news/detail-626812.html

到了这里,关于【python】秀人集-写真集-爬虫-2.0的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 做爬虫如何选择Python和C语言

    做爬虫如何选择Python和C语言

    目录 优劣势分析 Python 进行爬虫的优势: Python 进行爬虫的劣势: C进行爬虫的优势: C进行爬虫的劣势: 示例代码说明 Python 示例代码: C语言 示例代码: 怎么选择 Python 进行爬虫的优势: 1. 简单易用:Python是一种高级语言,语法相对简单易懂,易于上手,对于初学者来说是

    2024年02月13日
    浏览(12)
  • Python爬虫开发入门及开发技巧大全

    Python爬虫开发入门及开发技巧大全

    get方法 post方法 这在某些情况下比较有用, 比如IP被封了,或者比如IP访问的次数受到限制等等。 是的没错,如果想同时用代理和cookie, 那就加入proxy_support然后operner改为 ,如下: 某些网站反感爬虫的到访,于是对爬虫一律拒绝请求。 这时候我们需要伪装成浏览器, 这可以

    2023年04月15日
    浏览(11)
  • 【100天精通python】Day41:python网络爬虫开发_爬虫基础入门

    目录  专栏导读  1网络爬虫概述 1.1 工作原理 1.2 应用场景 1.3 爬虫策略

    2024年02月12日
    浏览(18)
  • 【100天精通python】Day45:python网络爬虫开发_ Scrapy 爬虫框架

    目录 1 Scrapy 的简介 2 Scrapy选择器 3 快速创建Scrapy 爬虫 4 下载器与爬虫中间件

    2024年02月11日
    浏览(17)
  • python爬虫入门(1)-开发环境配置

          所谓的爬虫,就是通过模拟点击浏览器发送网络请求,接收站点请求响应,获取互联网信息的一组自动化程序。 也就是,只要浏览器(客户端)能做的事情,爬虫都能够做。       现在的互联网大数据时代,给予我们的是生活的便利以及海量数据爆炸式的出现在网络中。

    2024年02月08日
    浏览(13)
  • Python3网络爬虫开发实战

    1.1 URI和URL URI:统一资源标识符(Uniform Resource Identifier) URL:统一资源定位符(Uniform Resource Locator) URN:统一资源名称(Uniform Resource Name) 1.2 HTTP和HTTPS HTTP:超文本传输协议(Hypertext Transfer Protocol) HTTPS:以安全为目标的HTTP通道(Hypertext Transfer Protocol) 1.3 请求(Requset) 1.3.1 请求方式 函数

    2024年02月04日
    浏览(24)
  • 【Python爬虫开发基础⑩】selenium概述

    🚀 个人主页 :为梦而生~ 关注我一起学习吧! 💡 专栏 :python网络爬虫从基础到实战 欢迎订阅!后面的内容会越来越有意思~ 💡 往期推荐 : ⭐️前面比较重要的 基础内容 : 【Python爬虫开发基础⑥】计算机网络基础(Web和HTTP) 【Python爬虫开发基础⑦】urllib库的基本使用

    2024年02月12日
    浏览(9)
  • 【Python爬虫开发】selenium从入门到精通

    【Python爬虫开发】selenium从入门到精通

    1、概述 selenium本身是一个自动化测试工具。它可以让python代码调用浏览器。并获取到浏览器中加载的各种资源。 我们可以利用selenium提供的各项功能。 帮助我们完成数据的抓取。 2、学习目标 掌握 selenium发送请求,加载网页的方法 掌握 selenium简单的元素定位的方法 掌握 s

    2024年02月03日
    浏览(11)
  • 基于Python的HTTP代理爬虫开发初探

    基于Python的HTTP代理爬虫开发初探

    前言 随着互联网的发展,爬虫技术已经成为了信息采集、数据分析的重要手段。然而在进行爬虫开发的过程中,由于个人或机构的目的不同,也会面临一些访问限制或者防护措施。这时候,使用HTTP代理爬虫可以有效地解决这些问题,避免被目标网站封禁或者限制访问。   一

    2024年02月12日
    浏览(10)
  • Python爬虫开发:Scrapy框架与Requests库

    Python爬虫开发中有两个非常流行的工具:Scrapy框架和Requests库。它们各自有自己的优点和适用场景。 Scrapy Scrapy是一个为了爬取网站并提取结构化数据而编写的应用框架,可以非常方便地实现网页信息的抓取。Scrapy提供了多种可配置、可重用的组件,如调度器、下载器、爬虫和

    2024年02月19日
    浏览(8)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包