Python3爬虫入门实战(一)

浏览: 1425

本实战课程主要用到urllib.request(或者requests) 、 BeautifulSoup 、Selenium这三种库。
urllib.request(或者requests) 用来访问网页,这个是死套路,记住就可以了。
BeautifulSoup 用来从网页结构中定位自己想要的内容,并获取到
会了上面的两个个库,一般的不需要登录验证的小网站你都能爬了。

而抓登录验证的网站就需要用到Selenium库

好了,下面开始我们的课程。
前请准备好Beautiful Soup 相关知识
今天抓豆瓣读书

# -*- coding=utf-8 -*-
import urllib.request
from bs4 import BeautifulSoup
import time

num = 1 #用来计数,计算爬取的书一共有多少本
start_time = time.time() #计算爬虫爬取过程时间

#第一页网页网址https://read.douban.com/columns/category/all?sort=hot&start=0
#第二页网页网址https://read.douban.com/columns/category/all?sort=hot&start=10
#第三页网页网址https://read.douban.com/columns/category/all?sort=hot&start=20
#......发现规律了吗
url = 'https://read.douban.com/columns/category/all?sort=hot&start='


for i in range(0,1650,10): #这里的 range(初始,结束,间隔)
#urllib.request库用来向该网服务器发送请求,请求打开该网址链接
html = urllib.request.urlopen('https://read.douban.com/columns/category/all?sort=hot&start=%d' % i)
#BeautifulSoup库解析获得的网页,第二个参数一定记住要写上‘lxml’,记住就行
bsObj = BeautifulSoup(html,'lxml')

print('==============' + '第%d页'%(i/10 + 1) + '==============')
#分析网页发现,每页有10本书,而<h4>标签正好只有10个。
h4_node_list = bsObj.find_all('h4') # 这里返回的是h4标签的list列表
for h4_node in h4_node_list: #遍历列表
#获取h4标签内的a标签,但这里返回是只含1个元素的list
a_node = h4_node.contents[0]
title = a_node.contents[0] #因为是列表,要list[0],取出来
title = '<<' + title + '>>'
print('第%d本书'%num, title)
num = num + 1
#设置抓数据停顿时间为1秒,防止过于频繁访问该网站,被封
time.sleep(1)


end_time = time.time()
duration_time = end_time - start_time
print('运行时间共:%.2f' % duration_time + '秒')
print('共抓到%d本书名'%num)

运行结果:
==============第1页==============
第1本书 <<你可以拥有你想要的生活>>
第2本书 <<女神日常修炼手册>>
第3本书 <<零基础学投资>>
第4本书 <<Low Fashion>>
第5本书 <<我的第一本理财书>>
第6本书 <<总有一句歌词打湿你心>>
第7本书 <<自我复位健康术>>
第8本书 <<学心理,我在学什么>>
第9本书 <<识男手册>>
第10本书 <<在床上>>
==============第2页==============
第11本书 <<好姑娘使用手册>>
第12本书 <<月薪三千的你>>
第13本书 <<女性心理成长自疗课>>
第14本书 <<我用奔跑告诉你,我不回头>>
第15本书 <<旅行手绘小课堂>>
第16本书 <<犀读:好文笔是读出来的>>
第17本书 <<跑赢CPI>>
。。。。。。。
。。。。。。。
第1640本书 <<细数穿花燕影偏>>
==============第165页==============
第1641本书 <<单身饭局>>
第1642本书 <<计划一场留学>>
第1643本书 <<闲步东瀛之横滨>>
第1644本书 <<小豆汁儿 慢慢长>>
第1645本书 <<茁壮幼儿园>>
第1646本书 <<空中楼阁>>
第1647本书 <<你常常在梦中欢快地笑出声来>>
第1648本书 <<诡故事不是鬼故事>>
第1649本书 <<海底喋血——核潜艇>>
第1650本书 <<猪八戒与嫦娥>>
运行时间共:366.54秒
共抓到1651本书名

推荐 1
本文由 邓旭东HIT 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

2 个评论

您好,我在使用您的程序时,第20行给出提示,修改为:
bsObj = BeautifulSoup(html,"html.parser")
可以正常运行了
嗯,我python中安装里lxml库

要回复文章请先登录注册