urllib是python3.x中提供的一系列操作的URL的库,它可以轻松的模拟用户使用浏览器访问网页.
Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.Beautiful Soup会帮你节省数小时甚至数天的工作时间.
1、安装python最新安装包3.5.2
注:安装的时候注意勾选添加到PATH(系统环境变量)中
验证安装是否成功: 在命令行cmd中输入python,如果进入到python的编辑环境,则安装成功。
2、安装urllib
在python命令行中输入:from urllib.request import urlopen
显示如下:没有出现错误信息则安装成功
3、安装BeautifulSoup
在cmd中输入:pip install beautifulsoup4
验证是否装成功:form bs4 import BeautifulSoup 如果没有报错就是安装成功
4、urllib的用法介绍
(1)使用步骤
导入urllib库的request模块 from urllib import request
请求URL req = request.Request(URL)
设置请求头 req.add_header(key,value)
使用响应对象输出数据print(resp.read().decode('utf-8'))
from urllib importrequest
req= request.Request("http://www.baidu.com")
req.add_header("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64; rv:48.0) Gecko/20100101 Firefox/48.0")
resp=request.urlopen(req)print(resp.read().decode("utf-8"))
这里我用sublime Text 测试:可以看到百度首页的数据是可以被获取下来的。
(2)post请求
导入urllib库下面的parse: from urllib import parse
使用urlencode生成post数据
postData = parse.urlencode([
(key1,val1),
(key2,val2),
(key3,val3)
])
使用postData发送POST请求 request.urlopen(req,data = postData.encode('utf-8'))
得到请求状态 resp.status
得到服务器类型 resp.reason
from urllib.request importurlopenfrom urllib.request importRequestfrom urllib importparse
req= Request('http://huochepiao.114piaowu.com/train/ydTrainZdz_searchAdapter.action')
postData=parse.urlencode({'fromStation':'上海','godateStr':'2016-09-07','searchType':0,'toStation':'广州'}).encode('utf-8')
req.add_header("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64; rv:32.0) Gecko/20100101 Firefox/32.0")
resp= urlopen(req,data =postData)print(resp.read().decode('utf-8'))
5、beautifulSoup使用简介
http://beautifulsoup.readthedocs.io/zh_CN/latest/#id20