Python 爬虫学习笔记 – 第三周/单元7/Re(正则表达式)库入门

English Version: https://today2tmr.com/en/2017/07/17/python-spider-study-note-week-threeunit-sevenintroduction-to-reregular-expression

正则表达式的概念

  • regular expression / regex / RE
  • 用于简洁表达一组字符串
  • 通用的字符串表达框架
  • 判断字符串特征归属,匹配
  • eg:
    • ‘PY’开头,后续不超过10个字符,后续不含’Y’和’P’
    • PY[^PY]{0,10}

编译:

  • 将符合正则表达式语法的字符串转换为正则表达式特征。p=re.compile(regex)

正则表达式的语法

  • 由字符和操作符组成
操作符 说明 实例
. 表示任何单个字符
[] 字符集,对单个字符给出取值范围 [abc]表示a,b,c,[a-z]表示a到z单个字符
[^] 非字符集,对单个字符给出排除范围 [^abc]表示非a,非b,非c的单个字符
* 前一个字符0次或无限次扩展 abc*表示ab,abc,abcc,abccc等
+ 前一个字符1次或无限次扩展 abc+表示abc,abcc,abccc等
? 前一个字符0次或1次扩展 abc?表示ab,abc
| 左右表达式任意一个 abc|def表示abc,def
{m} 扩展前一个字符m次 ab{2}c表示abbc
{m,n} 扩展前一个字符m至n次(含n) ab{1,2}c表示abc,abbc
^ 匹配字符串开头 ^abc表示abc且在一个字符串开头
$ 匹配字符串结尾 abc$表示abc且在一个字符串结尾
() 分组标记,内部只能使用 | 操作符 (abc)表示abc,(abc|def)表示abc,def
\d 数字,等价于[0-9]
\w 单词字符,等价于[A-Za-z0-9]

Continue reading “Python 爬虫学习笔记 – 第三周/单元7/Re(正则表达式)库入门”

Python 爬虫学习笔记 – 第二周/单元6/中国大学排名定向爬虫

English Version:  https://today2tmr.com/en/2017/07/16/python-spider-study-note-week-twounit-sixdirectional-spider-for-ranking-of-chinese-universities

http://www.zuihaodaxue.cn/zuihaodaxuepaiming2016.html

  • 功能描述
    • 输入:大学排名URL链接
    • 输出:大学排名信息的屏幕输出(排名,大学名称,总分)
    • 技术路线:requets-bs4
    • 定向:仅爬取输入的URL,不扩展
  • 可行性确定
    • 确认信息存储在HTML页面中(部分信息由JS动态生成)
    • 查看robots.txt,无爬虫限制
  • 设计程序结构
    1. 获取网页内容。getHTMLText()
    2. 提取信息放入合适的数据结构。二维数据,嵌套列表。fillUnivList()
    3. 利用数据结构展示并输出信息。printUnivList()

Continue reading “Python 爬虫学习笔记 – 第二周/单元6/中国大学排名定向爬虫”

Python 爬虫学习笔记 – 第二周/单元5/信息组织与提取方法

English Version: https://today2tmr.com/en/2017/07/16/python-spider-study-note-week-twounit-fiveway-to-organize-and-extract-information

信息标记的三种形式

信息标记

  • name
  • addr
  • 形成信息组织结构,增加信息维度
  • 可用于通信、存储和展示
  • 标记的结构具有重要价值
  • 更利于理解和利用

HTML的信息标记

  • WWW信息组织方式
  • 将声音、图像、视频等超文本信息嵌入到文本之中
  • 通过预定义<>…</>标签形式组织不同类型信息

Continue reading “Python 爬虫学习笔记 – 第二周/单元5/信息组织与提取方法”

Python 爬虫学习笔记 – 第二周/单元4/Beautiful Soup库入门

English Version: https://today2tmr.com/en/2017/07/15/python-spider-study-note-week-twounit-fourintroduction-to-beautiful-soup

Beautiful Soup is library of the third party to analyze HTML and XML.

Beautiful Soup库的安装

  • 美丽汤
  • http://www.crummy.com/software/BeautifulSoup
  • pip install beautifulsoup4
  • 打开网页 http://python123.io/ws/demo.html
  • 源代码:
    • 通过浏览器

       
    • 通过Requests库

       

Continue reading “Python 爬虫学习笔记 – 第二周/单元4/Beautiful Soup库入门”

Python 爬虫学习笔记 – 第一周/单元3/应用实例

English Version: https://today2tmr.com/en/2017/07/15/python-spider-study-note-week-oneunit-threeapplications/

实例一:京东商品页面爬取

Continue reading “Python 爬虫学习笔记 – 第一周/单元3/应用实例”

Python爬虫学习笔记 – 第一周/单元二/盗亦有道: Robots.txt

English Version:  https://today2tmr.com/en/2017/07/15/python-spider-study-note-week-oneunit-twocode-of-conduct-robots-txt

网络爬虫的尺寸:

  • 爬取网页:小规模,数据量小,速度不敏感,用Requests库。>90%
  • 爬取网站:中规模,数据规模较大,速度敏感,用Scrapy库
  • 爬取全网:大规模,搜索引擎,爬取速度关键,定制开发

由于:

  • 受限于开发者的水平和目的,网络爬虫会给服务器带来巨大开销。
  • 数据归有权。
  • 隐私泄露。

Continue reading “Python爬虫学习笔记 – 第一周/单元二/盗亦有道: Robots.txt”

Python 爬虫学习笔记 – 第一周/单元1/Requests库入门

English Version: https://today2tmr.com/en/2017/07/15/python-spider-study-note-week-oneunit-oneintroduction-to-requests-library/

www.icourse163.org/course/BIT-1001870001

http://www.python-requests.org

安装: pip3 install Requests

简单应用:

  • 状态码200意味着获取成功页面内容。
  • 七个主要方法:
    • requests.request() 创建一个请求,其余方法的基本方法。
    • requests.get() 对应HTTP中的GET。
    • requests.head() 对应HTTP中的HEAD。
    • requests.post() 对应HTTP中的POST。
    • requests.put() 对应HTTP中的PUT。
    • requests.patch() 修改部分内容,对应HTTP中的PATCH。
    • requests.delete() 对应HTTP中的DELETE。

Continue reading “Python 爬虫学习笔记 – 第一周/单元1/Requests库入门”