python-从 Web 抓取信息

本文介绍了使用Python进行Web抓取的基础知识,包括利用webbrowser、requests下载网页,BeautifulSoup解析HTML,以及selenium模块控制浏览器进行更复杂的交互。详细讲解了各个模块的使用方法,如requests的get()、raise_for_status(),BeautifulSoup的Tag对象和select()方法,以及selenium中控制浏览器的各种操作。
摘要由CSDN通过智能技术生成

webbrowser:是 Python 自带的,打开浏览器获取指定页面。
requests:从因特网上下载文件和网页。
Beautiful Soup:解析 HTML,即网页编写的格式。
selenium:启动并控制一个 Web 浏览器。selenium 能够填写表单,并模拟鼠标在这个浏览器中点击

一、利用 webbrowser 模块的 mapIt.py

import webbrowser
webbrowser.open('https://image.baidu.com/')		# 可以直接打开该网页

二、用 requests 模块从 Web 下载文件

1. requests.get()函数下载一个网页

import requests
res = requests.get('https://image.baidu.com/')
requests.get('https://image.baidu.com/')
# <Response [200]>
type(res)
# <class 'requests.models.Response'>   ||   requests.models.Response

请求网页是否成功

res.status_code == requests.codes.ok
# True

获取网页代码

res.text

网页有多少个字符

len(res.text)

获取网页的前250个字符

res.text[:250]

2.检查错误 raise_for_status()方法

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

res.raise_for_status()
import requests
res = requests.get('http://inventwithpython.com/page_that_does_not_exist')
try:
    res.raise_for_status()
except Exception as exc:
    print('There was a problem: %s' % (exc))
    
# There was a problem: 404 Client Error: Not Found 

三、将下载的文件保存到硬盘

将 Web 页面写入到一个文件,可以使用 for 循环和 Response 对象的iter_content()方法

import requests
res = requests.get('http://www.gutenberg.org/cache/epub/1112/pg1112.txt')
res.raise_for_status()
playFile = open('RomeoAndJuliet.txt', 'wb')
for chunk in res.iter_content(100000):
    playFile.write(chunk)

playFile.close()

iter_content()方法在循环的每次迭代中,返回一段内容。每一段都是 bytes 数据类型,你需要指定一段包含多少字节。10 万字节通常是不错的选择,所以将 100000作为参数传递给 iter_content()。

四、HTML

HTML Beginner Tutorial | HTML Dog
Web Development Courses &a

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蔷莫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值