用python从网页下载单词库
从网站下载单词库
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)
没有使用线程。
用python从网页下载单词库的更多相关文章
- Python——pip快速下载第三方库到指定环境
pip install Scikit-learn --target=C:/Users/Jery/PycharmProjects/play/venv/Lib/site-packages -i https ...
- Python用pip安装第三方库时换源下载
pip默认是从Python官网下载第三方库,从国外下载当然不如从国内下载来得快 豆瓣:https://pypi.doubanio.com/simple 还有其它源,阿里云等等,一个就够用了 用pip安 ...
- Python使用urllib,urllib3,requests库+beautifulsoup爬取网页
Python使用urllib/urllib3/requests库+beautifulsoup爬取网页 urllib urllib3 requests 笔者在爬取时遇到的问题 1.结果不全 2.'抓取失 ...
- 用 python 实现一个多线程网页下载器
今天上来分享一下昨天实现的一个多线程网页下载器. 这是一个有着真实需求的实现,我的用途是拿它来通过 HTTP 方式向服务器提交游戏数据.把它放上来也是想大家帮忙挑刺,找找 bug,让它工作得更好. k ...
- Python中导入第三方声源库Acoular的逻辑解释以及Acoular的下载
[声明]欢迎转载,但请保留文章原始出处→_→ 秦学苦练:http://www.cnblogs.com/Qinstudy/ 文章来源:http://www.cnblogs.com/Qinstudy/p/ ...
- Python爬虫、自动化常用库&帮助文档URL
一.Python下载地址 Windows终端Cmder.exe下载--->http://cmder.net/ Python下载(Windows) ---> https://w ...
- 用python做网页抓取与解析入门笔记[zz]
(from http://chentingpc.me/article/?id=961) 事情的起因是,我做survey的时候搜到了这两本书:Computational Social Network A ...
- Python爬虫--- 1.1请求库的安装与使用
来说先说爬虫的原理:爬虫本质上是模拟人浏览信息的过程,只不过他通过计算机来达到快速抓取筛选信息的目的所以我们想要写一个爬虫,最基本的就是要将我们需要抓取信息的网页原原本本的抓取下来.这个时候就要用到请 ...
- python调用c++/c 共享库,开发板上编译的一些坑!
1.对于python,ctypes只能load动态库,但现在我的对象是一个静态库,而且我没有源代码,静态库在编译过程中没有加--fPIC参数,所以我也没办法将其编译为动态库,有没有什么方法在pytho ...
- Android Studio 更换国内源下载依赖库
我的博客:http://daycoding.com 小小程序猿 由于国内GFW的原因,经常导致android studio 莫名其妙的编译不了,多数原因是由于不能下载依赖库 Gradle支持三种不同的 ...
随机推荐
- 找了几个 Solon 的商业落地项目案例!
Solon 是啥?是一个高效的 Java 应用开发框架:更快.更小.更简单.(代码仓库:https://gitee.com/noear/solon) 提倡: 克制.简洁.开放.生态 启动快 5 - 1 ...
- Hive删除分区名称中含有特殊字符
先说方案:通过show partitions和hdfs url看到的都不是真正的分区名称,都是经过URI重新编码的,访问这些分区应该使用分区名称的原始字符串. 场景描述 当我们在SQL语句中使用变量时 ...
- 前端如何实现将多页数据合并导出到Excel单Sheet页解决方案|内附代码
前端与数据展示 前后端分离是当前比较盛行的开发模式,它使项目的分工更加明确,后端负责处理.存储数据;前端负责显示数据.前端和后端开发人员通过接口进行数据的交换.因此前端最重要的能力是需要将数据呈现给用 ...
- Rust 闭包与生命周期
- LeetCode_单周赛_327
目录 6283. 正整数和负整数的最大计数 代码 6285. 执行 K 次操作后的最大分数 代码 6284. 使字符串总不同字符的数目相等 代码 6283. 正整数和负整数的最大计数 代码 直接遍历统 ...
- JAVA虚拟机14 类加载器
1.简介 Java虚拟机设计团队有意把类加载阶段中的"通过一个类的全限定名来获取描述该类的二进制字节流"这个动作放到Java虚拟机外部去实现,以便让应用程序自己决定如何去获取所需的 ...
- Windows下x86和x64平台的Inline Hook介绍
前言 我在之前研究文明6的联网机制并试图用Hook技术来拦截socket函数的时候,熟悉了简单的Inline Hook方法,但是由于之前的方法存在缺陷,所以进行了深入的研究,总结出了一些有关Windo ...
- windows C++
#include <Windows.h> LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lPar ...
- Zstack 鼎阳SDS6204示波器和Archiver Appliance的重度测试2
https://blog.csdn.net/weixin_43767046/article/details/113748775 https://blog.csdn.net/weixin_4376704 ...
- RA维持期达标式减停生物制剂(DRESS研究)的18个月数据
标签:类风湿关节炎; TNF抑制剂; 达标式减停药物 RA维持期达标式减停生物制剂(DRESS研究): 18个月临床疗效与继续足量应用者相仿 电邮发布日期: 2016-01-14 由于缺乏对常规诊疗有 ...