我正在尝试从Youtube提取一些数据,但是我在捕捉文本方面很挣扎,这是我的代码:
username = "unboxtherapy"
driver = webdriver.Chrome('C:/Users/Chrome Web Driver/chromedriver.exe')
api_url = "https://www.youtube.com/user/"+username+"/about"
driver.get(api_url)
html = driver.find_element_by_tag_name('html')
soup=bs(html.text,'html.parser')
text=str(soup)
在上面的示例中,我试图捕获页面上显示的描述。
soup
返回页面上的所有文本,即我想要的描述+大量我不想要的其他东西。
text
返回以下所有文本:
“ GB \ n登录\ n拆箱治疗\ n13,802,667 订阅者\ nJOIN \ nSUBSCRIBE \ nTwitter \ nHOME \ nVIDEOS \ nPLAYLISTS \ n社区\ nCHANNELS \ nABOUT \ n描述\ n 产品变得裸露。\ n \ n您会在这里找到各种视频 展示地球上最酷的产品。从最新的 智能手机,提供您从未知道的令人惊讶的小工具和技术 存在。全部都在Unbox Therapy上。\ n \ n企业/专业人士 仅限查询-unboxtherapy.com [n]业务(请不要使用 YouTube收件箱)\ nLinks \ nTwitter Facebook Instagram官方 网站\ n统计信息\ n2010年12月21日加入\ n2,698,921,226观看次数\ nOTHER COOL 频道。\ n稍后再来\ n订阅\ n马克斯·布朗利\ n订阅\ n乔纳森 莫里森\ n订阅\ n奥斯丁 埃文斯\ nSUBSCRIBE \ n底特律BORG \ nSUBSCRIBE \ nLooneyTek \ nSUBSCRIBE \ n士兵 最了解\ nSUBSCRIBE \ nUrAvgConsumer \ nSUBSCRIBE \ n相关 频道\ nLinus Tech 提示\ nSUBSCRIBE \ nJerryRigEverything \ nSUBSCRIBE \ nMrwhotheboss \ nSUBSCRIBE \ nTechSmartt \ nSUBSCRIBE”
有没有办法仅捕获描述?可能吗?
在此先感谢您能帮助我的人。
最良好的祝愿
答案 0 :(得分:1)
尝试以下代码。让我知道它是否有效。
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.places.Main</mainClass>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
输出:
import bs4 as bs
import re
username = "unboxtherapy"
driver = webdriver.Chrome('C:/Users/Chrome Web Driver/chromedriver.exe')
api_url = "https://www.youtube.com/user/"+username+"/about"
driver.get(api_url)
html = driver.page_source
soup=bs.BeautifulSoup(html,'html.parser')
findtext=soup.find_all('yt-formatted-string',id=re.compile("description"))
for txt in findtext:
print(txt.text)
答案 1 :(得分:1)
仅使用硒即可完成简单的解析。
driver.get(api_url)
description = drvier.find_element_by_id('description')
print(description.text)
(如果您使用chrome并了解检查的话)
知道标签名称,ID或属性值:
然后您可以像这样检查值:
现在使用驱动程序方法
driver.find_by_elemeent_by_tag_name()
driver.find_by_elements_by_tag_name()
driver.find_by_element_id()
driver.find_by_elements_id()
driver.find_by_element_class_name()
driver.find_by_elements_class_name()