1.利用webbrowser模块。
利用webbrowser模块的open()函数可以启动一个新的浏览器,打开指定URL。
import webbrowser
webbrowser.open('http://baidu.com')
2.用requests模块从web下载文件
requests模块可以帮助我们从web上下载文件,当然由于requests不是自带的模块,所以在使用前必须用
pip install requests
安装requests的模块。
import requests
result=requests.get('http://www.gutenberg.org/cache/epub/1112/pg1112.txt')
result.raise_for_status()
这样会返回一个Response对象。下载好的文件页面会保存在result.text里面;result还有一个status_code属性,可以检查是否等于requests.codes.ok,检查下载是否成功。
或者是在Response对象上调用raise_for_status()方法。如果下载失败,将抛出异常,否则就什么都不做。
3.将下载好的web页面保存在硬盘上。
可以使用传统的open() write()方法将web页面保存在硬盘上的一个文件,但是必须要以“写二进制”的模式即‘wb’模式打开文件,即使写入的文件是一个文本文件。
为了将web页面写入一个文件,可以使用for循环和Response对象的iter_content()方法
import requests
result=requests.get('http://www.gutenberg.org/cache/epub/1112/pg1112.txt')
result.raise_for_status()
File = open('pg.txt','wb')
for chunk in result.iter_content(100000):
File.write(chunk)
File.close()
这样可以制定一段包含多少字节,一段一段地写入新文件。
4.用beautifulsoup解析页面
beautifulsoup的任务就是解析html代码中的各种标签。
<span style="font-size:18px;">import bs4,requests
res=requests.get('http://baidu.com')
res.raise_for_status()
Soup=bs4.BeautifulSoup(res.text,'lxml')
</span>
这样Soup就成为一个BeautifulSoup对象,而且是以lxml的方式解析的。
解析完要做的工作就是用select()方法寻找元素。
以下显示了常用的一些css选择器的例子:
传递给select()方法的选择器: 将匹配:
soup.select('div') 所有名为<div>的元素
soup.select('#name') 带有id属性为name的元素
soup.select('.notice') 所有使用CSS class属性名为notice的元素
soup.select('div span') 所有在<div>元素之内的<span>元素
soup.select('div > span') 所有直接在div元素之内的<span>元素,中间没有其他元素
soup.select('input[name]') 所有名为<input>并有一个name属性其值无所谓的元素
soup.select('input[name="hello"]') 所有名为<input>并有一个name属性且值为hello的元素
select()函数将会返回一个标签的集合,这是BeautifulSoup表示一个HTML元素的方式。针对每一次的成功匹配都有一个标签对象与之对应。
标签值有attrs属性,将该标签的所有html属性作为一个字典。
标签对象的get()方法可以让我们很容易从元素中获取属性值。