黑马程序员技术交流社区

标题: 【上海校区】大数据与云计算学习: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是python的标准库,它能够:
更多查看python官方文档
BeatifulSoup
beatifulsoup非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