美文网首页
2019实战第二期-并发实战打卡

2019实战第二期-并发实战打卡

作者: tipire | 来源:发表于2019-03-31 00:07 被阅读0次

题目:

用并发写一个小程序,获取有道翻译上的单词意思,比如 单词china
爬取url:http://dict.youdao.com/w/eng/china/
输出的数据结构:单词的名称,单词的发音,单词的内容。例如
{'Word': 'china','Proc': '', 'Desc':''}

提示:大家可以多线程,也可以用线程池(ThreadPoolExcutor)

代码思路:
1、先写一个函数去下载http://dict.youdao.com/w/eng/china/
2、然后解析这个页面,解析可以用pyquery,这个库非常好用,大概只要几行代码可以解析
3、然后用多线程去处理上面的task

from pyquery import PyQuery as pq
import requests
import threadpool


def download_html(word):
    output = {'Word': word}
    final_output = {}
    url = 'http://dict.youdao.com/w/eng/{}/'.format(word)
    try:
        r = requests.get(url)
        if r.status_code == 200:
            doc = pq(r.text)
            final_output = decode_html(doc, output)
            print(final_output)
    except Exception as e:
        print('抓取页面异常,抓取不到:' + word)
        return None
    return final_output


def decode_html(doc, output):
    output['Proc'] = ''
    output['Desc'] = ''
    for pro in doc.items('.baav .pronounce'):
        output['Proc'] = output['Proc'] + pro.text()

    for li in doc.items('#phrsListTab .trans-container ul li'):
        output['Desc'] = output['Desc'] + li.text()
    return output


word_list = ['china', 'nice', 'python', 'beautiful', 'girl']
pool = threadpool.ThreadPool(10)
word_pool = threadpool.makeRequests(download_html, word_list)
[pool.putRequest(req) for req in word_pool]
pool.wait()

相关文章

  • 2019实战第二期-时间读书打卡

    2019实战第二期-时间读书打卡 --读《Python编程快速上手—让繁琐工作自动化》 Python里面的并发分2...

  • 2019实战第二期-并发实战打卡

    题目: 用并发写一个小程序,获取有道翻译上的单词意思,比如 单词china爬取url:http://dict.yo...

  • 2019实战第二期-异常实战打卡

    2019实战第二期-异常实战打卡 题目:编写一个迷你的计算器,支持两个数加,减,乘,除要求提示用户输入2个数字和一...

  • Java并发 - Future模式

    标签:原创 Java 并发 更多Java并发实战内容,请参考Java并发 - 并发编程实战 理解Future 关于...

  • 2019实战第二期-异常读书打卡

    -----学习《Python基础教程第3版》读书笔记----- 2019实战第二期-异常读书打卡 异常是什么 使用...

  • 20180708(日)

    做智慧父母,育卓越孩子。祥和父母学院21天打卡实战营第二期《高效沟通》打卡D4天 悦实战,悦成长 今天早上雷阵雨,...

  • 20180706(五)

    做智慧父母,育卓越孩子。祥和父母学院21天打卡实战营第二期《高效沟通》打卡D2天 悦实战,悦成长 冯老师高效沟通的...

  • 20180705(四)

    做智慧父母,育卓越孩子。祥和父母学院21天打卡实战营第二期《高效沟通》打卡D1天 悦实战,悦成长 冯老师高效沟通的...

  • 20180707(六)(补)

    做智慧父母,育卓越孩子。祥和父母学院21天打卡实战营第二期《高效沟通》打卡D3天 悦实战,悦成长 今天阅读了一位同...

  • 做智慧父母,育卓越孩子

    祥和父母学院21天打卡实战营第二期《高效沟通》打卡D1天 悦实战,悦成长 冯老师高效沟通的第一讲重点讲的换位思考。...

网友评论

      本文标题:2019实战第二期-并发实战打卡

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