欢迎来到DIVCSS5查找CSS资料与学习DIV CSS布局技术!
  《Python网络数据采集》7月8号-7月10号,这三天将该书精读一遍,脑海中有了一个爬虫大体框架后,对于后续学习将更加有全局感。
 
  此前,曾试验看视频学习,但是一个视频基本2小时,全部拿下需要30多个视频,如此看来每天学习一个视频时间都是非常吃力的,且都属于被动输入,尤其是在早上学习视频容易犯困。
 
  故此,及时调整学习策略,采用“电子书+廖雪峰网页教程+实操+Google+咨询程序员+每日总结归纳”的主动学习模式,如此更加高效,更加容易把控进度!
 
  学习爬虫,一者兴趣,致力于借此兴趣驱动力掌握编程思维,进而让自己有能够将想法做成产品的的技能;二者,为了一个近在眼前的爬虫商业化机遇,更希望借此为自己增加一个收入来源。
 
  1.爬虫常见得异常及处理方法,用一个简单得爬虫代码解释,核心知识点:
 
  (1)异常一:网页在服务器上不存在(或者获取页面时,出现错误)。该异常发生时,程序会返回HTTP错误,如“404PageNotFound”"500InternetServerError"等。
 
  (2)异常二:服务器不存在(即,链接打不开,或者URL链接写错了),这时,urlopen会返回一个None对象。
 
  Ps:有的时候,网页已经从服务器成功获取,如果网页上的内容并非完全是我们期望的那样,也会出现异常。
 
  1fromurllib.requestimporturlopen
 
  2frombs4importBeautifulSoup
 
  3
 
  4try:
 
  5html=urlopen("http://pythonscraping.com/pages/page1.html")
 
  6#print(html.read())
 
  7#检测:网页在服务器上是否存在(或者获取页面时是否出现错误)
 
  8exceptHTTPErrorase:
 
  9print(e)
 
  10else:
 
  11bsobj=BeautifulSoup(html.read())
 
  12#检测:服务器是否存在(就是说链接能否打开,或者是URL链接写错了)
 
  13ifhtmlisNone:
 
  14print("URLisnotfound")
 
  15else:
 
  16print(bsobj.h1)
 
  17#print(bsobj.title)
 
  1#以上代码更改为检测异常更全面、可读性更强的代码,如下:
 
  2fromurllib.requestimporturlopen
 
  3frombs4importBeautifulSoup
 
  4
 
  5defgetTitle(url):
 
  6try:
 
  7html=urlopen(url)
 
  8exceptHTTPErrorase:
 
  9returnNone
 
  10try:
 
  11bsobj=BeautifulSoup(html.read())
 
  12title=bsobj.body.h1
 
  13exceptAttributeErrorase:
 
  14return
 
  15returntitle
 
  16
 
  17title1=getTitle("http://pythonscraping.com/pages/page1.html")
 
  18iftitle1==None:
 
  19print("Titlecouldnotbefound")
 
  20else:
 
  21print(title1)
 
  该部分代码执行时,出现报错:
 
  indentationerror:unexpectedindentprocessfinishedwithexitcode1
 
  Google发现,Tag和Space不能混合使用。原始第五行,def被tab缩进,后删除该tab缩进,问题解决。该问题具体原因,仍需要仔细查明!!!

如需转载,请注明文章出处和来源网址:http://www.divcss5.com/html/h54860.shtml