在我们日常上网浏览网页的时候,经常会看到一些好看的图片,我们就希望把这些图片保存下载,或者用户用来做桌面壁纸,或者用来做设计的素材。其实我们可以通过python 来实现这样一个简单的爬虫功能,把我们想要的代码爬取到本地。网络爬虫,也叫网络蜘蛛(Web Spider)。它根据网页地址(URL)爬取网页内容,而网页地址(URL)就是我们在浏览器中输入的网站链接。比如:https://www.baidu.com/,它就是一个URL。

在讲解爬虫内容之前,我们需要先学习一项写爬虫的必备技能:审查元素(如果已掌握,可跳过此部分内容)。

(1). 审查元素

在浏览器的地址栏输入URL地址,在网页处右键单击,找到检查,如下图所示:(不同浏览器的叫法不同,Chrome浏览器叫做检查,Firefox浏览器叫做查看元素,但是功能都是相同的)

浏览器就是作为客户端从服务器端获取信息,然后将信息解析,并展示给我们的。我们可以在本地修改HTML信息,为网页"整容",但是我们修改的信息不会回传到服务器,服务器存储的HTML信息不会改变。刷新一下界面,页面还会回到原本的样子。这就跟人整容一样,我们能改变一些表面的东西,但是不能改变我们的基因。

(2) 简单实例

网络爬虫的第一步就是根据URL,获取网页的HTML信息。在Python3中,可以使用urllib.request和requests进行网页爬取。

urllib库是python内置的,无需我们额外安装,只要安装了Python就可以使用这个库。

requests库是第三方库,需要我们自己安装。

requests库强大好用,所以本文使用requests库获取网页的HTML信息。requests库的github地址:https://github.com/requests/requests

1 requests安装

在学习使用requests库之前,我们需要在电脑中安装好requests库。在cmd中,使用如下指令安装requests库:

pip install requests

easy_install requests

使用pip和easy_install都可以安装,二选一即可

(3)简单实例

安装好requests库之后,我们先来大体浏览一下requests库的基础方法:

requests库的开发者为我们提供了详细的中文教程,查询起来很方便。本文不会对其所有内容进行讲解,摘取其部分使用到的内容,进行实战说明。

# -*- coding:UTF-8 -*- import requests if __name__ == '__main__': target = 'http://gitbook.cn/' req = requests.get(url=target) print(req.text)

1. 小说下载

(1)实战背景

《笔趣看》是一个盗版小说网站,这里有很多起点中文网的小说,该网站小说的更新速度稍滞后于起点中文网正版小说的更新速度。并且该网站只支持在线浏览,不支持小说打包下载。因此,本次实战就是从该网站爬取并保存一本名为《一念永恒》的小说,该小说是耳根正在连载中的一部玄幻小说。PS:本实例仅为交流学习,支持耳根大大,请上起点中文网订阅。

2)小试牛刀

我们先看下《一念永恒》小说的第一章内容,URL:http://www.biqukan.com/1_1094/5403177.html

用已经学到的知识获取HTML信息试一试,编写代码如下:

# -*- coding:UTF-8 -*- import requests if __name__ == '__main__': target = 'http://www.biqukan.com/1_1094/5403177.html' req = requests.get(url=target) print(req.text)

可以看到,我们很轻松地获取了HTML信息。但是,很显然,很多信息是我们不想看到的,我们只想获得如右侧所示的正文内容,我们不关心那些看着眼晕的英文字母。如何把正文内容从这些众多的HTML信息中提取出来呢?这就是本小节实战的主要内容。

(4)Beautiful Soup

爬虫的第一步,获取整个网页的HTML信息,我们已经完成。接下来就是爬虫的第二步,解析HTML信息,提取我们感兴趣的内容。对于本小节的实战,我们感兴趣的内容就是文章的正文。提取的方法有很多,例如使用正则表达式、Xpath、Beautiful Soup等。对于初学者而言,最容易理解,并且使用简单的方法就是使用Beautiful Soup提取感兴趣内容。

Beautiful Soup的安装方法和requests一样,使用如下指令安装(也是二选一):

pip install beautifulsoup4

easy_install beautifulsoup4

一个强大的第三方库,都会有一个详细的官方文档。我们很幸运,Beautiful Soup也是有中文的官方文档。URL:http://beautifulsoup.readthedocs.io/zh_CN/latest/

同理,我会根据实战需求,讲解Beautiful Soup库的部分使用方法,更详细的内容,请查看官方文档。

下面小编在分享一个python 用json形式从豆瓣抓取电影的排行,电影名称与分数实例,代码如下:

from urllib.request import urlopen

import json

### 用json形式从豆瓣抓取电影的排行,通过审查元素找到看起来是json格式的链接

def get20Movie(url):

html = urlopen(url)

htmlJsonString = html.read()

jsonObj = json.loads(htmlJsonString.decode()) # decode()很关键

movieNameAndScores = []

for each in jsonObj.get('subjects'):

movieNameAndScores.append(each.get('title')+each.get('rate'))

# print(each.get('title')+each.get('rate'))

return movieNameAndScores

j = 0

while 1:

movieNameAndScores = get20Movie('https://movie.douban.com/j/search_subjects?type=movie&tag=%E7%83%AD%E9%97%A8&sort=recommend&page_limit=20&page_start='+str(j))

for each in movieNameAndScores:

print(each)

j += 20

小编欢迎想学习Python的小伙伴一起留言探讨,如果想跟小编交流学习,请在私信里,回复 python 有惊喜哦!如果遇到python不懂的地方,也可以找小编。

python3网络爬虫开发实战豆瓣_大牛程序员教你1天入门Python3 网络爬虫例子相关推荐

  1. android开发实战经典!帮助程序员提高核心竞争力的30条建议,灵魂拷问

    现在的IT行业竞争压力越来越大,尤其是Android开发行业.而很多Android程序员却每天都在重复CRUD,原地徘徊! 今年年初,你就想改变现状,于是在网上刷了大量面试题,强行记下之后,开始参加面 ...

  2. python3网络爬虫开发实战下载_【Python3网络爬虫开发实战】 1.1-Python3的安装

    既然要用Python 3开发爬虫,那么第一步一定是安装Python 3.这里会介绍Windows.Linux和Mac三大平台下的安装过程. 1. 相关链接 2. Windows下的安装 在Window ...

  3. python面向对象实例王者荣耀_大牛程序员利用Python开发王者荣耀带妹神器,一路直奔上王者...

    王者荣耀 -很火的手游-简直老少通吃-令人发指-虽然操作简单-但为什么你还是会被虐, 其实 是有技巧的--本文Python大神带你研究王者荣耀各类英雄的出装小技巧,让你成为大神般的存在 前期准备 环境 ...

  4. python接私活王者_大牛程序员利用Python开发王者荣耀带妹神器,一路直奔上王者...

    王者荣耀 -很火的手游-简直老少通吃-令人发指-虽然操作简单-但为什么你还是会被虐, 其实 是有技巧的--本文Python大神带你研究王者荣耀各类英雄的出装小技巧,让你成为大神般的存在 前期准备 环境 ...

  5. python3网络爬虫代码_《Python3网络爬虫开发实战代码》

    <Python3网络爬虫开发实战代码>\appium\.git\COMMIT_EDITMSG, 7 , 2017-08-15 <Python3网络爬虫开发实战代码>\appiu ...

  6. 《Python3网络爬虫开发实战》第二波抽奖赠书活动来了!

    嗨~ 给大家重磅推荐一本书!上市两月就已经重印 4 次的 Python 爬虫书!它就是由静觅博客博主崔庆才所作的<Python3网络爬虫开发实战>!!!同时文末还有抽奖赠书活动,不容错过! ...

  7. 《Python3网络爬虫开发实战》抽奖赠书活动

    这本书之前在公众号推荐过,这次庆才找到我想再帮忙宣传一下,如果你的爬虫还是徘徊在入门与放弃路上,这本书能给你一条指引. 上市两月就已经重印 4 次的 Python 爬虫书!它就是由静觅博客博主崔庆才所 ...

  8. [Python3网络爬虫开发实战] 7-动态渲染页面爬取-4-使用Selenium爬取淘宝商品

    在前一章中,我们已经成功尝试分析Ajax来抓取相关数据,但是并不是所有页面都可以通过分析Ajax来完成抓取.比如,淘宝,它的整个页面数据确实也是通过Ajax获取的,但是这些Ajax接口参数比较复杂,可 ...

  9. 【Python3网络爬虫开发实战】3-基本库的使用 1.2-处理异常

    前一节我们了解了请求的发送过程,但是在网络不好的情况下,如果出现了异常,该怎么办呢?这时如果不处理这些异常,程序很可能因报错而终止运行,所以异常处理还是十分有必要的. urllib的error模块定义 ...

最新文章

  1. 9非标功能包_非标设备问题预防和解决的常用方法
  2. golang备份和恢复
  3. VMDNS服务器未响应,vmware克隆虚拟机后进行网络配置
  4. linux 6.5 gcc包,centos6.5离线安装gcc gcc++ rpm
  5. 从计算机知识到落地能力,你欠缺了什么?
  6. jsp java语法_javaweb-jsp语法
  7. SAP成都研究院廖婧:SAP C4C社交媒体集成概述
  8. log4net 日志框架的配置
  9. 人体反应测试仪 c语言,人体反应速度测试仪毕业设计说明
  10. GitLab 分享项目到指定小组或者指定用户
  11. himawari-8卫星叶绿素a产品、_海洋卫星眼中的台风quot;海神quot;
  12. C语言初学者学习资料分享
  13. smartpdf双击无法返回latex如何解决
  14. Google Earth Studio黑科技,教你一键制作震撼的地球俯冲航拍等视频素材
  15. Servlet和JSP小结
  16. 华邦存储芯片 W25Q 系列命名规则
  17. 栈——栈的基本概念和基本操作
  18. Android基本入门
  19. xsd文件 -- 伤痛
  20. iTab新标签页,一款个性化的浏览器起始页插件

热门文章

  1. SQLServer用存储过程实现插入更新数据
  2. 杂项:E-Learning
  3. C# 匿名委托、匿名方法、匿名对象、Lambda表达式
  4. hibernate树
  5. Rsyslog 日志相关内容
  6. C++,C++编程,Windows编程,MFC
  7. 两个Python web框架:Django Tornado比较
  8. 多线程编程2-NSOperation
  9. DancingLinks刷题集
  10. 【java】错误 找不到或无法加载主类