在Python中保存的文件中,如何在包含特定文本的行后面打印一行?

2024-09-27 07:33:49 发布

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

我写了一个Python程序来查找给定号码的手机运营商。它下载http://www.whitepages.com/carrier_lookup?carrier=other&number_0=1112223333&response=1的源代码(其中111222333是要查找的电话号码),并将其另存为承运人.html. 在源代码中,载波在[div^{cl1}之后的行中$

我的程序当前搜索该文件并找到包含div标记的行,但现在我需要一种方法将该行之后的下一行存储为字符串。我当前的代码是:http://pastebin.com/MSDN0vbC


Tags: 程序divcomhttpnumber源代码responsewww
3条回答

你真正想做的是正确地解析HTML。使用beauthoulsoup库-这是很好的。在

样本代码:

import urllib2, BeautifulSoup

opener = urllib2.build_opener()
opener.addheaders[0] = ('User-agent', 'Mozilla/5.1')

response = opener.open('http://www.whitepages.com/carrier_lookup?carrier=other&number_0=1112223333&response=1').read()

bs = BeautifulSoup.BeautifulSoup(response)
print bs.findAll('div', attrs={'class': 'carrier_result'})[0].next.strip()

您应该使用诸如^{}^{}之类的HTML解析器。在

你可以使用下一行

htmlsource = open('carrier.html', 'r')
for line in htmlsource:
    if '<div class="carrier_result">' in line:
         nextline = htmlsource.next()
         print nextline

一个“更好”的方法是在</div>上拆分,然后得到你想要的东西,因为有时候你想要的东西可以在一行中出现。所以如果给错了就用next()结果.eg在

^{pr2}$

顺便说一下,如果可能的话,试着使用Python自己的web模块,比如urlliburllib2,而不是调用externalwget。在

相关问题 更多 >

    热门问题