Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/295.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从网页检索信息?_Python - Fatal编程技术网

用Python从网页检索信息?

用Python从网页检索信息?,python,Python,我有以下一页: 我希望通过Python执行外部搜索,从中提取一些信息。也许听起来很简单,但我以前没有编写过web应用程序 因此,我想在搜索框中输入如下内容: import requests from bs4 import * id = "NONHSAT146018" page = requests.get("http://www.noncode.org/show_rna.php?id=" + id) soup = BeautifulSoup(page

我有以下一页:

我希望通过Python执行外部搜索,从中提取一些信息。也许听起来很简单,但我以前没有编写过web应用程序

因此,我想在搜索框中输入如下内容:

import requests
from bs4 import *

id = "NONHSAT146018"
page = requests.get("http://www.noncode.org/show_rna.php?id=" + id)

soup = BeautifulSoup(page.content, "html.parser")

element = soup.findAll('table', class_="table-1")[1]
element2 = element.findAll('tr')[1]
element3 = element2.findNext('td')
your_data = str(element3.renderContents(), "utf-8")
print(your_data)
非HSAT146018.2

要执行搜索并从生成的网页中删除,请执行以下操作:

从结果中,我需要提取表示序列的字段。我已经阅读了一些关于BeatifulSoup库的信息和一些示例,但是它们没有包含在php表单的地址中。我非常感谢你在这件事上的帮助。谢谢

更新:根据用户的建议,在@Lukas Newman的帮助下,我做了以下工作:

data="NONHSAT146018.2"
page = requests.get("http://www.noncode.org/show_rna.php?id=" + data)
soup=BS(page.content,'html.parser')
target = soup.find('h2',text='Sequence')
print(target)
   
target = soup.find('table',text='table-1')
print(target)

table = soup.find('table', attrs={'class'},text='table-1')
print(table)
当我检查结果时,我发现序列在以下字段中:

如何使用Python提取该部分?

查看url

http://www.noncode.org/show_rna.php?id=NONHSAT000002
搜索只是作为get参数传递的。因此,要访问侧边,只需将起始url设置为:

import requests
from bs4 import *

id = "NONHSAT146018"
page = requests.get("http://www.noncode.org/show_rna.php?id=" + id)

soup = BeautifulSoup(page.content, "html.parser")

element = soup.findAll('table', class_="table-1")[1]
element2 = element.findAll('tr')[1]
element3 = element2.findNext('td')
your_data = str(element3.renderContents(), "utf-8")
print(your_data)

请花点时间阅读和阅读。通过遵循这些文章中的提示,您将获得更好的结果。谢谢@accdias,但是这个示例只是从这个页面检索信息。我用BS编写的代码没有检索到任何数据。尽管它不起作用,但在这里向我们展示您的尝试是一种很好的做法。谢谢您的建议@accdias,我会记住以后的帖子。谢谢@LukasNeumann,我收到了200条回复,我相信该页面已经下载,但是如何获得特定的序列部分呢?你能帮我一把吗?@有点确定,我建议你看看这个:基本上,你需要做的下一件事是获取带有“page.content”的页面的html,然后用beautiful soup解析它以找到你的序列。如果您需要更多帮助,请随时问我。谢谢@Lukas Neumann,您非常友好,我将尝试编写此代码,如果我被绊倒,我会给您回复。谢谢。我已经试着找回序列了,但是一点运气都没有。我在网页的转储中看到它没有出现,但我读到这可能是因为数据是动态创建的。你能帮我提取那个dna序列吗?@Little我把整个溶液放在我的awnser中,基本上它需要第二个元素,在类“table-1”中,然后是第二个“tr”,然后是“td”。最后,它获取文本并将其转换为utf-8。在浏览器中检查站点时,可以“遵循”此路径。我希望我能帮助你,如果你有更多的问题,请随意问更多!