输入关键字从百度贴吧下载相应的图片

import requests
from lxml import etree

class TieBa(object):
    def __init__(self,query_string):
        self.query_string = query_string
        self.base_url = ‘https://tieba.baidu.com/f‘
        self.headers = {"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) "
                                      "AppleWebKit/537.36 (KHTML, like Gecko) "
                                     }

    def params(self):
        para = {"kw": self.query_string}
        return para

    def send_request(self,url, parms={}):
        response = requests.get(url, params= parms, headers = self.headers)
        return response.content

    # 2. 数据类型转换,提取数据
    def parse_data(self, data, rule):
        html_data = etree.HTML(data)
        data_list = html_data.xpath(rule)
        return data_list

    # 3. 保存数据
    def save_data(self, data, name):
        print(name)
        image_path = "D:/img/" + name
        with open(image_path, ‘wb‘) as f:
            f.write(data)

    # 主要运行的方法
    def run(self):
        tieba_params = self.params()
        datas = self.send_request(self.base_url,tieba_params)

        #xpath解析
        detail_rule = ‘//div[@class="t_con cleafix"]/div/div/div/a/@href‘
        url_list = self.parse_data(datas, detail_rule)

        for label in url_list:
            image_url = ‘https://tieba.baidu.com‘ + label
            detail_data = self.send_request(image_url)

            # 解析图片
            detail_url = ‘//img[@class="BDE_Image"]/@src‘
            image_url_list = self.parse_data(detail_data, detail_url)

            for image_url_1 in image_url_list:
                image_data = self.send_request(image_url_1)
                image_name = image_url_1[-12:]
                #保存图片
                self.save_data(image_data, image_name)

if __name__ ==‘__main__‘:
    a = input(‘请先在D盘创建一个名为img的文件夹来接收图片\n‘
              ‘接下来请输入你要查询的关键字: ‘)
    tieba = TieBa(a)
    tieba.run()

  

原文地址:https://www.cnblogs.com/wshr210/p/11302299.html

时间: 2024-10-11 07:18:27

输入关键字从百度贴吧下载相应的图片的相关文章

免费百度地图矢量下载工具V5.7使用文档

免费百度地图矢量下载工具V5.7发布了,可以在 https://download.csdn.net/download/niudieyi/10669822 下载.没有CSDN积分的可以加QQ群 732173652 下载.主要更新为POI下载提供简单和复杂版本的关键字.同时提供了软件使用文档. 最近闲来无事,写了一个使用文档.内容如下: 免费百度地图矢量数据爬取器V5.7使用手册 一.软件安装 软件无需安装,直接运行文件夹下的 "百度地图矢量数据下载.exe" 即可 二.软件使用 软件主界

使用EditText+ListView并结合TextWatcher实现输入关键字筛选数据

想必大家应该遇到过这样的情况,当点击Spinner控件后弹出的列表内容超多,一个一个滑动着去寻找所要的项很麻烦,尤其是当自己知道想要选择的内容,这时候如果我们只需要输入某些关键字,就可以讲上百条数据筛选出几十条甚至更少,岂不是会方便很多. 其实这是项目中的一个需求,由于目前公司接触的多数和数据采集相关的PDA项目,有很多填写项一个spinner已经不方便满足需求,虽然客户还没有提 出,但提前做好优化总是没有错的,所以项目组的同事提出这个需求并让我尝试着去做出来,当中给了我不少帮助和意见. 闲言少

2本Hadoop技术内幕电子书百度网盘下载:深入理解MapReduce架构设计与实现原理、深入解析Hadoop Common和HDFS架构设计与实现原理

这是我收集的两本关于Hadoop的书,高清PDF版,在此和大家分享: 1.<Hadoop技术内幕:深入理解MapReduce架构设计与实现原理>董西成 著  机械工业出版社2013年5月出版 2.<Hadoop技术内幕:深入解析Hadoop Common和HDFS架构设计与实现原理>蔡斌.陈湘萍 著  机械工业出版社2013年4月出版 百度网盘下载地址: http://pan.baidu.com/s/1sjNmkFj

wpf CollectionViewSource与ListBox的折叠、分组显示,及输入关键字 Filter的筛选

在wpf中虽然ObservableCollection<T>作为ListBox的Itemsource,很好,很强大!但是CollectionViewSource与ListBox才是天作之合! wpf中ListBox支持分组显示,CollectionViewSource.GroupDescriptions为其实现了分组.废话不多说,下面上ListBox分组显示的Demo代码: XAML: <Window x:Class="WpfListGroup.MainWindow"

百度云管家下载大文件速度慢的解决办法

win7下百度云管家下载百度网盘上的大文件,速度基本在100K以内.网上搜索解决办法有2类: 1,一种是迅雷法.采用替换URL中的home为wap,取得下载链接,然后用迅雷下载.但实际上迅雷下载速度也不快,且不稳定,有时200~300KB/s,有时根本没速度,下载会失败.换成QQ旋风也一样,没速度. 2,一种是换云管家版本,采用不限速的低版本.实践中发现,2.1版并不行,4.1版OK,基本满速下载. 新版本的百度云的问题,换个老版本,我用4.1.0,一样全速下载,下面百度云4.1.0绿色版连接,

百度云离线下载含有违规内容检测方法分析

最近国家开始一轮净网行动,清除网上的淫秽***信息.各大互联网厂家纷纷开始行动,比如当年很好用的百度云离线下载就一度关闭.后来再次开启后,就出现了这句经典词,因含有违规内容被屏蔽无法下载. 其实被屏蔽的不一定都是不健康视频,有些仅仅是因为文件名含有一些字眼而已,比如一些美国大片的枪版就几乎都不能通过百度云的离线下载检测.据说这种方法还在迅雷等地方都有检测,因此我们来分析一下,这个检测到底是如何进行的. 首先上传了一个BT文件,BT文件里面的内容为大闹天宫的电影,但是我把文件名改成了含有敏感词汇的

计算机相关专业所用软件---百度云链接下载

计算机相关专业所用软件---百度云链接下载 Unity3D软件:链接:http://pan.baidu.com/s/1qYJhWXQ 密码:4qexAdobe Adobe+CC系列软件2014+激活补丁(PS.DW等):链接:http://pan.baidu.com/s/1pLhWjPp 密码:fk7kadt-bundle-windows-x86_64:链接:http://pan.baidu.com/s/1i4UBnUl 密码:pqlrVS2008专业版.iso:链接:http://pan.ba

Android4.4系统源码百度网盘下载

众所周知.Android如今非常火,肯定也有非常多android开发人员像我一样想研究android系统的源码.可是假设依照Google官方站点http://source.android.com/source/downloading.html上面说的步骤下载.因为在国内连接谷歌的server网速实在太慢,可是android系统的源码非常大.超过8G.我在网上看到有哥们说他下了一个多月才下载完.更让人难以接受的是,下载过程中网络连接差点儿一定会多次中断.而假设连接超时,就会报错.我在下载过程中就报

百度地图SDK下载以及创建应用(申请Key)和本地导入Demo

一.百度地图SDK下载 http://lbsyun.baidu.com/sdk/download?selected=location 选择全部,然后分别下载开发包.示例代码.类参考. 二.创建应用(申请Key) http://developer.baidu.com/map/index.php?title=android-locsdk 首先登陆百度账号,然后再打开上面的链接地址. 点击“获取密钥” 如果还没有注册成为百度开发者的话,会出现注册的界面. 填写信息后,点击“提交” 回到android