pythoy超级超级超级简单的一个爬虫小程序_html/css_WEB-ITnose

WBOY
Lepaskan: 2016-06-21 08:56:44
asal
1883 orang telah melayarinya

首次接触爬虫,这个程序可以让初学者明白爬虫是啥,爬虫的基本逻辑。(参照网易云课堂heibanke老师的程序编写的。hebanke老师的课程讲得很清楚,感兴趣的选手可以去看看)

被爬虫的网址是http://www.heibanke.com/lesson/crawler_ex00/需要完成的任务是在网址后面输入显示的数字转入下一个网址,再次读取显示的数字,转入下一个网址,以此循环

爬虫要求

在爬虫的时候需要需要用到两个库,一个urllib,一个BeautifulSoup,urllib为python自带的库,beautifulsoup需要自己安装

pip install beautifulsoup4
Salin selepas log masuk

安装成功后导入

import urllibfrom bs4 import BeautifulSoup
Salin selepas log masuk

urllib提供了一系列用于操作URL的功能打开要爬取得网站:

urllib.urlopen(url)
Salin selepas log masuk

beautifulsoup主要用于解析HTML,将 HTML转化成数型结构,每个节点都是Python对象。所有对象可以归纳为4种:1.Tag2.NavigableString3.BeautifulSoup4.Comment如果一个HTML为

<html> <[head])>  <title>   The Dormouse's story  </title>
Salin selepas log masuk
print soup.title>>><title>The Dormouse's story</title>
Salin selepas log masuk
print soup.title.string>>>The Dormouse's story
Salin selepas log masuk

程序逻辑:读出页面上的数字,将数字加在url后面,继续读取新页面的数字,直到进入最后一个没有数字的页面,break程序如下:

import urllibfrom bs4 import BeautifulSoupimport re#这个库导入是为了使用正则表达式读取读取找到的内容中的数字url='http://www.heibanke.com/lesson/crawler_ex00/'number=['']#用于储存读到的数字while True:    content = urllib.urlopen(url+number[0])#number为字符串,number[0]为数字    bs_obj = BeautifulSoup(content,"html.parser")#html.parser表示解析网站,不返回任何值    number = bs_obj.h3.string#网页显示出的“你需要在网址后输入数字44513”在html的h3 tag中,number在这里读出了h3里面的内容    number= re.findall(r'\d+',number)#读出了number里面的数字    if not number:#必须判断页面中还有是否还有number,没有说明已经到了最后一个页面,这时应该跳出循环,打印 bs_obj.h3.string        break    else:        print number[0]print bs_obj.h3.string
Salin selepas log masuk
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan