孤城2002 发表于 2019-7-23 00:06

python抓取百度图片

本帖最后由 孤城2002 于 2019-7-23 00:11 编辑

直接上代码


import requests
import re
import time
from urllib import parse

name = "崩坏3"# 搜索的关键字
name_url = {'word': name}
name_word = parse.urlencode(name_url)# 编码转换
y = 0# 页数计数,从0开始依次加60,百度的3页为这里的一页
i = 1# 文件计数
# 模仿浏览器
headers = {
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3',
    'Accept-Encoding': 'gzip, deflate',
    'Accept-Language': 'zh-CN,zh;q=0.9',
    'Cache-Control': 'max-age=0',
    'Connection': 'keep-alive',
    'Upgrade-Insecure-Requests': '1',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36'
}
while True:
    url = 'http://image.baidu.com/search/flip?tn=baiduimage&ie=utf-8&sid=&' + name_word + '&pn=' + str(y)
    print('第' + str(int(y / 60)) + '页')
    data = requests.get(url, headers=headers).text# 获取页面数据
    url_img = re.findall('"objURL":".*?",', data)
    # 遍历图片url
    for s in url_img:
      img_url = s.lstrip('"objURL":"').rstrip('",')
      img_fi = s.lstrip('"objURL":"').rstrip('",')[-4:]# 获取拓展名
      img_name = img_url.split('/')[-1].rstrip(img_fi)
      img_le = img_fi[-4]
      if img_le == ".":# 筛选数据
            try:# 异常处理
                img = requests.get(img_url, headers=headers).content
                # 保存图片
                with open('img/' + img_name + img_fi, 'wb') as f:
                  f.write(img)
                  print("图片" + img_name + ' 第' + str(i) + '张' + " 地址:" + img_url)
                  time.sleep(1)
                  i = i + 1
            except:
                print('访问链接出错')
    y = y + 60


最好使用pycharm进行运行
安装要使用的模块:requests,urllib
不会安装的百度有详细的安装教程,这个是我无聊的时候写的,可以拿去抓qq表情包还有其它有趣的图{:1_886:}
也可以供大家学习。

孤城2002 发表于 2019-7-23 11:26

12416436 发表于 2019-7-23 09:30
学习python感觉进步的好慢,真希望很快能写出自己的代码分享给大家

只要坚持,重在于理解,加油

fuzheng 发表于 2019-7-23 00:17

厉害厉害学习了

a312714497 发表于 2019-7-23 00:18

能抓小姐姐吗

彭哥列第十代 发表于 2019-7-23 00:24

提示链接出错
怎么办

Pdsdt 发表于 2019-7-23 01:00

抓取照片的话,用BeautifulSoup还是挺方便的把

小2b 发表于 2019-7-23 02:12

....效果啥的貼一下吧,雖然很多人會爬蟲,但為了帖子不那麼乾枯無味,貼點圖會好點

lyw8614505 发表于 2019-7-23 02:16

谢谢楼主分享,技术流支持一下

字母 发表于 2019-7-23 02:45

这玩意没用啊…

张碗婷 发表于 2019-7-23 05:57

厉害   太厉害了   

轮回过客 发表于 2019-7-23 06:56

请问这个和QQ群的机器人抓去图片的原理一样吗?
如有回复不胜感激
页: [1] 2 3
查看完整版本: python抓取百度图片