如何从硒python中的同一类中获取不同的数据?

英菲

我在stackoverflow中进行了搜索,但未找到任何答案。

我已经用python编写了一个脚本来从该网站获取数据。

https://resources.allsetlearning.com/chinese/grammar/Reduplication_of_adjectives

该页面具有两到三个句子结构和4-5个示例。例如:

结构1-
示例1-
示例2

结构2-
示例1-
示例2

结构3-
示例1-
示例2-
示例3

我设法获得了所有的句子结构和例句,但是如何分别为结构1,结构2,结构3获取例句。还有如何不弄错句子。

from selenium import webdriver
import time

driver = webdriver.Chrome(r"C:\Users\<user>\Documents\chromedriver\chromedriver.exe") # change it

save_file = open("export.txt", "w", encoding="utf8")
wrong_link_file = open("link_with_wrong.txt", "w", encoding="utf8")

url = "https://resources.allsetlearning.com/chinese/grammar/Reduplication_of_adjectives"

time.sleep(1)

driver.get(url)

time.sleep(3)

#jiegou = driver.find_element_by_xpath("/html/body/section/div[3]/div[4]/div[2]/div/div/div[2]/h1")

jiegou = driver.find_elements_by_class_name("jiegou")

usedfor = driver.find_element_by_xpath("//*[@id='ibox']/ul/li[6]/div[2]")

heading = driver.find_element_by_xpath("//*[@id='innerbodycontent']/div/div[2]/h1")

sen = driver.find_elements_by_class_name("spaced")

wrong = driver.find_elements_by_class_name("x")


# if page contain wrong sentence 
found = False
if len(wrong) > 0:
        found = True
        print("..............Found..............." + url)


for j in jiegou:
        jiegou_str = ":: " + j.text + " ::"
        print(jiegou_str)
        save_file.write(jiegou_str)
        print("\n.........................................................\n")

        save_file.write("\n\n")

st_sen=""
for s in sen:
        st_sen = str(s.text)
        if len(wrong) > 0 and wrong[0].text in st_sen:
                continue

        if "。" in st_sen :
                sep = "。"
                st_sen = st_sen.split(sep,1)[0].strip()
                st_sen += " " + sep
        if "?" in st_sen:
                sep = "?"
                st_sen = st_sen.split(sep,1)[0].strip()
                st_sen  += " " + sep

        all_set = st_sen +"\t"+ jiegou_str +"\t"+ usedfor.text +"\t"+ heading.text + "\t" + url

        print(all_set)
        save_file.write(all_set)
print("\n\n")
save_file.write("\n\n")

昆杜克

按顺序获取结构和示例。诱导WebDriverWait()并等待visibility_of_all_elements_located()和以下xpath选项。

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium import webdriver

url = "https://resources.allsetlearning.com/chinese/grammar/Reduplication_of_adjectives"
driver = webdriver.Chrome(r"C:\Users\<user>\Documents\chromedriver\chromedriver.exe")
driver.get(url)
structureelements=WebDriverWait(driver,15).until(EC.visibility_of_all_elements_located((By.XPATH,"//h3[./span[text()='Structure']]/following::div[1]")))

for structure in structureelements:
    print("============================")
    print(structure.text)
    print("========================================")

    for example in structure.find_elements_by_xpath(".//following::h3[1]/following::div[1]//li[@class='spaced']"):
        print(example.text)

输出

============================
Adj. + Adj. + 的 (+ Noun)
========================================
你 的 脸 红 红 的 。
Nǐ de liǎn hóng hóng de.
Your face is red.
宝宝 的 眼睛 大 大 的 。
Bǎobao de yǎnjīng dà dà de.
The baby's eyes are big.
今晚 的 月亮 圆 圆 的 。
Jīnwǎn de yuèliàng yuán yuán de.
The moon is round tonight.
她 爸爸 高 高 胖 胖 的 。
Tā bàba gāo gāo pàng pàng de.
Her father is tall and fat.
我 妹妹 瘦 瘦 小 小 的 。
Wǒ mèimei shòu shòu xiǎo xiǎo de.
My little sister is thin and small.
============================
A A B B + 的 (+ Noun)
========================================
高兴 → 高高兴兴
gāoxìng → gāogāo-xìngxìng
happy
热闹 → 热热闹闹
rènao → rèrè-nāonāo
noisy, boisterous
漂亮 → 漂漂亮亮
piàoliang → piàopiào-liāngliāng
pretty
舒服 → 舒舒服服
shūfu → shūshū-fūfū
comfortable
安静 → 安安静静
ānjìng → ānān-jìngjìng
quiet and still
============================
AABB + 地 + Verb
========================================
我们 清清楚楚 地 看到 他 跟 一 个 胖 胖 的 男人 上 车 了 。
Wǒmen qīngqīng-chǔchǔ de kàndào tā gēn yīgè pàng pàng de nánrén shàngchē le.
We clearly saw him get in the car with a fat man.
我 真 想 舒舒服服 地 躺 在 沙发 上 看 电视 。
Wǒ zhēn xiǎng shūshū-fūfū de tǎng zài shāfā shàng kàn diànshì.
I'd really like to comfortably lie on the couch and watch TV.
你 妈妈 辛辛苦苦 地 做 了 两 个 小时 的 饭,你 怎么 不 吃 ?
Nǐ māma xīnxīn-kǔkǔ de zuò le liǎng gè xiǎoshí de fàn, nǐ zěnme bù chī?
Your mother labored over this meal for two hours, and you aren't going to eat it?
============================
Subj. + ABAB
========================================
妹妹 快 过 生日 了 ,我 打算 给 她 办 一 个 生日 派对 ,热闹 热闹 。
Mèimei kuài guò shēngrì le, wǒ dǎsuàn gěi tā bàn yī gè shēngrì pàiduì, rènao rènao.
My little sister's birthday is coming and I plan to throw her a birthday party and have a blast.
来 ,喝 点 酒 ,高兴 高兴 。
Lái, hē diǎn jiǔ, gāoxìng gāoxìng.
Come on, have a little wine and enjoy yourself.
到 这里 来 凉快 凉快 。
Dào zhèlǐ lái liángkuai liángkuai.
Come over here and cool off.
我 想 去 外面 走走 ,安静 一下 。
Wǒ xiǎng qù wàimiàn zǒuzou, ānjìng yīxià.
I'd like to take a walk outside, get some quiet time.
想 不 想 去 做 个 按摩 ,放松 一下 。
Xiǎng bu xiǎng qù zuò gè ànmó, fàngsōng yīxià.
Would you like to go get a massage and unwind?

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

同一类中的Python函数指针

来自分类Dev

如何杀死由同一类中的不同函数启动的子流程

来自分类Dev

Python Tkinter在同一类中传递输入值

来自分类Dev

调用同一类中的方法

来自分类Dev

如何在python的同一类中调用静态方法

来自分类Dev

命名约定:如何命名同一类的不同版本?

来自分类Dev

如何在ReactJS的同一类中调用方法?

来自分类Dev

同一类中的模拟方法

来自分类Dev

如何在不同的线程中运行同一类的不同方法?

来自分类Dev

如何从同一类中的静态方法访问类中的python方法

来自分类Dev

如何使两个不同特征中的依赖类型被识别为同一类型

来自分类Dev

Python Beautifulsoup从同一类的不同跨度提取文本

来自分类Dev

C#-如何在两个不同的dll中引用同一类型?

来自分类Dev

如何在IL的同一类中调用方法

来自分类Dev

如何杀死由同一类中的不同函数启动的子进程

来自分类Dev

如何从jquery中属于同一类的成员的元素中获取所有不同的值?

来自分类Dev

如何从同一类中的方法访问类数据成员?

来自分类Dev

如何在不同线程中对同一类的多个对象进行方法调用?

来自分类Dev

调用同一类中的方法

来自分类Dev

PHP,在方法中设置数组后,如何从同一类中的其他方法获取它

来自分类Dev

javascript:对于同一类的不同对象,它们在不同的变量中复制数组

来自分类Dev

如何使用jQuery在Nightmare中获取同一类的href链接

来自分类Dev

是否可以在Python中调用同一类的不同对象的变量?

来自分类Dev

如何在python中获取另一类中一个类的一个变量的引用?

来自分类Dev

在 Kotlin 中访问同一类的不同实例的字段

来自分类Dev

Tornado:路线中同一类的不同方法

来自分类Dev

在属于同一类别的单个列中获取多个图像时如何使图像并排对齐

来自分类Dev

如何在Django中获取同一类别中的所有帖子

来自分类Dev

一种从同一类中的构造函数获取方法中变量的方法?

Related 相关文章

  1. 1

    同一类中的Python函数指针

  2. 2

    如何杀死由同一类中的不同函数启动的子流程

  3. 3

    Python Tkinter在同一类中传递输入值

  4. 4

    调用同一类中的方法

  5. 5

    如何在python的同一类中调用静态方法

  6. 6

    命名约定:如何命名同一类的不同版本?

  7. 7

    如何在ReactJS的同一类中调用方法?

  8. 8

    同一类中的模拟方法

  9. 9

    如何在不同的线程中运行同一类的不同方法?

  10. 10

    如何从同一类中的静态方法访问类中的python方法

  11. 11

    如何使两个不同特征中的依赖类型被识别为同一类型

  12. 12

    Python Beautifulsoup从同一类的不同跨度提取文本

  13. 13

    C#-如何在两个不同的dll中引用同一类型?

  14. 14

    如何在IL的同一类中调用方法

  15. 15

    如何杀死由同一类中的不同函数启动的子进程

  16. 16

    如何从jquery中属于同一类的成员的元素中获取所有不同的值?

  17. 17

    如何从同一类中的方法访问类数据成员?

  18. 18

    如何在不同线程中对同一类的多个对象进行方法调用?

  19. 19

    调用同一类中的方法

  20. 20

    PHP,在方法中设置数组后,如何从同一类中的其他方法获取它

  21. 21

    javascript:对于同一类的不同对象,它们在不同的变量中复制数组

  22. 22

    如何使用jQuery在Nightmare中获取同一类的href链接

  23. 23

    是否可以在Python中调用同一类的不同对象的变量?

  24. 24

    如何在python中获取另一类中一个类的一个变量的引用?

  25. 25

    在 Kotlin 中访问同一类的不同实例的字段

  26. 26

    Tornado:路线中同一类的不同方法

  27. 27

    在属于同一类别的单个列中获取多个图像时如何使图像并排对齐

  28. 28

    如何在Django中获取同一类别中的所有帖子

  29. 29

    一种从同一类中的构造函数获取方法中变量的方法?

热门标签

归档