Python爬取百度图片—模板

本文介绍了一种使用Python和requests库从百度图片搜索结果中批量下载图片的方法。通过定义一个函数,可以指定关键词、开始和结束页数以及保存路径,实现自动化图片抓取。文章详细展示了如何构造请求参数,解析JSON响应并下载图片。

 需要第三方库requests支持

         通过pip安装

         cmd输入:pip install requests

 

通过关键字进行爬取

import json
import os
import requests
def downloadImage(keyword,begin,end,file):
    id=0;
    if not os.path.exists(file):  # 目录不存在时,创建目录
        os.makedirs(file)
    for i in range(begin*30,end*30,30):
        data   = ({
            'tn': 'resultjson_com',
            'ipn': 'rj',         
            'queryWord': keyword,
            'word': keyword,     
            'pn': i,
            'rn': 30    
         })
        url = 'https://image.baidu.com/search/acjson'
        req=requests.get(url,params=data).json().get("data");
        for it in req:
            if 'thumbURL' in it and len(it['thumbURL'])>0:
                 print('正在下载:%s' % it['thumbURL'])
                 img = requests.get(it['thumbURL'])
                 open(file + '%d.jpg' % id, 'wb').write(img.content)
                 id += 1
            else:
                 print('链接已失效')
if __name__ == '__main__':
    dataList = downloadImage('星空',0,100,'d:/myImage/')  # (关键字,起始页数,终止页数(30张/页),存储目录)

 

### 使用Python爬取百度咨询指数数据 要实现使用 Python 爬取百度咨询指数的功能,可以按照以下方法构建程序逻辑: #### 1. 数据请求与解析 为了获取百度咨询指数的相关数据,通常需要模拟浏览器行为发送 HTTP 请求并解析返回的 HTML 或 JSON 响应。以下是具体的技术细节: - **HTTP 请求库**: 可以使用 `requests` 库来发起 GET/POST 请求[^1]。 - **HTML/XML 解析器**: 利用 `BeautifulSoup` 来解析网页结构中的目标数据[^1]。 如果目标页面提供了 API 接口,则可以直接通过接口访问所需数据;如果没有公开的 API,可能需要逆向分析其前端脚本加载机制,找到动态加载数据的方式[^3]。 #### 2. 百度咨询指数特殊处理 对于某些加密或者编码后的数值(如百度指数),需额外编写解密算法才能得到真实值。例如,在获取到 `data` 和 `ptbk` 后,定义如下解码函数完成转换操作[^3]: ```python def decrypt(ptbk, index_data): n = len(ptbk) // 2 a = dict(zip(ptbk[:n], ptbk[n:])) return "".join([a.get(s, '') for s in index_data]) ``` 此部分代码片段展示了如何基于给定参数重构原始索引信息的过程。 #### 3. 完整示例代码框架 下面提供了一个简化版本的整体架构供参考,实际应用时还需考虑异常捕获、代理设置等问题: ```python import requests from bs4 import BeautifulSoup def fetch_baidu_index(keyword): url = f"https://www.baidu.com/s?wd={keyword}" headers = { 'User-Agent': ('Mozilla/5.0 (Windows NT 10.0; Win64; x64)' 'AppleWebKit/537.36 (KHTML, like Gecko)' 'Chrome/91.0.4472.124 Safari/537.36') } response = requests.get(url=url, headers=headers) soup = BeautifulSoup(response.text, "html.parser") # 提取感兴趣的部分... results = [] items = soup.find_all('div', class_='result c-container ') for item in items: title = item.h3.a.string.strip() if item.h3 and item.h3.a else '' link = item.h3.a['href'] if item.h3 and item.h3.a else '' result_item = {'title': title, 'link': link} results.append(result_item) return results if __name__ == "__main__": keyword = input("请输入关键词:") data = fetch_baidu_index(keyword=keyword) print(data) ``` 注意以上仅为演示用途的基础模板,针对特定需求还应该调整相应配置项以及优化性能表现等方面的工作[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值