前言

这一章讲了如何在 Web 上抓取相关的信息,工具是三个模块:

  1. webbrowser 模块:用于打开浏览器指定页面
  2. requests 模块:用于下载文件
  3. Beautiful Soup 模块:用于解析 HTML
  4. selenium 模块:用于自动控制一个 Web 浏览器,比如模拟鼠标点击链接,键盘输入等等。

webbrowser 模块

导入:import webbrowser
格式:webbrowser.open('http://url.com')
功能:它的 open() 函数可用于打开一个网站。

request 模块

下载文件

导入:import requests
格式:request.get('http://www.url.com/pg1112.txt')
功能:它的 get() 函数可用于下载一个网页或者文件,返回一个 Response 对象。

打开文件

格式:response.open('example.txt','wb')
功能:接受第一个参数为文件的字符串,第二个参数为‘wb',表示用二进制打开,目的是为了保护文件的 Unicode 编码。

写入文件

格式:
response.iterate_content(10000):可利用其参与循环
open.write():将内容写入文件

Beautiful Soup 模块

导入:import bs4
功能:解析 HTML

进行解析的步骤:

  1. 创建一个 BeautifulSoup 对象:格式 beauObj = bs4.beautifulSoup(res.text),返回一个 BeautifulSoup 对象。
  2. 使用 select() 函数查找元素: beaiObj.select(),返回一个所选择对象的列表。
  3. (可选):使用 str(list),将列表转换为一个字典,可以使用这个字典的 attrs 属性和 get('id') 方法进行查看 HTML 的属性,

selenium 模块

打开浏览器

导入:from selenium import webdriver
格式:browser = webdriver.Safari()
功能:打开一个浏览器,返回一个 WebDriver 数据类型的对象。

查找元素

格式:browser.find_element_by_id(id) 等等
功能:查找 Web 上特定的元素,返回一个 WebElement 对象。

WebElement 对象包含的方法

1. click():用于点击页面

2. send_keys(): 用于进行键盘输入

输入特殊键需要用到 from selenium.webdriver.common.keys import Keys
格式:send_keys(Keys.DOWN)

3.操作浏览器进程

browser.back():返回
browser.forward():前进
browser.refresh():刷新页面
browser.quit():关闭页面

Python 编程快速上手 第十一章 Web scrapping的更多相关文章

  1. Python 编程快速上手 第六章总结

    第六章 字符串操作 前言 这一章节讲了关于 Python 中字符串类型的知识.与字符串有关的操作符,方法等等. 处理字符串:字符串的写入.打印.访问的知识 原始字符串 格式:r'string'作用:在 ...

  2. Python 编程快速上手 第五章总结

    第五章 字典和结构化数据 创建数组 格式:myCat = {'size':'fat','color':'gray',disposition':'loud'} 对字典的操作 通过[ ] 访问字典的值 [ ...

  3. python编程快速上手第7章习题20

    20.如何写一个正则表达式,匹配每 3 位就有一个逗号的数字?它必须匹配以下数字:'42''1,234''6,368,745'但不会匹配: '12,34,567' (逗号之间只有两位数字) '1234 ...

  4. Python 编程快速上手 第十七章 操作图像

    前言 在这一章节,讲了关于图像的三个方面的内容: 获得图像的相关信息:例如 RGBA 值,尺寸... 对图像进行编辑操作:例如 旋转,缩放... 在图像上绘制形状:例如 矩形,圆形... [Image ...

  5. Python 编程快速上手 第七章总结

    前言 在 Word 软件中,我们总是习惯使用 CMD+F 用来查找和替换文本,但是,正如作者所说: 虽然计算机可以很快地查找文本,但你必须精确地告诉它要找什么. 我们往往想要查找一类文本,比如一段文本 ...

  6. Python编程快速上手-让繁琐工作自动化-第二章习题及其答案

    Python编程快速上手-让繁琐工作自动化-第二章习题及其答案 1.布尔数据类型的两个值是什么?如何拼写? 答:True和False,使用大写的T和大写的F,其他字母是小写. 2.3个布尔操作符是什么 ...

  7. 入门python:《Python编程快速上手让繁琐工作自动化》中英文PDF+代码

    入门推荐学习<python编程快速上手>前6章是python的基础知识,通俗易懂地讲解基础,初学者容易犯错的地方,都会指出来.从第三章开始,每章都有一个实践项目,用来巩固前面所学的知识. ...

  8. 《Python编程快速上手 —让繁琐工作自动化》|百度网盘免费下载|Python自动化办公

    Python编程快速上手—让繁琐工作自动化 提取码:u8vj 如今,人们面临的大多数任务都可以通过编写计算机软件来完成. Python 是一种解释型.面向对象.动态数据类型的高级程序设计语言.通过 P ...

  9. Python编程快速上手 让繁琐工作自动化 - 专业程序员的养成完整版PDF免费下载_百度云盘

    Python编程快速上手  让繁琐工作自动化 - 专业程序员的养成完整版PDF免费下载_百度云盘 提取码:7qm4 有关本书 累计销售超过10万册 零基础编程者的不二之选 基于Python3编写 通用 ...

随机推荐

  1. SqlBulkCopy类(将一个表插入到数据库)

    利用SqlBulkCopy类一次插入多条数据,即将一个表直接插入数据库. 首先,新建一个表,要保证表中的列名与数据库表的字段保持一致. 如果数据库一张TableMenuRole表,ID自增,MenuI ...

  2. Magnum Kubernetes源码分析(一)

    Magnum版本说明 本文以magnum的mitaka版本代码为基础进行分析. Magnum Kubernetes Magnum主要支持的概念有bay,baymodel,node,pod,rc,ser ...

  3. Jordan 块的几何

    设 $V$ 是复数域 $\mathbb{C}$ 上的 $n$ 维线性空间, $\varphi$ 是 $V$ 上的线性变换, $A\in M_n(\mathbb{C})$ 是 $\varphi$ 在某组 ...

  4. HDU 1848 Fibonacci again and again【博弈SG】

    Problem Description 任何一个大学生对菲波那契数列(Fibonacci numbers)应该都不会陌生,它是这样定义的: F(1)=1; F(2)=2; F(n)=F(n-1)+F( ...

  5. SpringBoot 使用Hikaricp连接池

    1.添加pom.xml依赖 如果是SpringBoot2.0,那么默认的连接池就是Hikaricp,不需要配置 其他的,如果继承 <parent> <groupId>org.s ...

  6. #pragma data_seg() 共享数据// MyData段 // 进程 // DLL

    https://www.cnblogs.com/dongsheng/p/4476157.html http://www.cnblogs.com/CBDoctor/archive/2013/01/26/ ...

  7. ZOJ 3593 One Person Game(ExGcd + 最优解)题解

    思路:题意转化为求 (ax+by=dis) || (ax+cy=dis) || (bx+cy=dis) 三个式子有解时的最小|x| + |y|.显然求解特解x,y直接用扩展欧几里得,那么怎么求|x| ...

  8. Python之Requests的高级用法

    # 高级用法 本篇文档涵盖了Requests的一些更加高级的特性. ## 会话对象 会话对象让你能够跨请求保持某些参数.它也会在同一个Session实例发出的所有请求之间保持cookies. 会话对象 ...

  9. (转载)C#语言开发规范

    1.  命名规范a) 类[规则1-1]使用Pascal规则命名类名,即首字母要大写.eg:Class Test{...}[规则1-2]使用能够反映类功能的名词或名词短语命名类.[规则1-3]不要使用“ ...

  10. Python3 list sort排序

    转自:https://blog.csdn.net/u010758410/article/details/79737498 当带排序列表的元素由多字段构成时,我们可以通过sorted(iterable ...