从Web抓取信息

Posted hjzhoublog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从Web抓取信息相关的知识,希望对你有一定的参考价值。

来源:python编程快速上手——Al Sweigart

 

webbrowser:是 Python 自带的,打开浏览器获取指定页面。

requests:从因特网上下载文件和网页。

Beautiful Soup:解析 html,即网页编写的格式。

selenium:启动并控制一个 Web 浏览器。 selenium 能够填写表单,并模拟鼠标在这个浏览器中点击。

 

1 利用 Webbrowser 模块

webbrowser 模块的 open()函数可以启动一个新浏览器,打开指定的 URLWeb 浏览器的选项卡将打开 URL http://inventwithpython.com/这大概就是webbrowser 模块能做的唯一的事情。

 

建立以下程序:

sys.argv 读取命令行参数。
读取剪贴板内容。
调用 webbrowser.open()函数打开外部浏览器

1 import webbrowser, sys, pyperclip
2 if len(sys.argv) > 1:
3     # Get address from command line.
4     address =  .join(sys.argv[1:])
5 else:
6     # Get address from clipboard.
7     address = pyperclip.paste()
8 webbrowser.open(https://www.google.com/maps/place/ + address)

 

2 利用 Requests 模块

requests.get()函数接受一个要下载的 URL 字符串。通过在 requests.get()的返回值上调用 type(),你可以看到它返回一个 Response 对象,其中包含了 Web 服务器对你的请求做出的响应。

 1 >>>import requests
 2 >>>res = requests.get(http://www.gutenberg.org/cache/epub/1112/pg1112.txt)
 3 >>>type(res)
 4 <class requests.models.Response>
 5 >>>res.status_code == requests.codes.ok
 6 True
 7 >>> len(res.text)
 8 178981
 9 >>> print(res.text[:250])
10 The Project Gutenberg EBook of Romeo and Juliet, by William Shakespeare
11 
12 This eBook is for the use of anyone anywhere at no cost and with
13 almost no restrictions whatsoever. You may copy it, give it away or
14 re-use it under the terms of the Proje

Response 对象有一个 status_code 属性,可以检查它是否等于requests.codes.ok,了解下载是否成功。检查成功有一种简单的方法,就是在 Response对象上调用 raise_for_status()方法。如果下载文件出错,这将抛出异常。如果下载成功,就什么也不做。

未完待续

 

 

以上是关于从Web抓取信息的主要内容,如果未能解决你的问题,请参考以下文章

从Web抓取信息

python从web抓取信息

从Web抓取信息的几个常用方法

Python之Scrapy安装

使用 python 抓取谷歌精选片段

使用 VBA 从 Web 抓取数据时无法获取准确的元素类表