Python3爬虫入门实战(一)(修改)

2016-09-01  本文已影响476人  大邓和他的python

最近发现requests比python3中的urllib.request(python2中的urllib,urllib2好用多了)
重复昨天的工作,以后课程尽量用requests库
# -- coding=utf-8 --
import requests
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(初始,结束,间隔)
    # requests库用来向该网服务器发送请求,请求打开该网址链接
    html = requests.get('https://read.douban.com/columns/category/all?sort=hot&start=%d' % i).content
    # 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:
    # 因为是列表,要用list[0]取出来<a>标签,在用<a>的string将文本取出来
        title = h4_node.contents[0].string
        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)

运行结果:
......
第1647本书 <<你常常在梦中欢快地笑出声来>>
第1648本书 <<诡故事不是鬼故事>>
第1649本书 <<海底喋血——核潜艇>>
第1650本书 <<猪八戒与嫦娥>>
运行时间共:385.77秒
共抓到1651本书名

关注公众号 大邓带你玩转python

大邓带你玩转python
每周有直播哦,扫码即可加入
上一篇下一篇

猜你喜欢

热点阅读