Python Beautiful Soup html.parser 没有返回

时间:2021-01-21 04:01:00

标签: python html beautifulsoup

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

我希望从本网站获取文本:https://www.uniprot.org/uniprot/P28653.fasta,但我的代码返回“无”。非常感谢所有帮助!

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)

返回

[]

谢谢!!

4 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

正如评论所说,您正在查看的网页只是纯文本。只有在处理 BeautifulSoup 文件时才使用 .html

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

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

答案 2 :(得分:1)

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))

答案 3 :(得分:0)

认为执行您的方法时存在拼写错误或错误的 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>]
相关问题