更多课程 选择中心


Python培训

400-996-5531

爬取豆瓣读书页面,Python用16行代码就搞定了!

  • 发布:Java程序媛
  • 来源:51Testing软件测试网
  • 时间:2019-03-26 16:28

我们一直说Python比较简单,代码体量没有别的程序那么大,对于初学者,尤其是零编程基础的初学者来说,感触没有那么明显,那么今天就让你见识一下:爬取豆瓣读书页面,Python用16行代码就搞定了!

爬取豆瓣读书页面,Python用16行代码就搞定了!

python+selenium这个很神奇的组合,或许你还不知道selenium是什么,不过没关系,我先给你百度一下:

Selenium (浏览器自动化测试框架):

Selenium 是一个用于Web应用程序测试的工具。

Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。

支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成 .Net、Java、Perl等不同语言的测试脚本。

原谅我是一个没怎么见过世面的程序员,当我看到代码运行之后电脑自动打开浏览器那一刻觉得简直不要太酷!所以我必须要写一篇文来和大家一起分享一些喜悦的心情。

首先我们先确定好要爬取的目标网页:

豆瓣读书下一个标签为小说的页面:

#/tag/%E5%B0%8F%E8%AF%B4:

敲黑板!干货来了同志们!下面我将带领着大家用16行代码实现我们的这个爬虫。仅仅需要16行代码,看了不吃亏,看了不上当!

先来解析一下我们想要爬取的目标网页的结构:

先找到包含所有图书内容的标签——一个类名为content的div盒子.

再找包含每一本书内容的标签——li.

虽然我们发现了每一本书的内容都包含在li标签下,但是还没有找到包含具体文本信息的标签,所以还要继续找。

找到了,就是它:可爱的类名为“info”的div盒子!

分析好网页结构之后,现在我们就可以开始动手写代码啦。前方高能!

源代码如下:

#coding:utf-8from selenium import webdriverclass DouBan:

def __init__(self):

self.dr = webdriver.Chrome() #指定selenium进行自动化操作时选用谷歌浏览器

self.dr.get('#/tag/%E5%B0%8F%E8%AF%B4/') #要打开的网页

def print_content(self):

total_book = self.dr.find_element_by_id('wrapper') #先定位到包含所有图书的div盒子中

books = total_book.find_elements_by_class_name('info') #找到已经定位到的div盒子里的每一个包含图书介绍的子div

i = 1

for book in books: #通过for循环依次把每一本图书的内容取出来

print (str(i)+ book.text + '

') #将爬取到的内容打印

i += 1

def quit(self):

self.dr.quit() #爬取数据完成后关闭浏览器

DouBan().print_content()

大家有没有看到,代码运行之后电脑自己打开了浏览器进入我们的目标页面,然后爬取完我们想要的数据之后又自己关闭了浏览器,很神奇有没有!超酷有没有!

怎么样,是不是觉得超级简单易懂?那还不赶紧pip install selenium 来自己试一试!

预约申请免费试听课

填写下面表单即可预约申请免费试听! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:简单直白——一文搞懂什么是Python闭包!
下一篇:Python中只有用time模块表示时间这一种方式吗?

如何运用Python编程处理大数据?用Python编程处理大数据的技巧是什么?

Python面向对象编程的知识点都在这了!

Python的高级特征及用法(部分)

听说这些Python知识,很少有人知道!

Copyright © 2023 Tedu.cn All Rights Reserved 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有

选择城市和中心
黑龙江省

吉林省

河北省

湖南省

贵州省

云南省

广西省

海南省