Pandas借助Python爬虫读取HTML网页表格存储到Excel文件(三十一)

实现目标:

  • 网易有道词典可以用于英语单词查询,可以将查询的单词加入到单词本;
  • 当前没有导出全部单词列表的功能。为了复习方便,可以爬取所有的单词列表,存入Excel方便复习涉及技术:

涉及技术:
Pandas:Python语言最强大的数据处理和数据分析库
Python爬虫:可以将网页下载下来然后解析,使用requests库实现,需要绕过登录验证。

0、处理流程

import requests
import requests.cookies
import json
import time
import pandas as pd




1. 登录网易有道词典的PC版,微信扫码登录,复制cookies到文件

cookie_jar = requests.cookies.RequestsCookieJar()

with open("./course_datas/c32_read_html/cookie.txt") as fin:
    cookiejson = json.loads(fin.read())
    for cookie in cookiejson:
        cookie_jar.set(
            name=cookie["name"],
            value=cookie["value"],
            domain=cookie["domain"],
            path=cookie["path"]
        )
cookie_jar

2. 将html都下载下来存入列表

htmls = []
url = "http://dict.youdao.com/wordbook/wordlist?p={idx}&tags="
for idx in range(6):
    time.sleep(1)
    print("**爬数据:第%d页" % idx)
    r = requests.get(url.format(idx=idx), cookies=cookie_jar)
    htmls.append(r.text)
htmls[0]

3. 使用Pandas解析网页中的表格

# df = pd.read_html(htmls[0])
try:
    df = pd.read_html(htmls[2])
except Exception as e:
    print(e)

print(len(df))
print(type(df))

df[0].head(3)

# 收集6个网页的表格
df_list = []
for html in htmls:
    df = pd.read_html(html)
    df_cont = df[1]
    df_cont.columns = df[0].columns
    df_list.append(df_cont)

# 合并多个表格
df_all = pd.concat(df_list)

df_all.shape

4. 将结果数据输出到Excel文件

df_all[["单词", "音标", "解释"]].to_excel("./course_datas/c32_read_html/网易有道单词本列表.xlsx", index=False)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值