如何用Python从网站读取文本

2024-09-22 16:37:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我想从这个网站上读一些信息:http://www.federalreserve.gov/monetarypolicy/beigebook/beigebook201301.htm

我有下面的代码,它正确地读取了HTML源代码

def Connect2Web():
    aResp = urllib2.urlopen("http://www.federalreserve.gov/monetarypolicy/" + 
    "beigebook/beigebook201301.htm")

    web_pg = aResp.read()

    print web_pg

但是,我不知道如何解析这些信息,因为大多数HTML解析器需要一个文件或原始网站,而我已经在字符串中拥有了所需的信息。在


Tags: 代码web信息http网站htmlwwwgov
3条回答

如果您喜欢jQuery,请使用pyQuery

from pyquery import PyQuery as pq

d = pq(web_pg)

甚至是

^{pr2}$

现在d就像jQuery中的$:

p = d("#hello") # get element with id="hello"
print p.html() # print as html

p = d('#content p:first') # get first <p> from element with id="content"
print p.text() # print as text
from bs4 import BeautifulSoup
soup = BeautifulSoup(web_pg)

我们在一段时间前开始使用BS,但最终转到了lxml

from lxml import html
my_tree = html.fromstring(web_pg)
elements = [item for item in my_tree.iter()]

所以现在你必须决定你想要的元素,你需要确保你保留的元素不是你决定要保留的其他元素的子元素

^{pr2}$

上面的html是div的子元素,所以表中的所有内容都包含在div中,所以您必须使用一些逻辑来只保留那些父元素尚未保留的元素

相关问题 更多 >