python爬虫之壁纸的下载

好久没有写博客了,暑假这段时间在学校里面忙着写小论文,没机会写我最喜欢的爬虫了(虽然很简单,但架不住哥喜欢。。。)


好了,废话不多说了,开始把
本次爬虫爬取的是 手机壁纸(爱换壁纸的男人伤不起啊)
目标网址就定在 伟大的贴吧里了(壁纸吧)

    这里插一句,以前用的IDE都是pycharm,虽说比较好用,但是最近发现一款IDE,就是anaconda内自带的spyder,感觉比pycharm更适合编程人员,因为它可以实现同步和局部编译,十分方便地查看每一个部分的结果。。各位看官可以试试。。老规矩,先打开目标网页http://tieba.baidu.com/p/5235094306,本次选的是壁纸吧里面的一个精品贴,里面的壁纸还是很吸引人的

    不错把,个人还是挺喜欢这种星空风格的。

    来吧,让我们端一碗BeautifulSoup鸡汤。。。话说,确实很好用啊
#coding:utf-8
from bs4 import BeautifulSoup
import requests
    没有安装这个酷的人,随便pip下就安装好了啊(忘记说了,本代码是基于python3.6)简单的说,requests是为了获取网页源代码的,然后使用BS来对html格式进行修正,以便后续更方便的使用BeautifulSoup来对其中我们需要的内容进行抓取。编写你就知道了
url = 'http://tieba.baidu.com/p/5235094306'
headers = {'User-Agent':"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0"}#红色箭头的标示出了
html = requests.get(url,headers=headers)
bsObj = BeautifulSoup(html.text,'lxml')
    BeautifulSoup的基本用法在网上有很多,个人推荐其官方文档,附上链接:[Beautiful Soup 4.2.0 文档](https://www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.html)代码效果如下:

    至此,我们就获得了我们满意的请求页面,接下来需要对其进行分析,找出我们需要下载的图片的位置贴吧里,我寻找壁纸,一般只看帖子的主人,也就是 只看楼主 这个选项,其实真正我们要爬取得网页是在这个界面上如:http://tieba.baidu.com/p/5235094306?see_lz=1&pn=2这里插一句,我们爬虫的目的是自己的兴趣,但是死记住  代码这个是不靠谱的,网页千变万化的,难道要一个个记住吗?所以,侧重思路仔细观察上面这个链接,这是我在选中“只看楼主”选项后,调到第二页的情况下,所显示的网页链接,你不妨多点点其他的页数,会发现出现如下规律:http://tieba.baidu.com/p/5235094306?see_lz=1&pn=2http://tieba.baidu.com/p/5235094306?see_lz=1&pn=3http://tieba.baidu.com/p/5235094306?see_lz=1&pn=4我们可以将其看成是三部分组成:1 baseUrl = 'http://tieba.baidu.com/p/5235094306'2 seeLZ = '?see_lz'3 PN = '&pn='利用一个for循环即可实现我们所需要的多页

    再说关键点,我们需要将页面中壁纸的链接所找到并下载下来,第一步就得将壁纸链接抓取下来:

    观察发现,所有的壁纸的链接都隐藏在  3 号箭头所指的地方,该链接王权可以用BeautifulSoup解析出来,上代码:
    bsObj = BeautifulSoup(html.text,'lxml')imgs = bsObj.find_all('img',class_="BDE_Image")for i in imgs[0:4]:print(i)

    接下来只需进行下载的步骤就好了:

上图只是部分测试代码,以辨明下载效果,文章末尾处会补充完整代码:

# -*- coding: utf-8 -*-
"""
Created on Wed Aug 23 20:20:33 2017@author: hhh
"""#%%
import requests
from bs4 import BeautifulSoup
import urllib
import timebase_url = 'https://tieba.baidu.com/p/4645322258?see_lz=1&pn='
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0'}
#%%def get_text(url,headers):return requests.get(url,headers)#%%
def download(img_url,j,k):urllib.request.urlretrieve(img_url, 'E:\\wallPapers\\%d_%d.jpg' %(j,k))#%%for i in range(1,5):page_url = base_url+str(i)html = get_text(page_url,headers=headers)bsObj = BeautifulSoup(html.text,'lxml')imgs = bsObj.find_all('img',class_="BDE_Image")k=1for link in imgs:download(link.get('src'),i,k)time.sleep(1.000)k+=1print(link.get('src'))

基本完成了,写这样图片多的博客好麻烦啊,爬虫类的以后还是少写点。
PS:在用这个markdown编辑器的时候,get了一个小窍门,更改上传图片的大小
一般我们上传图片后,会得到一个如下图所示的部分:


此时,我们只需要将其改成:

width:宽度百分比
height:高度百分比
就能随心所欲的控制你的图片大小了

python爬虫之壁纸的下载相关推荐

  1. Python爬虫——利用Scrapy批量下载图片

    Python爬虫--利用Scrapy批量下载图片 Scrapy下载图片项目介绍 使用Scrapy下载图片 项目创建 项目预览 创建爬虫文件 项目组件介绍 Scrapy爬虫流程介绍 页面结构分析 定义I ...

  2. Python爬虫—Scrapy框架—Win10下载安装

    Python爬虫-Scrapy框架-Win10下载安装 1. 下载wheel 2.下载twisted 3. 下载pywin32 4. 下载安装Scrapy 5. 创建一个scrapy项目 6. fir ...

  3. python爬虫之小说网站--下载小说(正则表达式)

    python爬虫之小说网站--下载小说(正则表达式) 思路: 1.找到要下载的小说首页,打开网页源代码进行分析(例:https://www.kanunu8.com/files/old/2011/244 ...

  4. python 爬虫+selenium 全自动化下载JS动态加载漫画

    ** python 爬虫+selenium 全自动化下载JS动态加载漫画 最近刚学的python,代码可能并不规范,希望大家见谅! 爬取之前,我们首先需要做一些准备工作,因为很多网站都有反爬检索,为了 ...

  5. Python爬虫——Selenium 简介和下载

    文章目录 Python爬虫--Selenium 简介和下载 1.Selenium 简介 2.Selenium 下载安装 3.Selenium 简单使用 Python爬虫--Selenium 简介和下载 ...

  6. 爬虫|wallhere壁纸批量下载

    大家好,我是36度道,人生苦短,我用python ! 今日目标:批量下载wallhere网站上的壁纸 目标网址:https://wallhere.com/zh/wallpapers 首页图: 按 F1 ...

  7. 【python爬虫实战】批量下载网站视频

    写在前面 最近在学vue.js,看到一个网站上有很多视频教程,但在线观看不能倍速播放,就想着用python爬虫批量下载到本地. 安装依赖 pip3 install requests 测试样例 加上序言 ...

  8. python爬虫---网易云音乐下载

    python爬虫爬取网易云音乐 1.实现功能 2.具体实现 1.搜索部分 2.下载歌曲 1.再次获取信息 2.下载 3.结语 Github完整代码获取:https://github.com/Lian- ...

  9. 10丨Python爬虫:如何自动化下载王祖贤海报?

    爬虫的流程 相信你对"爬虫"这个词已经非常熟悉了,爬虫实际上是用浏览器访问的方式模拟了访问网站的过程,整个过程包括三个阶段:打开网页.提取数据和保存数据. 在 Python 中,这 ...

最新文章

  1. 物体三维识别论文介绍——基于霍夫投票
  2. 预测|十张图带你了解2018年机器人行业趋势与前景
  3. android学习之WebView
  4. 全球隔夜主要金融市场回顾
  5. java 内存分析之jmap 详细用法完整版(一)
  6. C++ 使用模板Template
  7. 在html标签中写三元运算符,如何在剃须刀中使用三元运算符(特别是在HTML属性上)?...
  8. mysql innodb 数据恢复_MYSQL INNODB 数据库恢复 转
  9. mysql数据库安装教程(超级超级详细)
  10. 配置sdk的环境变量
  11. IOS软键盘弹起,顶起页面使其脱离文档流,input失焦后,留下空白问题解决
  12. orcad基础全操作(直流分析,交流分析,瞬态分析,静态工作点,噪声分析)
  13. 用微信h5棋牌源码来测量相机到目标的距离
  14. 阿里云和华为云各自的优势
  15. surface rt 8.1 越狱应用签名工具
  16. [HDLbits] Conway‘s game of life
  17. 技术干货 | Modelica建模秘籍之状态变量
  18. ADSL Modem的密码
  19. Pyspark聚类--GaussianMixture
  20. 如何写一份优秀的商业计划书(转)

热门文章

  1. 出价成本计算机软件,关键词移动如何出价_移动出价比例设置的注意事项
  2. 解决 请求因 HTTP 状态 401 失败: Unauthorized。
  3. 杨守鸿 计算机学院,计算机学院军训师生慰问暨新生见面会顺利举办
  4. CSS(二)文字样式
  5. 简单了解APP黑暗模式
  6. 三键调光调色带定时遥控台灯方案-DLT8T10S-杰力科创
  7. valgrind tool suite
  8. 内容抄袭检查器 X 2022| Plagiarism Checker
  9. 土壤湿度传感器YL69使用
  10. 长腔耗散孤子锁模光纤激光器