登录
    Technology changes quickly but people's minds change slowly.

Python 爬虫入门篇(一)–初见爬虫

技术宅 破玉 1613次浏览 0个评论

爬虫踪影

  每时每刻,搜索引擎和网站都在采集大量的信息。而他们采用信息的程序就被叫做“爬虫”,这个名字十分形象,程序就像一个个小虫子,采集完数据进行处理。一般都是先“爬”到对应的网页上,在把需要的信息“铲”下来。而作为一个站长,掌握爬虫技术,就可以十分方便的管理自己网站的内容,或者是使自己更加安全的管理自己的网站。

创建爬虫

  网络上遍布的信息,让我们垂涎欲滴,我们不能一位的去复制粘贴他,我们是人类,就必须学习这简化自己的工作,重复是机器才会去干的工作,而我们学会的就是控制机器。控制机器,我们就必须有机器语言,这里我们采用Python这门强大的爬虫语言来完成我们的采集工作。Python获取网络上的信息非常方便,这得益于它强大的库文件。
下面我们来看如何实现:

from urllib.request import urlopen
html=urlopen("http://www.jrzj.com/1804119.html")
print(html.read())

运行上述代码,我们就能从上面网址对应的网页上获取html信息。获取的信息还没有经过处理,非常杂乱,但是我们知道了如何获取。我们是利用urllib这个库来获取的。urllib这个库是一个非常强大实用的Python库。这个库的详细信息及说明文档详见urllib

细化程序

  上面使我们获取全部的html信息,如果我们想要处理某一部分的信息怎么办呢?这时候我们需要一个叫BeautifulSoup的库,这个库可以提取某个节点的信息。

from urllib.request import urlopen
from bs4 import BeautifulSoup
article=urlopen("http://www.jrzj.com/180411.html")
bsObj=BeautifulSoup(article.read())
print(bsObj.h1)

上面我们就将一片文章的标题提取出来了。当然这只是一个简单的演示,以后我们将会学习更加复杂的例子。

处理异常,优化程序

  程序总是有异常的,尤其是与网络有关的程序。因为这涉及了网络是否通畅,网络权限,网络地址是否变更等一系列的不可预测因素。因此,为了完成更好的程序,我们必须学会处理异常,优化程序。

from urllib.request import urlopen
from urllib.error import HTTPError,URLError
try:
	html=urlopen("http://www.jrzj.com/1804119.html")
except HTTPError as e:
	print(e)
else:
	print(html.read())

异常处理完成,我们还要学会将重复使用的功能抽象成函数,比如获取文章的标题

from urllib.request import urlopen
from urllib.error import HTTPError,URLError
from bs4 import BeautifulSoup

def getTitle(url):
	try:
		html=urlopen(url)
	except (HTTPError,URLError) as e:
		return None
	try:
		bsObj=BeautifulSoup(html.read())
		title=bsObj.body.h1
	except AttributeError as e:
		return None
	return title


title=getTitle("http://www.jrzj.com/180411.html")
if title==None:
	print('Title could not be found')
else:
	print(title)

这就是一个简单的爬虫小程序,获取特定文章的标题。


华裳绕指柔, 版权所有丨如未注明 , 均为原创|转载请注明Python 爬虫入门篇(一)–初见爬虫
喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址