因为真正的4K图需要登录,并且登录后一天也就只能下载一张,所以就只解析爬取了内容页的高清图片(1200*633左右)

代码实现了我目前所能想到的用户骚操作的判定,例如选择的类目不在这个网站内, 或者这个类目没有那么多页之类的 废话不多说直接上代码吧

import requests
from lxml import etree
import os# 封装从栏目页进入内容页连接解析函数
def name(url, type_name, headers):url = url + page_list_url[int(type_name)]doc_name = './' + page_list_name[int(type_name)].encode('ISO-8859-1').decode('gbk')page_list_text = requests.get(url=url, headers=headers).textpage_list_tree = etree.HTML(page_list_text)page_list_limit = page_list_tree.xpath('//*[@id="main"]/div[4]/a[7]/text()')[0]while True:print("{}上限页数为{}页".format(page_list_name[int(type_name)].encode('ISO-8859-1').decode('gbk'), page_list_limit))page_need = input("请输入您要爬取{}的页数: ".format(page_list_name[int(type_name)].encode('ISO-8859-1').decode('gbk')))if page_need.isdigit() and 1 <= int(page_need) <= int(page_list_limit):  # 判断是否填写有误(包括页数判断)if not os.path.exists(doc_name):os.mkdir(doc_name)for i in range(1, int(page_need) + 1):if i == 1:  # 第1页爬取crawler(page_list_tree, doc_name)else:  # 第2页及以上爬取page_url = url + 'index_' + str(i) + '.html'page_list_text = requests.get(url=page_url, headers=headers).textpage_list_tree = etree.HTML(page_list_text)crawler(page_list_tree, doc_name)breakelse:print("请重新输入正确的数字")# 封装内容页图片连接解析函数
def crawler(page_list_tree, doc_name):img_list_url = page_list_tree.xpath('//*[@id="main"]/div[3]/ul/li/a/@href')img_name = page_list_tree.xpath('//*[@id="main"]/div[3]/ul/li/a/b/text()')for i in range(len(img_name)):img_url = 'http://pic.netbian.com' + img_list_url[i]name = img_name[i].encode('ISO-8859-1').decode('gbk') + '.jpg'img_page = requests.get(url=img_url, headers=headers).textimg_page_tree = etree.HTML(img_page)page_img_src = img_page_tree.xpath('//*[@id="img"]/img/@src')[0]page_img_src = 'http://pic.netbian.com' + page_img_srcimg = requests.get(url=page_img_src, headers=headers).contentimg_path = doc_name + '/' + namewith open(img_path, 'wb') as fp:fp.write(img)print(name + '下载成功!!!')url = 'http://pic.netbian.com'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3775.400 QQBrowser/10.6.4208.400'
}
response = requests.get(url=url, headers=headers).text
tree = etree.HTML(response)
page_list_url = tree.xpath('//*[@id="main"]/div[2]/a/@href')
page_list_name = tree.xpath('//*[@id="main"]/div[2]/a/text()')
while True:print("0.风景 1.美女 2.游戏 3.动漫 4.影视 5.明星 6.汽车 7.动物 8.人物 9.美食 10.宗教 11.背景")type_name = input("请输入对应数字: ")if type_name.isdigit() and 0 <= int(type_name) <= 11: #判断是否数字且是否超出可爬取范围name(url, type_name, headers)breakelse:print("请重新输入正确的数字")continue

【Python】爬虫(Xpath):批量爬取彼岸图网4K图(非真正4K)相关推荐

  1. Python爬虫 scrapy框架爬取某招聘网存入mongodb解析

    这篇文章主要介绍了Python爬虫 scrapy框架爬取某招聘网存入mongodb解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 创建项目 sc ...

  2. 【Python爬虫实战】爬取彼岸图库高清图片

    利用Python爬取彼岸图库高清图片 让你每天一张壁纸不重样,今天利用Python爬取 彼岸图库 http://pic.netbian.com/ 分析网页 通过首页可以看到要获取全站图片必须先抓取各个 ...

  3. Python爬虫期末作业 | 爬取起点小说网作者和书名,并以Excel形式存储

    使用Python爬虫技术爬取起点小说网作者及书名,并且以xlsx形式保存 前言 随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容. 一. ...

  4. python爬虫简单实例-爬取17K小说网小说

    什么是网络爬虫? 网络爬虫(Web Spider),又被称为网页蜘蛛,是一种按照一定的规则,自动地抓取网站信息的程序或者脚本. 爬虫流程 先由urllib的request打开Url得到网页html文档 ...

  5. Python爬虫实例: 爬取“最好大学网”大学排名

    实例2 爬取大学排名 上海交通大学设计了一个"最好大学网",上面列出了当前的大学排名.我们要设计爬虫程序,爬取大学排名信息. 爬虫功能要求: 输入:大学排名URL链接 输出:大学排 ...

  6. Python爬虫:正则表达式爬取校花网

    #正则表达式爬取校花网 # 网址 url = 'http://www.xiaohuar.com' #分页爬取大学校花图片共16页640张美图 1.导入模块 import requests import ...

  7. Python爬虫:批量爬取变形金刚图片,下载保存到本地。

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 本文文章来自:CSDN 作者:Guapifang 其实和爬取普通数据本质一样,不过 ...

  8. 【Python爬虫实战】爬取某小说网排行榜上的图书封面图片

    文章目录 一.Python爬虫必备两大模块 1.1 requests模块用于发送http请求 1.2 bs4(beautifulsoup)模块用于解析html文本 二.Python爬虫项目演示 2.1 ...

  9. python爬虫实战之爬取中国农药网

    前言:这算是和研究生老师第一次正式的进行项目,虽说开始的有点随便,但是第二战还是挺成功的!自己作为一个本科生,也很幸运可以跟着学点知识,随便帮自己学院的老师出点力.还记得第一次交接任务时是和陈瑞学长, ...

最新文章

  1. webform 跨窗体传值
  2. python多项分式求和计算_python实现利用留数定理分解分式多项式
  3. CF - 741(C. Arpa’s overnight party and Mehrdad’s silent entering) 二分图构造
  4. HDLBits答案(19)_Verilog有限状态机(6)
  5. 写在前面-2015.11.30
  6. 要怎么样做一个合格点的程序猿呢?
  7. 计算机网络自考顺序,自考计算机网络课程复习顺序是怎样?有没有好用的计算机网络自考APP?...
  8. linux安装 soapui_在Linux/Unix上安装开源测试工具SoapUI
  9. 自己开发个游戏其实挺简单(这是一个神奇的游戏-看透美女其实很容易)
  10. pr电子相册如何制作
  11. 君子签电子签解决纸质合同签署痛点,让6大业务文件签署便捷高效
  12. 睡前必备神器——倒计时定时关闭手机音乐声音APP
  13. Office2007页眉有横线
  14. 快速扫描3D建模技术,仅仅只需要这三个步骤
  15. 搜索引擎关键词优化可以怎么做?
  16. 用于持续医疗监测的无袖带血压估计算法【翻译】
  17. EPLAN使用技巧总结
  18. SIGIR2020|基于自注意力机制和多鉴别器的序列推荐
  19. 证书系统64驱动签名工具64Signer
  20. xy苹果助手安装_XY苹果助手下载_XY苹果助手下载安装【免费手机版】-太平洋下载中心...

热门文章

  1. 因特服务器协议,Internet邮件服务协议
  2. android应用判断蓝牙是否连接,如何以编程方式判断蓝牙设备是否已连接?
  3. 统计二进制中比特1的个数
  4. Ubuntu16.04 在ROS中配置RealSence D435 并标定深度相机与rplidar外参
  5. 如何阻止input的focus事件
  6. java基础入门txt下载地址_java基础入门-ZipOutputStream打包下载
  7. 谷歌宣布设立100亿美元基金助力印度数字经济发展
  8. scrapy爬取伯乐在线文章
  9. calendar获取本周一的日期_Swift - 获取本周(或指定日期所在周)的第一天、最后一天日期...
  10. OSCAR开源大会 | 「开源学」:如何分门别类理解开源