Python爬虫入门
未读上篇文章只是简单讲述正则表达式如何读懂以及 re 常见的函数的用法。
我们可能读懂别人的正则表达式,但是要自己写起正则表达式的话,可能会陷入如何写的困境。
正则表达式写起来费劲又出错率高,那么有没有替代方案呢?
俗话说得好,条条道路通罗马。
目前有两种代替其的办法,一种是使用 Xpath 神器,另一种就是本文要讲的 BeautifulSoup。
1.BeautifulSoup 简介引用 BeautifulSoup 官网的说明:
Beautiful Soup is a Python library for pulling data out of HTML and XML files. It works with your favorite parser to provide idiomatic ways of navigating, searching, and modifying the parse tree. It commonly saves programmers hours or days of work.
大致意思如下: BeautifulSoup 是一个能从 HT ...
Python爬虫入门
未读我们能够使用 urllib 向网页请求并获取其网页数据。
但是抓取信息数据量比较大,我们可能需要其中一小部分数据。对付刚才的难题,就需要正则表达式出马了。
正则表达式能帮助我们匹配过滤到我们需要的数据,但它学习起来非常枯燥无味。
你可能会说,我还没有开始想学习正则表达式,你就来打击我?
莫慌!
层层递进地学习,一步一个脚印地学习,很快就会学会了。
对于爬虫,我觉得学会最基本的符号就差不多了。
1.正则表达式下面是一张关于正则表达式字符的图,图片资料来自CSDN。先把图中字符了解清楚,基本上算是入门。
2.re 模块Python 自 1.5 版本起通过新增 re (Regular Expression 正则表达式)模块来提供对正则表达式的支持。
使用 re 模块先将正则表达式填充到 Pattern 对象中,再把 Pattern 对象作为参数使用 match 方法去匹配的字符串文本。
match 方法会返回一个 Match 对象,再通过 Match 对象会得到我们的信息并进行操作。
下面介绍几个 re 常用的函数。
2-1.compile 函数compile 是把正则表达式的模式和 ...
Python爬虫入门
未读本文是爬虫系列文章的第一篇,主要讲解 Python 3 中的 urllib 库的用法。
urllib 是 Python 标准库中用于网络请求的库。
该库有四个模块,分别是urllib.request,urllib.error,urllib.parse,urllib.robotparser。其中urllib.request,urllib.error两个库在爬虫程序中应用比较频繁。
那我们就开门见山,直接讲解这两个模块的用法。
1.发起请求模拟浏览器发起一个 HTTP 请求,我们需要用到 urllib.request 模块。
urllib.request 的作用不仅仅是发起请求, 还能获取请求返回结果。
发起请求,单靠 urlopen() 方法就可以叱咤风云。
我们先看下 urlopen() 的 API
1urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None)
第一个参数 String 类型的地址或者
data 是 byte ...
近来在阅读 《轻量级 Django》,虽然还没有读完,但我已经收益颇多。
我不得不称赞 Django 框架的开发人员,他们把 Web 开发降低门槛。
Django 让我从对 Web 开发是一无所知到现在可以编写小型 web 应用,这很舒服。
Django 已经算是入门,所以自己把学习目标转到爬虫。
自己接下来会利用三个月的时间来专攻 Python 爬虫。
这几天,我使用“主题阅读方法”阅读 Python 爬虫入门的文档。制定 Python 爬虫的学习路线。
第一阶段:夯实入门要就是在打基础,所以要从最基础的库学起。下面是几个库是入门最经典的库
1.urllib它属于 Python 标准库,该库的作用是请求网页并下载数据。
在学习该库之前,最好把 HTTP 协议了解下。这会大大提高后面的学习效率。
先学会如何使用 urllib 请求到数据,再学习一些高级用法。例如:
设置 Headers: 某些网站反感爬虫的到访,于是对爬虫一律拒绝请求。设置 Headers 可以把请求伪装成浏览器访问网站。
Proxy 的设置: 某些站点做了反倒链的设置,会将高频繁访问的 IP 地址封掉。所以我们需 ...
很多人往往有这样的状态,当完成一个目标之后,就守着这收获的成果沾沾自喜。
你觉得考上了大学,就可以整天逃课沉迷于游戏?
你觉得找到工作了,就可以准时下班走人,天天潇潇洒洒?
答案是否定的。
如果你是现在身处这状态,说明你对自己未来人生没有什么规划,是对自己极其不负责任的表示。
你试问你自己,是否有在为自己拼命?
何炅, 这个名字已经家喻户晓了。
大家都知道他是大名鼎鼎的湖南电视台主持人。
平时我们都在享受何老师给我们带来快乐,可知背后辛酸的汗水呢?
何老师在读大学三年级时,每天需要应对高难度的阿拉伯语的学习,还担任着学生会的工作,兼职文艺部和宣传部的“要职”。
除此之外,他还在央视担任支持,平日要撰写台本以及录影,有时还要出差去外地录制。每天他都很晚才回到学校,同学们可能已经下了晚自习,甚至都已经入睡了。
而他只能先在学生会里将自己学生干部的事情都做完后,再回到宿舍开始预习第二天上课要准备的内容。
彭宇年轻的时还是街头一个小混混。
当他树立人生中第一个梦想————进入电视台工作,生活从此跟之前是天壤之别。
他时常对着电视机练习如何应对突发,还报名参加骗子的演员培训班。
到了后来,他 ...
Python编程
未读众所周知,Python有庞大的库资源,有官方标准库以及第三方的扩展库。
每个库都一把利器,能帮助我们快速处理某方面的问题。
作为一名python的初学者,当把基本的语法、列表和元组、字典、迭代器、异常处理、I/O操作、抽象等知识点学完之后。
我建议把官方常用的标准库也随便学下来。讲真的,你知道这些库之后,你会有种相见恨晚的感觉。
接下来带大家走进python标准库的世界。PS: 使用Python的版本为Python3
1.字符串
re: 正则表达式。用来判断字符串是否是你指定的特定字符串。在爬虫项目中,经常能捕获到它的身影。
StringIO: 提供以文件为保存形式来读和写字符串。还有个性能更加好的cStringIO版本
struct: 以二进制字节序列来解释字符串。可以通过格式化参数,指定类型、长度、字节序(大小端)、内存对齐等。
2.数据类型
bisect: 数组二分算法。提供支持按顺序对列表进行排序,而不必每次在列表中插入后再去排序。
heapq: 堆队列算法。最小堆:完全平衡二叉树, 所有节点都小于字节点。
datetime: 提供操作日期和时间的类。其中有两种日 ...
1.HTTP是什么
HTTP全称是HyperText Transfer Protocal,即:超文本传输协议。它主要规定了客户端和服务器之间的通信格式。HTTP还是一个基于请求/响应模式的、无状态的协议;即我们通常所说的Request/Response。
2.HTTP与TCP的关系TCP协议是位于TCP/IP参考模型中的网络互连层,而HTTP协议属于应用层。因此,HTTP协议是基于TCP协议。
3.HTTP请求(HTTP Request)HTTP请求由三部分组成,分别是:
请求行
HTTP头
请求体
下面是请求示例:
123456789GET /?tn=90058352_hao_pg HTTP/1.1Host: www.hao123.comConnection: keep-aliveCache-Control: max-age=0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8Upgrade-Insecure-Requests: 1U ...