繁体   English   中英

Selenium Python检查div是否存在

[英]Selenium Python check if div exist

我正在抓取Facebook帖子,正在使用

status = x.find_element_by_xpath(".//div[@class='_5pbx userContent _3576']/p[1]").text

用于获取状态信息,以及Facebook信息的html结构,例如此处

<div class="_5pbx userContent _3576" data-ft="{{"tn":"K"}}" id="js_33">
  <p>Bersama Ketua APTIKOM Yogyakarta, Bapak Dr. Agfianto Eko Putra, M.Si. @agfi68<br> Terima kasih banyak telah memesan buku Digital.Is. Me</p>
</div>

有时,p标签位于div内,但有时不在div内

如何创建状态= x.find_element_by_xpath(“ .// div [@class ='_ 5pbx userContent _3576'] / p [1]”)。text

支持是否在div内

您可以执行x.find_elements_by_xpath并查看长度是否为零。

使用find_element_by_xpath(".//div[@class='_5pbx userContent _3576']")查找<div>元素。

然后,您可以检查该元素以查看其是否具有<p>子元素。

您要根据某些条件选择两个不同的元素。 因此,您应该使用:

.//div[@class='_5pbx userContent _3576'][not(p[1])]|.//div[@class='_5pbx userContent _3576']/p[1]

通常,假设变量$XPathExpression1$XPathExpression2$Condition

$XPathExpression1[$Condition]|$XPathExpression2[not($Condition)]

Python Selenium,检查是否<div ...>包含网页抓取代码中的单词</div><div id="text_translate"><p>我正在使用 Selenium 和 BeautifulSoup 运行刮板,我想检查某个单词是否在 &lt;div...&gt; 中。</p><p> HTML 代码片段如下:</p><pre> &lt;div data-asin="0974158232" data-index="0" data-uuid="1f362f6b-dde2-4377-a5f3-518513486b7d" data-component-type="s-search-result" class="s-result-item s-asin sg-col-0-of-12 sg-col-16-of-20 sg-col sg-col-12-of-16" data-component-id="14" data-cel-widget="search_result_0"&gt;&lt;div class="sg-col-inner"&gt; &lt;div data-asin="" data-index="1" class="a-section a-spacing-none s-result-item s-flex-full-width s-border-bottom-none s-widget" data-cel-widget="search_result_1"&gt; &lt;div data-asin="" data-index="2" class="a-section a-spacing-none s-result-item s-flex-full-width s-border-bottom-none s-widget" data-cel-widget="search_result_2"&gt;</pre><p> 首先,我想检查div data-asin=""是否为空,或者是否有一个字符串,如data-asin="0974158232" 。</p><p> 如果它是空的,我想输入 &lt;div...&gt; 并查找data-asin 。 div data-asin="" data-index="2"的一个例子是:</p><pre> &gt; &lt;div data-asin="" data-index="2" class="a-section a-spacing-none s-result-item s-flex-full-width s-border-bottom-none s-widget" data-cel-widget="search_result_2"&gt; &gt; &lt;span cel_widget_id="MAIN-SEARCH_RESULTS-2" class="celwidget slot=MAIN template=SEARCH_RESULTS widgetId=fkmr-search-results" data-csa-c-id="9so6vg-imque6-h59746-o5az71" data-cel-widget="MAIN- SEARCH_RESULTS-2"&gt; &gt; &lt;div class="s-result-list sg-row"&gt; &gt; &lt;div class="s-result-item sg-col-16-of-20 sg-col sg-col-8-of-12 sg-col-12-of-16" data-cel- widget="search_result_3"&gt; &gt; &lt;div data-asin="0974158216" data-index="0" data-uuid="99a1b582-2fcb-49b8-8d13-739783e460a5" data-component-type="s-search-result" class="s-result-item s-asin sg-col-0-of-12 sg-col-16- of-20 sg-col sg-col-12-of-16" data-component-id="15" data-cel-widget="search_result_4"&gt;&lt;div class="sg-col-inner"&gt; &gt; &lt;div data-asin="1433692163" data-index="1" data-uuid="8f8bfb8c-6083-4c26-bdd5-3032bcfe4bed" data-component-type="s-search-result" class="s-result-item s-asin sg-col-0-of-12 sg-col-16- of-20 sg-col sg-col-12-of-16" data-component-id="16" data-cel-widget="search_result_5"&gt;</pre><p> 在这里,我想告诉代码查找data-asin=""并检查它是否为空字符串。 在这种情况下,它不会为空,因为我们有: &lt;div data-asin="0974158216"和&lt;div data-asin="1433692163"</p><p> 我正在考虑使用 for 循环或 try/except,但我对 Selenium 和 HTML 非常陌生,我不知道如何解决这个问题。 任何形式的帮助将不胜感激。</p></div>

[英]Python Selenium, check if <div ...> contains a word in web-scraping code

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Python selenium 检查页面上是否存在 span img 如何检查 selenium python 中当前是否存在 css_selector 使用 Selenium-Python 检查页面中是否存在文本的最佳方法 python selenium检查cookie是否存在-isset-登录成功 用于检查元素是否存在的Python Selenium Webdriver需要时间 Python Selenium 检查新链接,如果不存在则放入文本文件 如何检查 Xpath 是否存在并在 Selenium 和 Python 中获取跨度文本 Python Selenium,检查是否<div ...>包含网页抓取代码中的单词</div><div id="text_translate"><p>我正在使用 Selenium 和 BeautifulSoup 运行刮板,我想检查某个单词是否在 &lt;div...&gt; 中。</p><p> HTML 代码片段如下:</p><pre> &lt;div data-asin="0974158232" data-index="0" data-uuid="1f362f6b-dde2-4377-a5f3-518513486b7d" data-component-type="s-search-result" class="s-result-item s-asin sg-col-0-of-12 sg-col-16-of-20 sg-col sg-col-12-of-16" data-component-id="14" data-cel-widget="search_result_0"&gt;&lt;div class="sg-col-inner"&gt; &lt;div data-asin="" data-index="1" class="a-section a-spacing-none s-result-item s-flex-full-width s-border-bottom-none s-widget" data-cel-widget="search_result_1"&gt; &lt;div data-asin="" data-index="2" class="a-section a-spacing-none s-result-item s-flex-full-width s-border-bottom-none s-widget" data-cel-widget="search_result_2"&gt;</pre><p> 首先,我想检查div data-asin=""是否为空,或者是否有一个字符串,如data-asin="0974158232" 。</p><p> 如果它是空的,我想输入 &lt;div...&gt; 并查找data-asin 。 div data-asin="" data-index="2"的一个例子是:</p><pre> &gt; &lt;div data-asin="" data-index="2" class="a-section a-spacing-none s-result-item s-flex-full-width s-border-bottom-none s-widget" data-cel-widget="search_result_2"&gt; &gt; &lt;span cel_widget_id="MAIN-SEARCH_RESULTS-2" class="celwidget slot=MAIN template=SEARCH_RESULTS widgetId=fkmr-search-results" data-csa-c-id="9so6vg-imque6-h59746-o5az71" data-cel-widget="MAIN- SEARCH_RESULTS-2"&gt; &gt; &lt;div class="s-result-list sg-row"&gt; &gt; &lt;div class="s-result-item sg-col-16-of-20 sg-col sg-col-8-of-12 sg-col-12-of-16" data-cel- widget="search_result_3"&gt; &gt; &lt;div data-asin="0974158216" data-index="0" data-uuid="99a1b582-2fcb-49b8-8d13-739783e460a5" data-component-type="s-search-result" class="s-result-item s-asin sg-col-0-of-12 sg-col-16- of-20 sg-col sg-col-12-of-16" data-component-id="15" data-cel-widget="search_result_4"&gt;&lt;div class="sg-col-inner"&gt; &gt; &lt;div data-asin="1433692163" data-index="1" data-uuid="8f8bfb8c-6083-4c26-bdd5-3032bcfe4bed" data-component-type="s-search-result" class="s-result-item s-asin sg-col-0-of-12 sg-col-16- of-20 sg-col sg-col-12-of-16" data-component-id="16" data-cel-widget="search_result_5"&gt;</pre><p> 在这里,我想告诉代码查找data-asin=""并检查它是否为空字符串。 在这种情况下,它不会为空,因为我们有: &lt;div data-asin="0974158216"和&lt;div data-asin="1433692163"</p><p> 我正在考虑使用 for 循环或 try/except,但我对 Selenium 和 HTML 非常陌生,我不知道如何解决这个问题。 任何形式的帮助将不胜感激。</p></div> 如何在Selenium中使用for循环在并行div中检查文本 Python selenium select div
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM