美文网首页
Python3爬虫入门实战(一)(修改)

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

作者: 大邓和他的python | 来源:发表于2016-09-01 13:28 被阅读476次

    最近发现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
    每周有直播哦,扫码即可加入

    相关文章

      网友评论

          本文标题:Python3爬虫入门实战(一)(修改)

          本文链接:https://www.haomeiwen.com/subject/agwcettx.html