《Python网络数据采集》7月8号-7月10号,这三天将该书精读一遍,脑海中有了一个爬虫大体框架后,对于后续学习将更加有全局感。

此前,曾试验看视频学习,但是一个视频基本2小时,全部拿下需要30多个视频,如此看来每天学习一个视频时间都是非常吃力的,且都属于被动输入,尤其是在早上学习视频容易犯困。

故此,及时调整学习策略,采用 “电子书+廖雪峰网页教程+实操+Google+咨询程序员+每日总结归纳” 的主动学习模式,如此更加高效,更加容易把控进度!

学习爬虫,一者兴趣,致力于借此兴趣驱动力掌握编程思维,进而让自己有能够将想法做成产品的的技能;二者,为了一个近在眼前的爬虫商业化机遇,更希望借此为自己增加一个收入来源。

1. 爬虫常见得异常及处理方法,用一个简单得爬虫代码解释,核心知识点:

(1)异常一:网页在服务器上不存在(或者获取页面时,出现错误)。该异常发生时,程序会返回HTTP错误,如“404 Page Not Found” "500 Internet Server Error"等。

(2)异常二:服务器不存在(即,链接打不开,或者URL链接写错了),这时,urlopen会返回一个None对象。

Ps:有的时候,网页已经从服务器成功获取,如果网页上的内容并非完全是我们期望的那样,也会出现异常。


 1 from urllib.request import urlopen
2 from bs4 import BeautifulSoup
3
4 try:
5 html = urlopen("http://pythonscraping.com/pages/page1.html")
6 # print(html.read())
7 # 检测:网页在服务器上是否存在(或者获取页面时是否出现错误)
8 except HTTPError as e:
9 print(e)
10 else:
11 bsobj = BeautifulSoup(html.read())
12 # 检测:服务器是否存在(就是说链接能否打开,或者是URL链接写错了)
13 if html is None:
14 print("URL is not found")
15 else:
16 print(bsobj.h1)
17 # print(bsobj.title)
 1 # 以上代码更改为检测异常更全面、可读性更强的代码,如下:
2 from urllib.request import urlopen
3 from bs4 import BeautifulSoup
4
5 def getTitle(url):
6 try:
7 html = urlopen(url)
8 except HTTPError as e:
9 return None
10 try:
11 bsobj = BeautifulSoup(html.read())
12 title = bsobj.body.h1
13 except AttributeError as e:
14 return
15 return title
16
17 title1 = getTitle("http://pythonscraping.com/pages/page1.html")
18 if title1 == None:
19 print("Title could not be found")
20 else:
21 print(title1)

该部分代码执行时,出现报错:

 indentationerror: unexpected indent process finished with exit code 1

Google发现,Tag和Space不能混合使用。原始第五行,def被tab缩进,后删除该tab缩进,问题解决。该问题具体原因,仍需要仔细查明!!!

												

20190715《Python网络数据采集》第 1 章的更多相关文章

  1. Python网络数据采集PDF

    Python网络数据采集(高清版)PDF 百度网盘 链接:https://pan.baidu.com/s/16c4GjoAL_uKzdGPjG47S4Q 提取码:febb 复制这段内容后打开百度网盘手 ...

  2. Python网络数据采集PDF高清完整版免费下载|百度云盘

    百度云盘:Python网络数据采集PDF高清完整版免费下载 提取码:1vc5   内容简介 本书采用简洁强大的Python语言,介绍了网络数据采集,并为采集新式网络中的各种数据类型提供了全面的指导.第 ...

  3. 笔记之Python网络数据采集

    笔记之Python网络数据采集 非原创即采集 一念清净, 烈焰成池, 一念觉醒, 方登彼岸 网络数据采集, 无非就是写一个自动化程序向网络服务器请求数据, 再对数据进行解析, 提取需要的信息 通常, ...

  4. Python网络数据采集7-单元测试与Selenium自动化测试

    Python网络数据采集7-单元测试与Selenium自动化测试 单元测试 Python中使用内置库unittest可完成单元测试.只要继承unittest.TestCase类,就可以实现下面的功能. ...

  5. Python网络数据采集6-隐含输入字段

    Python网络数据采集6-隐含输入字段 selenium的get_cookies可以轻松获取所有cookie. from pprint import pprint from selenium imp ...

  6. Python网络数据采集4-POST提交与Cookie的处理

    Python网络数据采集4-POST提交与Cookie的处理 POST提交 之前访问页面都是用的get提交方式,有些网页需要登录才能访问,此时需要提交参数.虽然在一些网页,get方式也能提交参.比如h ...

  7. Python网络数据采集3-数据存到CSV以及MySql

    Python网络数据采集3-数据存到CSV以及MySql 先热热身,下载某个页面的所有图片. import requests from bs4 import BeautifulSoup headers ...

  8. Python网络数据采集2-wikipedia

    Python网络数据采集2-wikipedia 随机链接跳转 获取维基百科的词条超链接,并随机跳转.可能侧边栏和低栏会有其他链接.这不是我们想要的,所以定位到正文.正文在id为bodyContent的 ...

  9. Python网络数据采集1-Beautifulsoup的使用

    Python网络数据采集1-Beautifulsoup的使用 来自此书: [美]Ryan Mitchell <Python网络数据采集>,例子是照搬的,觉得跟着敲一遍还是有作用的,所以记录 ...

随机推荐

  1. 对生成对抗网络GANs原理、实现过程、应用场景的理解(附代码),另附:深度学习大神文章列表

    https://blog.csdn.net/love666666shen/article/details/75522489 https://blog.csdn.net/yangdelong/artic ...

  2. 洛谷 P2571 [SCOI2010]传送带 题解

    每日一题 day51 打卡 Analysis 这道题是用非常恶心的三分套三分做的,有一个技巧是不要枚举坐标,枚举两条线段构成三角形的相似比就好了. 了解思路就还挺好写的(尽管我还调了三天) #incl ...

  3. CentOS yum repo

    CentOS yum repo   阿里云的 一个是Centos-6的 一个是Centos-7  # CentOS 5 wget -O /etc/yum.repos.d/CentOS-Base.rep ...

  4. 安卓入门教程(十三)-Activity

    已经发表个人公众号 什么是Activity? Android是由Activity,Service,Content,Provider等组件组成,其中要讲的就是Activity组件,这是最基本,且常用的组 ...

  5. Docker快速部署gitlab应用实战

    Gitlab是一个用于仓库管理系统开源项目,使用Git作为代码管理工具,并在此基础上搭建的web服务,可通过web界面进行访问公开或者私人项目,拥有类似于GIthub类似的功能,能够浏览源代码,可管理 ...

  6. python中的函数---函数应用

    每种编程语言中,都需要函数的参与,python同样也不例外.函数是集成的子程序,是算法实现的最小方法单位,是完成基本操作的手段的集合.编程中能够灵活应用函数,提高程序设计的简单化:实现代码应用的复用化 ...

  7. 第06组 Alpha冲刺(3/4)

    队名:福大帮 组长博客链接:https://www.cnblogs.com/mhq-mhq/p/11899921.html 作业博客 :https://edu.cnblogs.com/campus/f ...

  8. IIS 7中添加FTP站点并设置指定用户访问

    1. 开启 FTP 和 IIS 服务功能:   2. 添加新用户: 打开计算机管理界面:   展开“本地用户与组”:   邮件点击“用户”->点击“创建新用户”:   在创建新用户对话框输入用户 ...

  9. Spark2.x(五十七):User capacity has reached its maximum limit(用户容量已达到最大限制)

    背景: 目前服务器资源是43个节点,每个节点配置信息如下:24VCores 64G yarn配置情况: yarn.scheduler.minimum-allocation-mb  单个容器可申请的最小 ...

  10. Python推荐一整套开发工具

    原文:https://sourcery.ai/blog/python-best-practices/ 在开始一个新的Python项目时,很容易不做规划直接进入编码环节.花费少量时间,用最好的工具设置项 ...