黑马程序员技术交流社区
标题: 【上海校区】大数据与云计算学习:Python网络数据采集 [打印本页]
作者: 不二晨 时间: 2018-11-12 09:33
标题: 【上海校区】大数据与云计算学习:Python网络数据采集
urllib这里我们先操练起来,写个测试爬虫
from urllib.request import urlopen//查找python的urllib库的request模块,导出urlopen函数html = urlopen("http://jxdxsw.com/")//urlopen用来打开并读取一个从网络获取的远程对象print(html.read())然后,把这段代码保存为`scrapetest.py`,终端中运行如下命令
python3 scrapetest.py这里会输出http://jxdxsw/这个网页首页的全部HTML代码
鲸鱼注:
Python 3.x中urllib分为子模块:
- urllib.request
- urllib.parse
- urllib.error
- urllib.robotparser
urllib是python的标准库,它能够:
- 从网络请求数据
- 处理cookie
- 改变 请求头和用户代理 等元数据的函数
BeatifulSoupbeatifulsoup非python标准库需要单独安装
安装使用详情
鲸鱼使用的是ubuntu所以一下几行命令即可 sudo apt-get install python-bs4sudo apt-get install python3-pip //安装python包管理工具pip3 install beautifulsoup4使用BeautifulSoup解析这段代码,能够得到一个 BeautifulSoup 的对象,并能按照标准的缩进格式的结构输出:
from urllib.request import urlopenfrom bs4 import BeautifulSouphtml = urlopen("http://jxdxsw.com/")bsobj = BeautifulSoup(html.read())print(bsobj.prettify())print("-----------------------------我是分割线---------------------------")print(bsobj.title)print("-----------------------------我是分割线---------------------------")print(bsobj.find_all('a'))异常处理html = urlopen("http://jxdxsw.com/")这行代码主要可能会发生两种异常:
- 网页在服务器上不存在(或者获取页面的时候出现错误)
- 服务器不存在
第一种异常会返回HTTP错误,如:"404 Page Not Found" "500 Internal Server Error",所有类似情况, urlopen函数都会抛出“HTTPError”异常,遇到这种异常,我们可以这样处理:
try: html = urlopen("http://jxdxsw.com/")except HTTPError as e: print(e) # 返回空值,中断程序,或者执行另一个方案else: # 程序继续。注意,如果你已经在上面异常捕获那段代码里返回或中断(break) #那就不需要使用else语句,这段代码也不会执行第二种服务器不存在(就是说链接jxdxsw.com/打不开,或者url写错),urlopen 会返回一个None对象,这个对象与其他编程语言中的null类似 # 添加一个判断语句检测返回的html是不是Noneif html is None: print("URL is not found)else: #程序继续
作者: 不二晨 时间: 2018-11-14 15:46
~(。≧3≦)ノ⌒☆
作者: 梦缠绕的时候 时间: 2018-11-15 15:00
作者: 魔都黑马少年梦 时间: 2018-11-15 16:51
作者: 小影姐姐 时间: 2018-11-15 17:18
奈斯~
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |