A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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
  • 改变 请求头和用户代理 等元数据的函数
更多查看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:   #程序继续

4 个回复

正序浏览
奈斯~
回复 使用道具 举报
回复 使用道具 举报
回复 使用道具 举报
~(。≧3≦)ノ⌒☆
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马