看了一篇帖子,https://www.cnblogs.com/dearvee/p/6558571.html 这篇帖子作为一个引导,摸索着完成了第一个爬虫,现在将过程总结如下。

搜狗图片地址为 http://pic.sogou.com/ ,利用BeautifulSoup抓取 img 然后打印可以发现 img=“” 都是空的(具体空的详细方法在上面的链接中)

通过F12 检查找到ssh

可以看到 Requests 的 URL ,其中 有几个参数 category tag start len,

实际上 category 指的是 美女 搞笑 壁纸 明星 等分栏

tag指的是下面的 搞笑人物 招牌标题等

start指从第几个开始 len指示一共需要多少个

!!!!!!!!!

这个时候又遇到一个问题,那就是上述的Url里面是一串字母而不是汉字,我们需要解决这个问题

Python中有将汉字转化为Url中字符串的函数为 urllib.quote() (不会的同学可以百度)

通过 Preview 可以看出 他们都在一个字段为 all_items 的json里面(代码中 all_items的由来)

在分析其中具体的一个:

每一个都储存在一个 ‘bthumbUrl’里面(代码中 该字段的由来)

理清这些东西就可以写代码了 代码如下

from bs4 import BeautifulSoup
import requests
import os
import json
import urllib
import random
#爬取图片目标地址

print(“请从以下种类中(搞笑、美女、汽车)中选取一个输入”)
cat = raw_input()
print(“请输入爬取的个数”)
n = raw_input()
print(n)
#%E7%BE%8E%E5%A5%B3
print(‘正在搜索相关的图片’)
url = “http://pic.sogou.com/pics/channel/getAllRecomPicByTag.jsp?category=”+ urllib.quote(cat) + “&tag=%E6%B8%85%E7%BA%AF&start=0&len=”+ str(n)

#利用requests库得到解析网页html
x = requests.get(url, timeout = 30)
x.raise_for_status();
html = x.text

#利用json与热汤库定位解析
soup = BeautifulSoup(html,’html.parser’)
img = json.loads(html)
img = img[‘all_items’]

#存取目标列表的列表名
ulist = []
#将图片url存入列表
for j in img:
ulist.append(j[‘bthumbUrl’])

#存取图片的路径
ear =random.randint(1, 100254)
root = ‘D://pics//’

print(‘————–正在下载图片————————-‘)

#逐个爬取立标里面的url链接
k = 1
for i in ulist:
image_url =ulist[k-1]
image_path = root + str(k)+’.jpg’
try:
r = requests.get(image_url)
r.raise_for_status()
if not os.path.exists(root):
#创建文件夹
os.mkdir(root)
if not os.path.exists(image_path):
r = requests.get(image_url)
with open(image_path, ‘wb’) as file_obj:
file_obj.write(r.content)
print(‘第’+ str(k) +’张图片保留成功’)
except:
print(‘第’+ str(k) +’张图片爬取失败’)
k=k+1

print(‘————–图片下载完成————————-‘)

利用requests库爬取搜狗图片并存入文件夹下相关推荐

  1. python之利用requests库爬取西刺代理,并检验IP的活性

    用爬虫爬取某个网站的数据时,如果用一个IP频繁的向该网站请求大量数据,那么你的ip就可能会被该网站拉入黑名单,导致你不能访问该网站,这个时候就需要用到IP动态代理,即让爬虫爬取一定数据后更换IP来继续 ...

  2. python 利用requests库抓取网站图片

    截图放在下方: 我们来看下我们要的图片都在哪 框起来这些图就是我要的,数量多的不得了,看来这个网站积累了很久了,现在我们要用5分钟时间来拿到所有图片 接下来让我们看下源代码来解析一下这些图片的地址吧. ...

  3. 利用requests库爬取网页获取数据

    一.get请求 测试小例子: # 获取一个get请求,用get的方式直接访问网址 url = 'https://movie.douban.com/top250' response = requests ...

  4. 用python爬取qq空间内容_利用Fiddler抓包和py的requests库爬取QQ空间说说内容并写入文件...

    [Python] 纯文本查看 复制代码#!C:\Program Files\Python36 python # -*- coding: UTF-8 -*- """ @au ...

  5. 进军Json,以战养战 -- 爬取搜狗图片代码分析

    爬取搜狗图片代码分析 代码 代码功能 代码 代码解析 总结 代码 代码功能 从搜狗网页下载 n 张指定分类的图片并保存到指定的文件夹. 代码 # 导入相关的库 import requests impo ...

  6. 利用requests库抓取猫眼电影排行

    文章目录 1.抓取目标 2.准备工作 3.抓取分析 4.抓取首页 5.正则提取 6.写入文件 7.整合代码 8.分页爬取 9.运行结果 10.本节代码 最近刚开始了解爬虫,学习了一下基本库的使用.跟着 ...

  7. 详细分析如何利用python批量爬取百度图片

    这篇文章主要写的是利用python网络爬虫批量来爬取百度图片并保存到文件夹中. 首先我们打开百度图片这个网页:https://image.baidu.com/ 我们现在随便搜一个类型的图片,比如小狗, ...

  8. 爬虫实践:爬取搜狗图片

    前言 本文中,将通过爬取搜狗图片为例,分析Ajax请求来抓取网页数据 (通过传入关键字,已达到爬取不同类型图片的目的) AJAX引擎其实是一个JavaScript对象,全写是 window.XMLHt ...

  9. 用Requests库爬取微博照片

    用Requests库爬取微博照片 代码如下: #微博图片爬取 import requests import os #文件目录方法模块 url="https://wx3.sinaimg.cn/ ...

最新文章

  1. 万能的Python,不仅能开发效率高,还能绘画各种漫画图像
  2. 建空列表list,数组array,矩阵matrix
  3. perl的Getopt::Long和pod::usage
  4. 【网络安全】针对 HTTP/2 协议的HTTP Desync攻击
  5. ios 设置按钮不可见_iOS的五大设计原则:统一化和适应化原则
  6. 记录SpringBoot集成Shiro使用Redis作缓存遇到的一个问题(Key-Value)互换
  7. Windows 相关链接
  8. 平面设计python教程_什么是平面设计? - Python学习教程的个人空间 - OSCHINA - 中文开源技术交流社区...
  9. ROS入门笔记(十一):编写与测试简单的Service和Client (Python)
  10. ArcEngine和GDAL读写栅格数据机制对比(一)
  11. Tensorflow中的name_scope和variable_scope
  12. Java Spring-Bean
  13. θ Some 与 θ All 子查询
  14. static_cast,reinterpret_cast,const_cast,dynamic_cast:
  15. 删除曾经使用过的USB设备记录
  16. java反射入门,JAVA从入门到精通之java反射
  17. SQL查询是从Select开始的吗?
  18. 单片机延时函数移植问题
  19. 为什么C与C++执行效率高,运行快?
  20. 软件测试工程师未来十年的职业规划

热门文章

  1. 《C指针知识点总结》
  2. 论一个前端开发者的自我修养
  3. birt报表模板只打印了第一行_让同事看呆,365天日报表20秒生成
  4. 数电二:组合逻辑电路
  5. 面试中常被问到(11)虚函数/纯虚函数
  6. java-php-python-ssm网上租房管理计算机毕业设计
  7. 解决automake1.14编译问题
  8. 文件服务器临时文件,使用没有临时文件的节点js将文件上载到休息文件服务器...
  9. BERT Enhanced Neural Machine Translation and Sequence Tagging Model
  10. 2021年焊工(高级)考试及焊工(高级)考试题