python3网络爬虫开发实战豆瓣_大牛程序员教你1天入门Python3 网络爬虫例子
在我们日常上网浏览网页的时候,经常会看到一些好看的图片,我们就希望把这些图片保存下载,或者用户用来做桌面壁纸,或者用来做设计的素材。其实我们可以通过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 网络爬虫例子相关推荐
- android开发实战经典!帮助程序员提高核心竞争力的30条建议,灵魂拷问
现在的IT行业竞争压力越来越大,尤其是Android开发行业.而很多Android程序员却每天都在重复CRUD,原地徘徊! 今年年初,你就想改变现状,于是在网上刷了大量面试题,强行记下之后,开始参加面 ...
- python3网络爬虫开发实战下载_【Python3网络爬虫开发实战】 1.1-Python3的安装
既然要用Python 3开发爬虫,那么第一步一定是安装Python 3.这里会介绍Windows.Linux和Mac三大平台下的安装过程. 1. 相关链接 2. Windows下的安装 在Window ...
- python面向对象实例王者荣耀_大牛程序员利用Python开发王者荣耀带妹神器,一路直奔上王者...
王者荣耀 -很火的手游-简直老少通吃-令人发指-虽然操作简单-但为什么你还是会被虐, 其实 是有技巧的--本文Python大神带你研究王者荣耀各类英雄的出装小技巧,让你成为大神般的存在 前期准备 环境 ...
- python接私活王者_大牛程序员利用Python开发王者荣耀带妹神器,一路直奔上王者...
王者荣耀 -很火的手游-简直老少通吃-令人发指-虽然操作简单-但为什么你还是会被虐, 其实 是有技巧的--本文Python大神带你研究王者荣耀各类英雄的出装小技巧,让你成为大神般的存在 前期准备 环境 ...
- python3网络爬虫代码_《Python3网络爬虫开发实战代码》
<Python3网络爬虫开发实战代码>\appium\.git\COMMIT_EDITMSG, 7 , 2017-08-15 <Python3网络爬虫开发实战代码>\appiu ...
- 《Python3网络爬虫开发实战》第二波抽奖赠书活动来了!
嗨~ 给大家重磅推荐一本书!上市两月就已经重印 4 次的 Python 爬虫书!它就是由静觅博客博主崔庆才所作的<Python3网络爬虫开发实战>!!!同时文末还有抽奖赠书活动,不容错过! ...
- 《Python3网络爬虫开发实战》抽奖赠书活动
这本书之前在公众号推荐过,这次庆才找到我想再帮忙宣传一下,如果你的爬虫还是徘徊在入门与放弃路上,这本书能给你一条指引. 上市两月就已经重印 4 次的 Python 爬虫书!它就是由静觅博客博主崔庆才所 ...
- [Python3网络爬虫开发实战] 7-动态渲染页面爬取-4-使用Selenium爬取淘宝商品
在前一章中,我们已经成功尝试分析Ajax来抓取相关数据,但是并不是所有页面都可以通过分析Ajax来完成抓取.比如,淘宝,它的整个页面数据确实也是通过Ajax获取的,但是这些Ajax接口参数比较复杂,可 ...
- 【Python3网络爬虫开发实战】3-基本库的使用 1.2-处理异常
前一节我们了解了请求的发送过程,但是在网络不好的情况下,如果出现了异常,该怎么办呢?这时如果不处理这些异常,程序很可能因报错而终止运行,所以异常处理还是十分有必要的. urllib的error模块定义 ...
最新文章
- 9非标功能包_非标设备问题预防和解决的常用方法
- golang备份和恢复
- VMDNS服务器未响应,vmware克隆虚拟机后进行网络配置
- linux 6.5 gcc包,centos6.5离线安装gcc gcc++ rpm
- 从计算机知识到落地能力,你欠缺了什么?
- jsp java语法_javaweb-jsp语法
- SAP成都研究院廖婧:SAP C4C社交媒体集成概述
- log4net 日志框架的配置
- 人体反应测试仪 c语言,人体反应速度测试仪毕业设计说明
- GitLab 分享项目到指定小组或者指定用户
- himawari-8卫星叶绿素a产品、_海洋卫星眼中的台风quot;海神quot;
- C语言初学者学习资料分享
- smartpdf双击无法返回latex如何解决
- Google Earth Studio黑科技,教你一键制作震撼的地球俯冲航拍等视频素材
- Servlet和JSP小结
- 华邦存储芯片 W25Q 系列命名规则
- 栈——栈的基本概念和基本操作
- Android基本入门
- xsd文件 -- 伤痛
- iTab新标签页,一款个性化的浏览器起始页插件