【问题标题】:Remove <br> from element being extracted从要提取的元素中删除 <br>
【发布时间】:2017-07-18 16:17:26
【问题描述】:

我试图从中提取数据的网站是: http://www.genome.jp/dbget-bin/www_bget?ecs:ECs0037

我正在尝试提取“nt 序列”:

try:
    geneSeq = browser.find_element_by_xpath("html/body/div[1]/table/tbody/tr/td/table[2]/tbody/tr/td[1]/form/table/tbody/tr/td/table/tbody/tr[11]/td").text

except:
    geneSeq = "file\nnot found" 
geneSeq = geneSeq[geneSeq.find('\n')+1:]

我删除了输入的第一行,因为我不需要它,但我在文件中注册的代码中有 br 标签,但 python 看不到它们。我试过 .isspace() 并返回 false,因此 .rsplit() 不起作用。不幸的是,当我尝试使用 f.write 将序列写入文件时,这些行仍然出现。

有没有办法去掉 br 标签?

【问题讨论】:

  • 您可能应该考虑使用功能更全的网络抓取工具,例如beautiful soup
  • 问题是当我使用 BeautifulSoup 并提取 html 时,网站查询尚未运行,所以我实际上没有看到序列
  • 使用很长的 XPath 会很脆弱...您可能应该花一些时间阅读一些有关 CSS 选择器和 XPath 的教程,以便您可以手工制作它们。您的 XPath 可以替换为 "//th/nobr[.='NT seq']/following::td"

标签: python html selenium


【解决方案1】:

假设你的 html 字符串被命名为 html 这样做:

html = html.replace('&lt;br&gt;', '')

【讨论】:

  • 抱歉,我不够明确 -
    没有出现在文本中,它只是在我的代码中给了我幻行换行符
  • 哦,我明白了。对不起。似乎您不了解您尝试使用的方法的功能,但这更有意义。在此处尝试接受的答案:stackoverflow.com/questions/3711856/…
【解决方案2】:

它将在python中打印整个html内容:

import urllib2

req = urllib2.Request('https://www.google.com')
response = urllib2.urlopen(req)
the_page = response.read()

【讨论】:

    【解决方案3】:

    感谢您的所有回答,因为 python 没有将 soace 视为空格,所以我刚刚结束了一个循环来检查似乎有效的字符:

    noSpace =""
    for char in geneSeq:
        if char.isalpha():
            noSpace = noSpace + char
    

    【讨论】:

      猜你喜欢
      • 2018-08-09
      • 1970-01-01
      • 2021-02-10
      • 2012-08-11
      • 1970-01-01
      • 2012-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多