您的位置:首页 > 新闻资讯 >文章内容
Python如何实现异步爬虫
来源: 作者:admin 时间:2021-03-19 17:00:55

    由于网络IO阻止了所有优化请求,因此我们可以采用异步方式进行优化,如多线程或协程并行抓取网页数据,这里使用Python协程来实现。


微信截图_20210319165845.png


    # coding: utf8


    """协程版本爬虫,提高抓取效率"""


    from gevent import monkey


    monkey.patch_all()


    import requests


    from lxml import etree


    from gevent.pool import Pool


    def main():


    # 1. 定义页面URL和解析规则


    crawl_urls = [


    'https://book.douban.com/subject/25862578/',


    'https://book.douban.com/subject/26698660/',


    'https://book.douban.com/subject/2230208/'


    ]


    rule = "//div[@id='wrapper']/h1/span/text()"


    # 2. 抓取


    pool = Pool(size=10)


    for url in crawl_urls:


    pool.spawn(crawl, url, rule)


    pool.join()


    def crawl(url, rule):


    # 3. 发起HTTP请求


    response = requests.get(url)


    # 4. 解析HTML


    result = etree.HTML(response.text).xpath(rule)[0]


    # 5. 保存结果


    print result


    if __name__ == '__main__':


    main()


相关文章内容简介
在线咨询
大客户经理
大客户经理
13316264505

大客户经理微信

微信客服

微信客服

微信公众号

微信公众号

回到顶部