Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/91.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Python/Selenium进行Web垃圾处理_Python_Html_Selenium_Web Scraping_Beautifulsoup - Fatal编程技术网

使用Python/Selenium进行Web垃圾处理

使用Python/Selenium进行Web垃圾处理,python,html,selenium,web-scraping,beautifulsoup,Python,Html,Selenium,Web Scraping,Beautifulsoup,我试图从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

我试图从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盒式疗法\n13802667 订阅者\n加入\n订阅\nWitter\nHOME\n视频\n列表\n社区\n通道\n退出\n说明\n此处 产品裸露。\n\n您将看到各种各样的视频 展示地球上最酷的产品。从最新的 智能手机带给你意想不到的小玩意和技术 存在的。所有这些都是在Unbox治疗上。\n\n业务/专业 仅限查询-业务[位于]unboxtherapy.com\n请不要使用 YouTube收件箱\n链接\n Witter Facebook Instagram官方 网站\n测试\n 2010年12月21日加入\n2698921226视图\n其他酷 频道。\n稍后新建\n订阅\n广播\n订阅 莫里森\n订阅\n奥斯汀 Evans\n订阅\nDetroitBORG\n订阅\nOneytek\n订阅\n文件夹 最了解\n订阅\nUrAvgConsumer\n订阅\n相关 频道\n使用技术 提示\n订阅\n所有内容都要注册\n订阅\n如何使用BOSS\n订阅\n订阅\n技术集市\n订阅

有没有一种方法可以只捕捉描述?那有可能吗

先谢谢你能帮助我的人


最美好的祝愿

试试下面的代码。让我知道它是否有效

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)
输出:

Where products get naked.

Here you will find a variety of videos showcasing the coolest products on the planet. From the newest smartphone to surprising gadgets and technology you never knew existed. It's all here on Unbox Therapy.

Business / professional inquiries ONLY - business [at] unboxtherapy.com
(please don't use YouTube inbox)

试试下面的代码。让我知道它是否有效

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)
输出:

Where products get naked.

Here you will find a variety of videos showcasing the coolest products on the planet. From the newest smartphone to surprising gadgets and technology you never knew existed. It's all here on Unbox Therapy.

Business / professional inquiries ONLY - business [at] unboxtherapy.com
(please don't use YouTube inbox)

仅使用selenium即可完成简单解析

driver.get(api_url)
description = drvier.find_element_by_id('description')
print(description.text)
如果您使用chrome并了解inspect 要了解标记名称、id或属性值,请执行以下操作:

只需右键单击要查找元素的描述文本 按如下方式选择“检查”:

然后您可以像这样检查值:

粉红色文本:标记名称 &橙色文本: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()  

仅使用selenium即可完成简单解析

driver.get(api_url)
description = drvier.find_element_by_id('description')
print(description.text)
如果您使用chrome并了解inspect 要了解标记名称、id或属性值,请执行以下操作:

只需右键单击要查找元素的描述文本 按如下方式选择“检查”:

然后您可以像这样检查值:

粉红色文本:标记名称 &橙色文本: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()  

您可以通过ID获取元素,youtube上的快速F12显示您正在查找的ID是对Ank you的描述。当我尝试:a=driver.find\u element\u by\u id'description'时,它返回文本,但也返回大量\n。有没有办法去除它们?以下是返回的文本:产品在何处裸露。\n\n您将看到各种视频,展示地球上最酷的产品。从最新的智能手机到令人惊讶的小玩意和技术,你永远不知道它们的存在。所有这些都在Unbox Therapy上。\n\n仅限业务/专业咨询-业务[位于]Unbox Therapy.com\n请不要使用YouTube Inbox替换新词?或者使用空格?你可以通过ID获取元素,youtube上的快速F12显示你正在寻找的ID是对你的描述。当我尝试:a=driver.find\u element\u by\u id'description'时,它返回文本,但也返回大量\n。有没有办法去除它们?以下是返回的文本:产品在何处裸露。\n\n您将看到各种视频,展示地球上最酷的产品。从最新的智能手机到令人惊讶的小玩意和技术,你永远不知道它们的存在。所有这些都在Unbox Therapy上。\n\n仅限业务/专业咨询-业务[位于]Unbox Therapy.com\n请不要使用YouTube Inbox替换新词?还是使用空格?webdriver的使用有什么特别之处吗?当我使用请求获取html时,我无法找到id,即使它在收到的html中。别介意我是出于兴趣才发现的,你是如何找到“yt格式字符串”的?对不起,我对中国的网络知识不是很了解general@tezzaaa按F12并在我的web浏览器中选择对象browser@Nullman:我刚刚通过chrome inspect查找元素,然后提供了标记名和id值。@Nullman谢谢,我也这样做了。在铬合金中,inspect工作良好。我试图从同一个页面中获取视图等。使用webdriver有什么特别的地方吗?当我使用请求获取html时,我无法找到id,即使它在收到的html中。别介意我是出于兴趣才发现的,你是如何找到“yt格式字符串”的?对不起,我对中国的网络知识不是很了解general@tezzaaa按F12并在我的web浏览器中选择对象browser@Nullman:我刚刚通过chrome inspect查找元素,然后提供了标记名和id值。@Nullman谢谢,我也这样做了。在铬合金中,inspect工作良好。我在试着拉些意见
来自同一页的等非常感谢,这对我和其他不熟悉解析的人都很有用:-非常感谢,这对我和其他不熟悉解析的人都很有用:-