下厨房某词条下的所有图片爬取

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# author:小二郎
# datetime:2021/4/22 10:38
# software: PyCharm
import requests
from lxml import etree
import time
import os
import reclass xiachufangsgspider:def __init__(self):self.url = 'https://www.xiachufang.com/search/?cat=1007&keyword={}&cat=1001&page={}'self.headers = {  # 请求头文件'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:57.0) Gecko/20100101 Firefox/57.0','Upgrade-Insecure-Requests': '1','Host': 'www.xiachufang.com','Cookie': 'bid=kQ82GDsK; gr_user_id=b6c4ae54-136a-45f2-a497-ad9131dff47a; __utma=177678124.392935892.1511776434.1511776434.1511776434.1; __utmz=177678124.1511776436.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); Hm_lvt_ecd4feb5c351cc02583045a5813b5142=1511776486,1511942546; gr_session_id_8187ff886f0929da=595c7891-62df-44e1-a71a-ba6f482a200b; Hm_lpvt_ecd4feb5c351cc02583045a5813b5142=1511942570','Connection': 'keep-alive','Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8','Accept-Encoding': 'gzip, deflate',}self.headers1 = {# 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',# 'Accept-Encoding': 'gzip, deflate',# 'Accept-Language': 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2',# 'Connection': 'keep-alive',# 'Cookie': 'gr_user_id=b6c4ae54-136a-45f2-a497-ad9131dff47a; __utma=177678124.392935892.1511776434.1511776434.1511776434.1; __utmz=177678124.1511776436.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); Hm_lvt_ecd4feb5c351cc02583045a5813b5142=1511776486,1511942546; Hm_lpvt_ecd4feb5c351cc02583045a5813b5142=1511943055',# 'Host': 's2.cdn.xiachufang.com',# 'Upgrade-Insecure-Requests': '1','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:57.0) Gecko/20100101 Firefox/57.0'}def get_link(self):print('规范格式为,例如:D:/mytest/', '----没做目录校验,一定要正确填写目录')file_dir = input('请输入文件保存地址:')dt = time.strftime("%Y-%m-%d", time.localtime())# 打印文件地址,以便于做目录跳转directory = file_dir + dtif not os.path.exists(directory):print('文件夹不存在,现已经创建~~~')os.makedirs(directory, exist_ok=True)else:print('~~~文件夹地址已经存在,无需创建')input_text = input('请输入要搜索的标签:')# 创建标签文件夹:directory_input_text = file_dir + dt + '/' + input_textif not os.path.exists(file_dir + dt + '/' + input_text):print('文件夹不存在,现已经创建~~~')os.makedirs(file_dir + dt + '/' + input_text, exist_ok=True)else:print('~~~文件夹地址已经存在,无需创建')num = int(input('请输入需要的页数:'))for i in range(num):num = i + 1directory_input_text_num = directory_input_text + '/' + '第' + str(num) + '页'if not os.path.exists(directory_input_text_num):os.makedirs(directory_input_text_num, exist_ok=True)url = self.url.format(input_text, num)print(url)page_text = requests.get(url=url, headers=self.headers).texttree = etree.HTML(page_text)# 每一条信息都存在li标签中,先获取li标签对象li_list = tree.xpath('//ul[@class="list"]/li')# print(li_list)# 便利li标签,获取标题和链接地址os.chdir(directory_input_text_num)# print(os.getcwd())# m = Falsefor li in li_list:title = li.xpath('normalize-space(./div/div/p[1]/a/text())')# 使用正则过滤特殊符号rstr = '[/\\\:*?<>|@]'title1 = re.sub(rstr, '_', str(title))if '视频' not in title1:# title1 = re.findall(r'[^\*"/:?\\|<>]', title, re.S)ws = directory_input_text_num + '/' + str(title1)if not os.path.exists(ws):os.makedirs(ws, exist_ok=True)link = 'https://www.xiachufang.com/' + li.xpath('./div/div/p[1]/a/@href')[0]print(title, '    ', link + '\n')link_page = requests.get(url=link, headers=self.headers).textlink_page_tree = etree.HTML(link_page)# print(link_page_tree)try:# 大图链接link_page_list = link_page_tree.xpath('/html/body/div[4]/div/div/div[1]/div[1]/div/div[1]/img/@src')[0]# print('我是图片地址:' + link_page_list)except Exception as e:print(e)link_page_list = link_page_tree.xpath('//div[@class="block recipe-show"]/div[2]/img/@src')[0]img_data = requests.get(url=link_page_list, headers=self.headers1).content# 大图的名字# big_img_name = str(link_page_tree.xpath('/html/body/div[4]/div/div/div[1]/div[1]/div/div[1]/img/@alt')[0])big_img_name1 = '大图.jpg'big_img_path = ws + '/' + big_img_name1with open(big_img_path, 'wb') as fp:fp.write(img_data)print(big_img_name1, '下载成功')# 步骤图链接link_page_list_li = link_page_tree.xpath('//div[@class="steps"]/ol/li')# print(link_page_list_li)# if len(link_page_list_li):for ol_li in link_page_list_li:if len(ol_li.xpath('./img/@src')):ol_li_link = ol_li.xpath('./img/@src')[0]# print(ol_li_link)small_img_name = ol_li.xpath('./img/@alt')[0].replace('\n', '').replace('\r','') + '.jpg'title2 = re.sub(rstr, '_', str(small_img_name))mini_img_data = requests.get(url=ol_li_link, headers=self.headers1).contentsmall_img_path = ws + '/' + title2with open(small_img_path, 'wb') as fp:fp.write(mini_img_data)print(title2, '下载成功')# time.sleep(0.2)if __name__ == '__main__':m = xiachufangsgspider()m.get_link()

ps:个人使用代码,写的不是很规整。

下厨房某词条下的所有图片爬取相关推荐

  1. python爬取百度百科词条-python简单爬虫爬取百度百科python词条网页

    目标分析: 目标:百度百科python词条相关词条网页 - 标题和简介 入口页:https://baike.baidu.com/item/Python/407313 URL格式: - 词条页面URL: ...

  2. python爬去百度百科词条_python简单爬虫爬取百度百科python词条网页

    目标分析: 目标:百度百科python词条相关词条网页 - 标题和简介 入口页:https://baike.baidu.com/item/Python/407313 URL格式: - 词条页面URL: ...

  3. 在anaconda下创建我的第一个scrapy爬虫——爬取dmoz网站某一网址下的目录的链接名称以及链接地址...

    这里我用的python工具是anaconda. 1.首先创建一个scrapy工程: 打开anaconda promt命令行(注意这里不是使用cmd打开windows下的命令行),进入到需要创建工程的目 ...

  4. android程序 美食分享,下厨房Android产品分析

    下厨房产品宣传图 一.产品概况 1.产品简介 下厨房菜谱是一款简单实用的美食应用,可以帮助用户寻找想吃的美食,搜索精美食谱,使用购买清单选购食材,与朋友分享自己制作的美食. 2.主要竞品 美食杰.豆果 ...

  5. 爬取下载网易云热门歌单的音乐

    这个小程序最难的有2部分. 第一部分,爬取网易云网页源码. 在第一次通过requests请求https://music.163.com/ 发现返回的 源码和网页的源码完全不相同,然后通过查找资料,了解 ...

  6. 爬取网易云音乐单曲下的所有评论

    ♚ 作者:极客猴,热衷于 Python,目前擅长利用 Python 制作网络爬虫以及 Django 框架. 在使用 Ajax 技术加载数据的网站中, JavaScript 发起的 HTTP 请求通常需 ...

  7. Go语言并发爬虫,爬取空姐网所有相册图片

    转载地址:Go语言中文网 说到爬虫,不得不提到我自己写的<Python网络爬虫requests.bs4爬取空姐网图片>,可以在我的csdn看到这篇文章.这个爬虫很简洁,使用requests ...

  8. python3 + scrapy爬取妹子图(meizitu.com)

    前言 在学会scrapy之前,都是用requests + BeautifulSoup + lxml来爬取的,这样也能爬到想要的东西,但缺点是代码有些乱,可能需要自己对项目进行梳理归类.而scrapy框 ...

  9. Python爬虫: 单网页 所有静态网页 动态网页爬取

    Python爬虫: 单网页 所有静态网页 动态网页爬取 前言:所有页代码主干均来自网上!!!感谢大佬们. 其实我对爬虫还挺感兴趣的,因为我玩instagram(需要科学上网),上过IG的人都知道IG虽 ...

  10. python网页爬虫漫画案例_Python爬虫 JS案例分析:爬取鬼灭之刃漫

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 文章转载于公众号:快学Python 作者:皖渝 猪油骨,拿来卤~今天,来分享一下python图片爬 ...

最新文章

  1. 暑期项目经验(十)--struts + poi
  2. PHP使用fpdf生成pdf文件(含中文类)
  3. C++教程之lambda表达式一
  4. Java Agent的隔离实现以及卸载时一些坑
  5. C及opencv指针释放问题
  6. 《大数据》2021年第3期目次摘要
  7. NBear.Mapping使用教程(5):实体对象与NameValueCollection,Dicitonary以及NBear.Mapping性能
  8. x32dbg/x64dbg修改后如何保存到exe
  9. 密码学中PBC库的使用
  10. 对voc2007数据集进行person的单类数据抽取
  11. 微信表白代码,单身汪们还不快收藏!
  12. 笔记本vmware利用无线网卡上网设置
  13. 基于SAAS的都昌商业平台设计
  14. Keep不甘做“工具人”
  15. Python 第几周和星期几
  16. C++ 传参时传内置类型时用传值(pass by value)方式效率较高
  17. 通过一个测试项目了解EF CORE
  18. 2022年山东省职业院校技能大赛“网络安全”比赛任务书
  19. 点云孔洞定位_基于TSDF模型的点云孔洞修复方法
  20. Swift开源项目-模仿今日头条

热门文章

  1. linux pam认证 用户名,Linux-PAM 认证 模块
  2. Error in driver during machine creation: Machine didn‘t return an IP after 120 seconds, aborting
  3. jQuery推箱子小游戏
  4. Matlab 语言基础知识输入命令之ans
  5. java调用快捷支付接口_Android客户端集成支付宝快捷支付
  6. android开发日记 ——avata项目
  7. 金额数字转换成大写,英文。111,壹佰壹拾壹元整,one hundred and eleven yuan
  8. NOIP2015 口胡题解
  9. 利用微信搜索抓取公众号文章(转载)
  10. FlashFXP 便携版,U盘版,真正绿色