本项目通过豆瓣电影Top250的爬取来实践三种解析库的使用, 备注:因技术具有时效性,本文只提供解决问题的思路
1)网页地址:url = https://movie.douban.com/top250
分页获取方式(每页数据25条,总共10页数据):
第一页:url + ?start=0
第二页:url + ?start=25
第三页:url + ?start=50
2)分析页面结构(查看网页源代码):
单项数据的页面结构如下
<div class="item">
<div class="pic">
<em class="">1</em>
<a href="https://movie.douban.com/subject/1292052/">
<img width="100" alt="肖申克的救赎" src="https://img3.doubanio.com/view/photo/s_ratio_poster/public/p480747492.webp" class="">
</a>
</div>
<div class="info">
<div class="hd">
<a href="https://movie.douban.com/subject/1292052/" class="">
<span class="title">肖申克的救赎</span>
<span class="title"> / The Shawshank Redemption</span>
<span class="other"> / 月黑高飞(港) / 刺激1995(台)</span>
</a>
<span class="playable">[可播放]</span>
</div>
<div class="bd">
<p class="">
导演: 弗兰克·德拉邦特 Frank Darabont 主演: 蒂姆·罗宾斯 Tim Robbins /...<br>
1994 / 美国 / 犯罪 剧情
</p>
<div class="star">
<span class="rating5-t"></span>
<span class="rating_num" property="v:average">9.7</span>
<span property="v:best" content="10.0"></span>
<span>1741766人评价</span>
</div>
<p class="quote">
<span class="inq">希望让人自由。</span>
</p>
</div>
</div>
</div>
3)编写爬取程序
伪代码如下:
def getPage(url):
'''爬取指定url页面信息'''
def parsePage(content):
'''解析爬取网页中的内容,并返回字段结果'''
def writeFile(content):
'''执行文件追加写操作, 在这里可以存入本地文件或数据库'''
def main(offset):
''' 主程序函数,负责调度执行爬虫处理 '''
# 判断当前执行是否为主程序运行,并遍历调用主函数爬取数据
if __name__ == '__main__':
#main(0)
for i in range(10):
main(offset=i*25)
time.sleep(1)
本项目通过三种解析库来实践具体参考如下代码仓库: