首页 > 编程语言 >用python从网页下载单词库

用python从网页下载单词库

时间:2022-09-21 00:23:18浏览次数:72  
标签:网页 get python 单词 meaning html words word

从网站下载单词库

1 每一页有几百个单词
2 每一个单词有独立的URL,URL中包含单词的中文解释
3 使用的库 requests,pyquery,web

#coding:utf-8

import requests as rq
from pyquery import PyQuery as pq
import web
import threading

db = web.database(dbn="sqlite",db="gre.db")


def initDB():
    _initSQL = """
        CREATE TABLE IF NOT EXISTS gre_word(
            id INTEGER PRIMARY KEY,
            word VARCHAR(200),
            meaning VARCHAR(200)
        )
    """
    db.query(_initSQL)

def get_html(url):
    """获取html文档"""
    headers={
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36'
    }    
    response = rq.get(url=url,headers=headers)
    return response.content

def get_words(html):
    """
        获取单词表,返回值:[(单词,单词链接)]
    """
    url_pre = "https://www.koolearn.com"
    word = pq(html)
    words = [(i.text(),"{}{}".format(url_pre,i.attr("href"))) for i in word(".word-box a.word").items()]
    return words

def insert_words(word,meaning):
    """插入单词"""
    db.insert(
        "gre_word",
        word = word,
        meaning = meaning,
    )
    print("insert ok!")
        
def get_word_meaning(wordURL):
    """获取单词含义"""
    doc = pq(get_html(wordURL))
    try:
        meaning = doc("li.clearfix").text()
    except:
        meaning = ""
    return meaning
    
if __name__ == "__main__":
    url = "https://www.koolearn.com/dict/tag_921_{}.html"
    import time
    startT = time.time()
    db.delete("gre_word",where="1")
    for i in range(1,31):
        html_ = get_html(url.format(i))
        words = get_words(html_)
        with db.transaction():
            for j in words:
                word,meaning = j[0],get_word_meaning(j[1])
                insert_words(word,meaning)
    endT = time.time()
    print(endT - startT)

没有使用线程。

标签:网页,get,python,单词,meaning,html,words,word
From: https://www.cnblogs.com/daivlin/p/16714195.html

相关文章

  • Python实验报告(第三周)
    实验1:Python语言基础一、实验目的和要求1、学会使用Python的流程控制语句;2、掌握Python的选择语句和循环语句;3、学会运用条件语句和循环语句的嵌套结构。二、实验环境......
  • python学习随笔
    python本周学习随笔一、打开Pycharm,新建项目1.创建名为hello.py文件(Python文件以.py后缀结尾)2.在hello.py中输入以下内容print("helloworld")3.在代码区域右键,选......
  • Python实验报告(第三周)
    一、实验目的和要求1.正确书写python语句2.掌握条件语句的使用3.正确使用序列二、实验环境软件版本:Python3.1064_bit三、实验过程实例01:(省略题目)  结果如下......
  • Python之numpy库(一)
      NumPy(NumericalPython)是科学计算基础库,提供大量科学计算相关功能,比如数据统计,随机数生成等。其提供最核心类型为多维数组类型(ndarray),支持大量的维度数组与矩阵运算,N......
  • python lambda的使用说明
    一用途减少代码冗余没有函数名字,也指匿名函数快速实现函数功能二用法说明:lambdaargument_list:expersionargument_list表示输入传入的参数expersion表......
  • 我学python踩过的那些坑
    变量作用域python对于变量作用域的处理,与我们常用的java,c都不同。下面这份代码会输出5,而不是4x=5deff(): x=4f()print(x)你可能觉着这很显然,因为这就相当于我在......
  • Python 使用requests下载图片的方法及示例代码
    Python中可以使用requests模块执行GET和POST请求,requests继承了urllib2的所有特性。requests支持HTTP连接保持和连接池,支持使用cookie保持会话,支持文件上传,支持自动确定响......
  • [NOIP2000 提高组] 单词接龙
    [NOIP2000提高组]单词接龙题目背景注意:本题为上古NOIP原题,不保证存在靠谱的做法能通过该数据范围下的所有数据。题目描述单词接龙是一个与我们经常玩的成语接龙相......
  • python基本数据类型
    基本数据类型:整形int12浮点型float12.12列表list[]集合set{1,2,3}字典dict{1:'a'},key是不可变类型,一般是字符串,value可以使任意类型元祖typle(1,2,3)......
  • python经典题目:list1=[1,2,3,4,5] 一行代码取出比4大的元素【杭州多测师】【杭州多测
    #list1=[1,2,3,4,5]#一行代码取出比4大的元素print([iforiin[1,2,3,4,5]ifi>4]) #输入一串字符串、如果有重复的字符打印第一次出现的字符、否则打印no......