我会尽可能详细地解释我的问题。我甚至不知道正确的术语。因此,我无法准确地搜索我的问题。我想使用这个website来计算一个句子的音节数,并使用Python的和库将每个句子生成的音节数刮到一个.txt文件中。下面是我想一步一步地做的事情:
1-打开此URL:https://www.howmanysyllables.com/syllable_counter/
2-在音节计数器字段中输入一些句子。
3-单击字段下的“计数音节”按钮。
4-将生成的数字刮到左边。
我可以通过从网站上刮取数字来完成第4步。我的挣扎在于第2步和第3步。我能够使用定义的函数来计算代码中的音节,但结果与网站中的不匹配。
我希望我已经尽可能清楚地解释了这个问题。
3条答案
按热度按时间hkmswyz61#
此脚本将
sentence
作为POST请求中的参数发送到页面,并以文本形式获取结果:图纸:
EDIT:要发送多行,您可以使用以下示例:
图纸:
dkqlctbz2#
此处以Selenium为例。
可能需要驱动程序来控制Web浏览器Firefox或Chrome
代码中的注解中描述的每一行代码。
**顺便说一句:**有时用
Selenium
编写会更容易,但用requests
编写的版本(在其他答案中)应该工作得更快。cyvaqqii3#
这非常简单!你可以使用强大且易于使用的python库"selenium“来与python中的网页交互。
**1-安装库:**要安装工具,您只需打开Windows命令提示符并键入:
例如,如果您的chrome版本是108.0.5359.125,您只需要键入以下内容(您可以从以下Chrome访问您的chrome版本:设置-〉关于):
就是这样!
2-通过python打开chrome窗口
然后,打开一个新的代码并键入:
这段代码打开了一个chrome窗口并最大化了它!请注意键入“Chrome”的首字母大写。如果你对此感到困惑,这是完全自然的!你只需要在训练的第一天复制你的代码的第一行!
3-将浏览器导航到所需的URL!
轰!你可以享受你的驱动程序自动去你想要的链接!
4-在网页中查找所需元素的地址
这很简单,但有时也很棘手!正如你所知,网页中的每个元素都可以通过其地址访问。有几种方法来访问元素,但最有名的是CSS选择器。这并不难,你可以通过谷歌来学习,但chrome使它更容易!你只需要右键单击页面上你想要的元素,然后单击“检查”。例如,在您的问题中,如果您在文本框中执行此操作,则会出现以下窗口(在右侧):
然后你需要在这个新窗口中右键点击元素,然后复制-〉复制选择器,如下所示。然后你就得到了你想要的!
5-与元素交互这里,我们有从chrome复制的元素路径。这里我们需要在python中找到这个元素,然后与它交互!为此:
你做到了!享受Python自动输入数字的乐趣吧!注意用小写字母精确地输入“css selector”,以免出错!:-)
6-单击按钮这与上一节相同!您只需要通过右键单击复制此按钮的选择器(“按音节计数”按钮),然后:
7-从输出文本框中提取结果这也非常类似于上一步!但在这里,您有三个结果(单词,音节和字符)。如果我们右键单击此输出框,我们将看到:
如您所见,如果我们在此检查窗口中移动鼠标,我们将看到所需的元素是“span”元素!:
如果我们复制selector其中一个'span'元素,复制的CSS选择器将是:
非常漂亮!':nth-child(1)'表示第一个匹配这个CSS选择器的元素,所以如果我们删除这个部分如下:
我们会有一个CSS选择器匹配所有的'跨度'!我们可以检查这个地址在Chrome浏览器!在'inspect'窗口,按(Ctrl +f),然后复制这个CSS选择器如下!Chrome浏览器将显示您所有的元素匹配这个地址!x1c4d 1x
注意chrome已经找到了3个匹配这个地址的条目。太棒了!通过这个方法,你可以在chrome中检查你的CSS选择器,而不必在python中检查它,这会消耗更多的时间和精力!我通过实验发现了这个方法!我希望有人早点告诉我!
这样,我们就有了所需的全部内容,但在这里,我们需要键入driver.find_elements的复数形式来查找所有元素!
恭喜你!你成功了!最后一步是把这段代码放进一个“for”循环中,然后坐下来喝茶,而python为你做这些重复的工作!