引用乱搞Python Scraper

时间:2013-12-29 03:00:06

标签: python quotes double-quotes scraper

我试图在div中抓取所有数据,如下所示。然而,报价让我失望。

<div id="address">
    <div class="info">14955 Shady Grove Rd.</div> 
    <div class="info">Rockville, MD 20850</div> 
    <div class="info">Suite: 300</div> 
</div>

我试图用

的内容开始
addressStart = page.find("<div id="address">")

但是div中的引号让我感到困惑。有谁知道如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

要回答您的具体问题,您需要escape引号,或在字符串本身上使用不同类型的引号:

addressStart = page.find("<div id=\"address\">")
# or
addressStart = page.find('<div id="address">')

但不要这样做。如果您尝试“解析”HTML,请让第三方库执行此操作。试试Beautiful Soup。你得到一个很好的对象,你可以用它来遍历或搜索。您可以获取属性,值等...而无需担心解析HTML或XML的复杂性:

from bs4 import BeautifulSoup
soup = BeautifulSoup(page)
for address in soup.find_all('div',id='address'): # returns a list, use find if you just want the first
    for info in address.find_all('div',class_='info'): # for attribute class, use class_ instead since class is a reserved word
        print info.string