繁体   English   中英

如何过滤强标签下的文本?

[英]How to filter the text under the strong tag?

我有这个代码:

url = 'http://www.topsoftzone.com/program/12721/Windows_Phone_7.html'
pageurl = urllib.urlopen(url)
soup = BeautifulSoup
print soup.find('table',{'class':'download_tab'}).find('td',{'width':'55%'}).find('strong').text

我应该得到这样的输出:2011/09/29(提交:2011/08/09)

但是代码输出:更新:

我想你在tabletd之间缺少tr的表行

无论如何,请考虑将lxml与xpath结合使用

from lxml import etree
tree = etree.parse(url, etree.HTMLParser())
l = tree.xpath('//table[@class="download_tab"]/tr/td[@width="55%"]/text()')
print l[1]

09/29/2011 (Submitted: 09/08/2011)

编辑:没有要求的lxml

soup = BeautifulSoup(pageurl)
l = soup.find('table',{'class':'download_tab'}).find('tr').find('td',{'width':'55%'}).findAll(text=True)
print l[2]

09/29/2011 (Submitted: 09/08/2011)

您需要更多的错误检查,但这可行

import lxml.html
import urllib
import sys

link = "http://www.topsoftzone.com/program/12721/Windows_Phone_7.html"

page = urllib.urlopen(link).read()

doc = lxml.html.document_fromstring(page)
doc.make_links_absolute(link)

found_text = doc.xpath(u".//table[@class='download_tab']/tr/td[@width='55%']/text()")
try:
    print found_text[1].strip()
except:
    print "Not found"

如何刮掉a下的一行文本<div>又在 a 下的标签<div class>标签</div><div id="text_translate"><pre>&lt;div class="style__font-bold___1k9Dl style__font-14px___YZZrf style__flex-row___2AKyf style__space-between___2mbvn style__padding-bottom-5px___2NrDR"&gt; &lt;div&gt;Augmentin 625 Duo Tablet&lt;/div&gt;&lt;/div&gt;</pre><p> 我想刮掉“Augmentin 625 Duo Tablet”的文字,但似乎找不到正确的刮法</p><p>我现在使用的代码是:</p><pre> import requests import bs4 import lxml result=requests.get("https://www.pharmadude.com") #print((type(result))) soup = bs4.BeautifulSoup(result.text,"lxml") #print(soup) scrape=soup.find_all('div', attrs={'class': 'style__font-bold___1k9Dl style__font-14px___YZZrf style__flex-row___2AKyf style__space-between___2mbvn style__padding-bottom-5px___2NrDR'}) for div in scrape: bar=soup.find_all('div') print(bar.text)</pre></div></div>

[英]How to scrape a line of text which is under a <div> tag which is inturn under a <div class> tag

暂无
暂无

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

相关问题 如何在强标签和普通文本中抓取文本 如何在标签下获取文本 从强标签中提取文本 如何<strong>使用 Beautiful Soup</strong>从<strong>href 标签下的标签中</strong>提取字符串<strong>?</strong> 如何<strong>使用python</strong>获取<strong>标记中的</strong> html文本 如何提取<strong>元素中标签</strong>后面的文本 正则表达式以在和<strong>标签</strong>之间提取文本 无法在强标签内获取文本 如何<strong>使用 Beautiful Soup</strong>检索<strong>标签</strong>后面的文本<strong>?</strong> 如何刮掉a下的一行文本<div>又在 a 下的标签<div class>标签</div><div id="text_translate"><pre>&lt;div class="style__font-bold___1k9Dl style__font-14px___YZZrf style__flex-row___2AKyf style__space-between___2mbvn style__padding-bottom-5px___2NrDR"&gt; &lt;div&gt;Augmentin 625 Duo Tablet&lt;/div&gt;&lt;/div&gt;</pre><p> 我想刮掉“Augmentin 625 Duo Tablet”的文字,但似乎找不到正确的刮法</p><p>我现在使用的代码是:</p><pre> import requests import bs4 import lxml result=requests.get("https://www.pharmadude.com") #print((type(result))) soup = bs4.BeautifulSoup(result.text,"lxml") #print(soup) scrape=soup.find_all('div', attrs={'class': 'style__font-bold___1k9Dl style__font-14px___YZZrf style__flex-row___2AKyf style__space-between___2mbvn style__padding-bottom-5px___2NrDR'}) for div in scrape: bar=soup.find_all('div') print(bar.text)</pre></div></div>
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM