Python Beautiful Soup html.解析器返回none



我有一种感觉,信息是在堆栈溢出的某个地方,但我找不到它:-/

我想从这个网站得到文本:https://www.uniprot.org/uniprot/P28653.fasta但我的代码返回'None '。所有的帮助是超级感激!

import requests
from bs4 import BeautifulSoup as bs
r = requests.get('http://www.uniprot.org/uniprot/P28653_PGS1_MOUSE.fasta')
soup = bs(r.content, 'html.parser')
lst = soup.find_all('pre')
print(lst)

返回
[]

谢谢! !

网站中没有html。您可以直接打印r.content(然而,我更喜欢r.text,因为它是string而不是bytes对象),它将包含页面上的字符串。请记住,当您在chrome(或其他浏览器)中使用开发人员工具时,您在检查时看到的html不一定与请求将获得的结果相同。通常直接在浏览器中查看源代码(或打印出requests.get(url).text/.content的结果)将使您更准确地了解正在处理的html。

就像评论说的,你正在看的网页只是纯文本。只有在处理.html文件时才使用BeautifulSoup

要获取文本,只需要打印请求的内容。它看起来像这样:

data = requests.get("https://www.uniprot.org/uniprot/P28653.fasta").content
print(data)

BeautifulSoup提供了一种查找文本内容的简单方法.find(text=True)

import requests
from bs4 import BeautifulSoup as bs
r = requests.get('http://www.uniprot.org/uniprot/P28653_PGS1_MOUSE.fasta')
soup = bs(r.content, 'html.parser')
print(soup.find(text=True))

认为有拼写错误或错误的url来执行您的方法-将url更改为http://www.uniprot.org/uniprot/P28653_PGS1_MOUSE,您将获得一个包含两个元素的列表,您可以通过循环或直接访问例如lst[1]来获得序列。

import requests
from bs4 import BeautifulSoup as bs
r = requests.get('http://www.uniprot.org/uniprot/P28653_PGS1_MOUSE')
soup = bs(r.content, 'html.parser')
lst = soup.find_all('pre')
print(lst)

[<pre>&gt;sp|P28653|PGS1_MOUSE Biglycan OS=Mus musculus OX=10090 GN=Bgn PE=1 SV=1
MCPLWLLTLLLALSQALPFEQKGFWDFTLDDGLLMMNDEEASGSDTTSGVPDLDSVTPTF
SAMCPFGCHCHLRVVQCSDLGLKTVPKEISPDTTLLDLQNNDISELRKDDFKGLQHLYAL
VLVNNKISKIHEKAFSPLRKLQKLYISKNHLVEIPPNLPSSLVELRIHDNRIRKVPKGVF
SGLRNMNCIEMGGNPLENSGFEPGAFDGLKLNYLRISEAKLTGIPKDLPETLNELHLDHN
KIQAIELEDLLRYSKLYRLGLGHNQIRMIENGSLSFLPTLRELHLDNNKLSRVPAGLPDL
KLLQVVYLHSNNITKVGINDFCPMGFGVKRAYYNGISLFNNPVPYWEVQPATFRCVTDRL
AIQFGNYKK
</pre>, <pre class="sequence">        10         20         30         40         50<br/>MCPLWLLTLL LALSQALPFE QKGFWDFTLD DGLLMMNDEE ASGSDTTSGV <br/>        60         70         80         90        100<br/>PDLDSVTPTF SAMCPFGCHC HLRVVQCSDL GLKTVPKEIS PDTTLLDLQN <br/>       110        120        130        140        150<br/>NDISELRKDD FKGLQHLYAL VLVNNKISKI HEKAFSPLRK LQKLYISKNH <br/>       160        170        180        190        200<br/>LVEIPPNLPS SLVELRIHDN RIRKVPKGVF SGLRNMNCIE MGGNPLENSG <br/>       210        220        230        240        250<br/>FEPGAFDGLK LNYLRISEAK LTGIPKDLPE TLNELHLDHN KIQAIELEDL <br/>       260        270        280        290        300<br/>LRYSKLYRLG LGHNQIRMIE NGSLSFLPTL RELHLDNNKL SRVPAGLPDL <br/>       310        320        330        340        350<br/>KLLQVVYLHS NNITKVGIND FCPMGFGVKR AYYNGISLFN NPVPYWEVQP <br/>       360 <br/>ATFRCVTDRL AIQFGNYKK                                   <br/></pre>]

最新更新