首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

任意关键词采集工具,python采集百度图片到本地!

说明:

由于百度的网页源代码中有很多省略部分,xpath是取不到的。而且他还是一个动态的网站,数据保存在XHR中,是一个josn格式的数据。切记,新手勿操作。

群里有志同道合的小伙伴,互帮互助,群里有不错的视频学习教程和PDF!

难题:

百度对python爬虫的反爬设置的相对严格,过度采集会拒绝访问,那么我们可以采用两种措施。

1、降低访问速度

2、多IP采集

自行解决。

python源代码:

# -*- coding: utf-8 -*-

# @Time : 2019/3/10 20:34

# @Author : 善念

# @File : 百度图片.py

# @Software: PyCharm

import requests

import pprint

import os

import time

name=input('请输入你要下载的图片:')

page=input('请输入你要下载的页数:')

a=0

temp=r'C:UsersDesktop'+"\"+name

headers={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0"}

if os.path.exists(temp) ==False:

os.mkdir(temp)

num=0

for i in range(int(page)):

true_page = i * 48

url = 'http://pic.sogou.com/pics?query={}&mode=1&start={}&reqType=ajax&reqFrom=result&tn=0'.format(name, true_page)

responsed=requests.get(url,headers=headers,timeout=3)

responsed.encoding=responsed.apparent_encoding

response=responsed.json()

#pprint.pprint(response)

valus=response['items']

print(len(valus))

a=a+len(valus)

for i in valus:

print(i['pic_url'])

pic_url=i['pic_url']

data1=requests.get(pic_url,headers=headers,timeout=8)

data1.close()

data2=data1.content

num+=1

with open(temp+"\"+str(num)+'.jpg','wb')as f:

f.write(data2)

print(a)

# try:

# pass

# except Exception:

# print(Exception)

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190319A0DNIN00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券